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 864bb77c905 Published site at bd8dd1ae7467c2cbd5286304635acfaa49dfb24b.
864bb77c905 is described below

commit 864bb77c905f0a606706d4a9dedeb7b77c163855
Author: jenkins <[email protected]>
AuthorDate: Sun Jan 4 14:52:10 2026 +0000

    Published site at bd8dd1ae7467c2cbd5286304635acfaa49dfb24b.
---
 apache_hbase_reference_guide.pdf                   |   4 +-
 book.html                                          |   2 +-
 checkstyle-aggregate.html                          |   4 +-
 dependency-convergence.html                        |   4 +-
 dependency-info.html                               |   4 +-
 dependency-management.html                         |   4 +-
 hbase-website/dependency-convergence.html          |   4 +-
 hbase-website/dependency-info.html                 |   4 +-
 hbase-website/dependency-management.html           |   4 +-
 hbase-website/index.html                           |   4 +-
 hbase-website/issue-management.html                |   4 +-
 hbase-website/licenses.html                        |   4 +-
 hbase-website/mailing-lists.html                   |   4 +-
 hbase-website/plugin-management.html               |   4 +-
 hbase-website/plugins.html                         |   4 +-
 hbase-website/project-info.html                    |   4 +-
 hbase-website/scm.html                             |   4 +-
 hbase-website/summary.html                         |   4 +-
 hbase-website/team.html                            |   4 +-
 issue-management.html                              |   4 +-
 licenses.html                                      |   4 +-
 mailing-lists.html                                 |   4 +-
 plugin-management.html                             |   4 +-
 plugins.html                                       |   4 +-
 project-info.html                                  |   4 +-
 project-reports.html                               |   4 +-
 scm.html                                           |   4 +-
 summary.html                                       |   4 +-
 team.html                                          |   4 +-
 ...terBalancingConditionalReplicaDistribution.html |  26 +--
 ...estLargeClusterBalancingMetaTableIsolation.html |  24 +--
 ...tLargeClusterBalancingSystemTableIsolation.html |  26 +--
 ...ancingTableIsolationAndReplicaDistribution.html |  30 ++--
 ...terBalancingConditionalReplicaDistribution.html | 163 +++++++++---------
 ...estLargeClusterBalancingMetaTableIsolation.html | 137 +++++++--------
 ...tLargeClusterBalancingSystemTableIsolation.html | 141 +++++++--------
 ...ancingTableIsolationAndReplicaDistribution.html | 191 +++++++++++----------
 37 files changed, 432 insertions(+), 420 deletions(-)

diff --git a/apache_hbase_reference_guide.pdf b/apache_hbase_reference_guide.pdf
index ec620a775c1..ce917a6be31 100644
--- a/apache_hbase_reference_guide.pdf
+++ b/apache_hbase_reference_guide.pdf
@@ -5,8 +5,8 @@
 /Author (Apache HBase Team)
 /Creator (Asciidoctor PDF 2.0.6, based on Prawn 2.4.0)
 /Producer (Apache HBase Team)
-/ModDate (D:20260102143126+00'00')
-/CreationDate (D:20260102144613+00'00')
+/ModDate (D:20260104143120+00'00')
+/CreationDate (D:20260104144732+00'00')
 >>
 endobj
 2 0 obj
diff --git a/book.html b/book.html
index c1208bb2b4b..934caabea8d 100644
--- a/book.html
+++ b/book.html
@@ -50183,7 +50183,7 @@ 
org/apache/hadoop/hbase/security/access/AccessControlClient.revoke:(Lorg/apache/
 <div id="footer">
 <div id="footer-text">
 Version 4.0.0-alpha-1-SNAPSHOT<br>
-Last updated 2026-01-02 14:31:26 UTC
+Last updated 2026-01-04 14:31:20 UTC
 </div>
 </div>
 <script type="text/x-mathjax-config">
diff --git a/checkstyle-aggregate.html b/checkstyle-aggregate.html
index a2268f6a532..0283a97e0c7 100644
--- a/checkstyle-aggregate.html
+++ b/checkstyle-aggregate.html
@@ -1,7 +1,7 @@
 <!DOCTYPE html>
 <!--
  | Generated by Apache Maven Doxia Site Renderer 1.11.1
- from 
org.apache.maven.plugins:maven-checkstyle-plugin:3.6.0:checkstyle-aggregate at 
2026-01-02
+ from 
org.apache.maven.plugins:maven-checkstyle-plugin:3.6.0:checkstyle-aggregate at 
2026-01-04
 
  | Rendered using Apache Maven Default Skin
 -->
@@ -45,7 +45,7 @@ Apache HBase
 
 
       <div class="xleft">
-        <span id="publishDate">Last Published: 2026-01-02</span>
+        <span id="publishDate">Last Published: 2026-01-04</span>
            | <span id="projectVersion">Version: 4.0.0-alpha-1-SNAPSHOT</span>
 
 
diff --git a/dependency-convergence.html b/dependency-convergence.html
index f071f486577..b385d982b4c 100644
--- a/dependency-convergence.html
+++ b/dependency-convergence.html
@@ -1,7 +1,7 @@
 <!DOCTYPE html>
 <!--
  | Generated by Apache Maven Doxia Site Renderer 1.11.1
- from 
org.apache.maven.plugins:maven-project-info-reports-plugin:3.9.0:dependency-convergence
 at 2026-01-02
+ from 
org.apache.maven.plugins:maven-project-info-reports-plugin:3.9.0:dependency-convergence
 at 2026-01-04
 
  | Rendered using Apache Maven Default Skin
 -->
@@ -45,7 +45,7 @@ Apache HBase
 
 
       <div class="xleft">
-        <span id="publishDate">Last Published: 2026-01-02</span>
+        <span id="publishDate">Last Published: 2026-01-04</span>
            | <span id="projectVersion">Version: 4.0.0-alpha-1-SNAPSHOT</span>
 
 
diff --git a/dependency-info.html b/dependency-info.html
index 77d2e010576..072622363f6 100644
--- a/dependency-info.html
+++ b/dependency-info.html
@@ -1,7 +1,7 @@
 <!DOCTYPE html>
 <!--
  | Generated by Apache Maven Doxia Site Renderer 1.11.1
- from 
org.apache.maven.plugins:maven-project-info-reports-plugin:3.9.0:dependency-info
 at 2026-01-02
+ from 
org.apache.maven.plugins:maven-project-info-reports-plugin:3.9.0:dependency-info
 at 2026-01-04
 
  | Rendered using Apache Maven Default Skin
 -->
@@ -45,7 +45,7 @@ Apache HBase
 
 
       <div class="xleft">
-        <span id="publishDate">Last Published: 2026-01-02</span>
+        <span id="publishDate">Last Published: 2026-01-04</span>
            | <span id="projectVersion">Version: 4.0.0-alpha-1-SNAPSHOT</span>
 
 
diff --git a/dependency-management.html b/dependency-management.html
index 567c952095c..202c310c378 100644
--- a/dependency-management.html
+++ b/dependency-management.html
@@ -1,7 +1,7 @@
 <!DOCTYPE html>
 <!--
  | Generated by Apache Maven Doxia Site Renderer 1.11.1
- from 
org.apache.maven.plugins:maven-project-info-reports-plugin:3.9.0:dependency-management
 at 2026-01-02
+ from 
org.apache.maven.plugins:maven-project-info-reports-plugin:3.9.0:dependency-management
 at 2026-01-04
 
  | Rendered using Apache Maven Default Skin
 -->
@@ -45,7 +45,7 @@ Apache HBase
 
 
       <div class="xleft">
-        <span id="publishDate">Last Published: 2026-01-02</span>
+        <span id="publishDate">Last Published: 2026-01-04</span>
            | <span id="projectVersion">Version: 4.0.0-alpha-1-SNAPSHOT</span>
 
 
diff --git a/hbase-website/dependency-convergence.html 
b/hbase-website/dependency-convergence.html
index b00e344cac3..2a870efb7cf 100644
--- a/hbase-website/dependency-convergence.html
+++ b/hbase-website/dependency-convergence.html
@@ -1,7 +1,7 @@
 <!DOCTYPE html>
 <!--
  | Generated by Apache Maven Doxia Site Renderer 1.11.1
- from 
org.apache.maven.plugins:maven-project-info-reports-plugin:3.9.0:dependency-convergence
 at 2026-01-02
+ from 
org.apache.maven.plugins:maven-project-info-reports-plugin:3.9.0:dependency-convergence
 at 2026-01-04
 
  | Rendered using Apache Maven Default Skin
 -->
@@ -45,7 +45,7 @@ Apache HBase - Website
 
 
       <div class="xleft">
-        <span id="publishDate">Last Published: 2026-01-02</span>
+        <span id="publishDate">Last Published: 2026-01-04</span>
            | <span id="projectVersion">Version: 4.0.0-alpha-1-SNAPSHOT</span>
 
 
diff --git a/hbase-website/dependency-info.html 
b/hbase-website/dependency-info.html
index 7a42dd58584..9af08ea38c4 100644
--- a/hbase-website/dependency-info.html
+++ b/hbase-website/dependency-info.html
@@ -1,7 +1,7 @@
 <!DOCTYPE html>
 <!--
  | Generated by Apache Maven Doxia Site Renderer 1.11.1
- from 
org.apache.maven.plugins:maven-project-info-reports-plugin:3.9.0:dependency-info
 at 2026-01-02
+ from 
org.apache.maven.plugins:maven-project-info-reports-plugin:3.9.0:dependency-info
 at 2026-01-04
 
  | Rendered using Apache Maven Default Skin
 -->
@@ -45,7 +45,7 @@ Apache HBase - Website
 
 
       <div class="xleft">
-        <span id="publishDate">Last Published: 2026-01-02</span>
+        <span id="publishDate">Last Published: 2026-01-04</span>
            | <span id="projectVersion">Version: 4.0.0-alpha-1-SNAPSHOT</span>
 
 
diff --git a/hbase-website/dependency-management.html 
b/hbase-website/dependency-management.html
index 92930e5cfe0..9c0ab569d5f 100644
--- a/hbase-website/dependency-management.html
+++ b/hbase-website/dependency-management.html
@@ -1,7 +1,7 @@
 <!DOCTYPE html>
 <!--
  | Generated by Apache Maven Doxia Site Renderer 1.11.1
- from 
org.apache.maven.plugins:maven-project-info-reports-plugin:3.9.0:dependency-management
 at 2026-01-02
+ from 
org.apache.maven.plugins:maven-project-info-reports-plugin:3.9.0:dependency-management
 at 2026-01-04
 
  | Rendered using Apache Maven Default Skin
 -->
@@ -45,7 +45,7 @@ Apache HBase - Website
 
 
       <div class="xleft">
-        <span id="publishDate">Last Published: 2026-01-02</span>
+        <span id="publishDate">Last Published: 2026-01-04</span>
            | <span id="projectVersion">Version: 4.0.0-alpha-1-SNAPSHOT</span>
 
 
diff --git a/hbase-website/index.html b/hbase-website/index.html
index 8f99d102023..d746071cef2 100644
--- a/hbase-website/index.html
+++ b/hbase-website/index.html
@@ -1,7 +1,7 @@
 <!DOCTYPE html>
 <!--
  | Generated by Apache Maven Doxia Site Renderer 1.11.1
- from org.apache.maven.plugins:maven-project-info-reports-plugin:3.9.0:index 
at 2026-01-02
+ from org.apache.maven.plugins:maven-project-info-reports-plugin:3.9.0:index 
at 2026-01-04
 
  | Rendered using Apache Maven Default Skin
 -->
@@ -45,7 +45,7 @@ Apache HBase - Website
 
 
       <div class="xleft">
-        <span id="publishDate">Last Published: 2026-01-02</span>
+        <span id="publishDate">Last Published: 2026-01-04</span>
            | <span id="projectVersion">Version: 4.0.0-alpha-1-SNAPSHOT</span>
 
 
diff --git a/hbase-website/issue-management.html 
b/hbase-website/issue-management.html
index ea34833bba8..a41724a9c74 100644
--- a/hbase-website/issue-management.html
+++ b/hbase-website/issue-management.html
@@ -1,7 +1,7 @@
 <!DOCTYPE html>
 <!--
  | Generated by Apache Maven Doxia Site Renderer 1.11.1
- from 
org.apache.maven.plugins:maven-project-info-reports-plugin:3.9.0:issue-management
 at 2026-01-02
+ from 
org.apache.maven.plugins:maven-project-info-reports-plugin:3.9.0:issue-management
 at 2026-01-04
 
  | Rendered using Apache Maven Default Skin
 -->
@@ -45,7 +45,7 @@ Apache HBase - Website
 
 
       <div class="xleft">
-        <span id="publishDate">Last Published: 2026-01-02</span>
+        <span id="publishDate">Last Published: 2026-01-04</span>
            | <span id="projectVersion">Version: 4.0.0-alpha-1-SNAPSHOT</span>
 
 
diff --git a/hbase-website/licenses.html b/hbase-website/licenses.html
index 22bc241904d..ca928161aa4 100644
--- a/hbase-website/licenses.html
+++ b/hbase-website/licenses.html
@@ -1,7 +1,7 @@
 <!DOCTYPE html>
 <!--
  | Generated by Apache Maven Doxia Site Renderer 1.11.1
- from 
org.apache.maven.plugins:maven-project-info-reports-plugin:3.9.0:licenses at 
2026-01-02
+ from 
org.apache.maven.plugins:maven-project-info-reports-plugin:3.9.0:licenses at 
2026-01-04
 
  | Rendered using Apache Maven Default Skin
 -->
@@ -45,7 +45,7 @@ Apache HBase - Website
 
 
       <div class="xleft">
-        <span id="publishDate">Last Published: 2026-01-02</span>
+        <span id="publishDate">Last Published: 2026-01-04</span>
            | <span id="projectVersion">Version: 4.0.0-alpha-1-SNAPSHOT</span>
 
 
diff --git a/hbase-website/mailing-lists.html b/hbase-website/mailing-lists.html
index 99297665b6b..36488452f4b 100644
--- a/hbase-website/mailing-lists.html
+++ b/hbase-website/mailing-lists.html
@@ -1,7 +1,7 @@
 <!DOCTYPE html>
 <!--
  | Generated by Apache Maven Doxia Site Renderer 1.11.1
- from 
org.apache.maven.plugins:maven-project-info-reports-plugin:3.9.0:mailing-lists 
at 2026-01-02
+ from 
org.apache.maven.plugins:maven-project-info-reports-plugin:3.9.0:mailing-lists 
at 2026-01-04
 
  | Rendered using Apache Maven Default Skin
 -->
@@ -45,7 +45,7 @@ Apache HBase - Website
 
 
       <div class="xleft">
-        <span id="publishDate">Last Published: 2026-01-02</span>
+        <span id="publishDate">Last Published: 2026-01-04</span>
            | <span id="projectVersion">Version: 4.0.0-alpha-1-SNAPSHOT</span>
 
 
diff --git a/hbase-website/plugin-management.html 
b/hbase-website/plugin-management.html
index ec885082989..a2728791ce6 100644
--- a/hbase-website/plugin-management.html
+++ b/hbase-website/plugin-management.html
@@ -1,7 +1,7 @@
 <!DOCTYPE html>
 <!--
  | Generated by Apache Maven Doxia Site Renderer 1.11.1
- from 
org.apache.maven.plugins:maven-project-info-reports-plugin:3.9.0:plugin-management
 at 2026-01-02
+ from 
org.apache.maven.plugins:maven-project-info-reports-plugin:3.9.0:plugin-management
 at 2026-01-04
 
  | Rendered using Apache Maven Default Skin
 -->
@@ -45,7 +45,7 @@ Apache HBase - Website
 
 
       <div class="xleft">
-        <span id="publishDate">Last Published: 2026-01-02</span>
+        <span id="publishDate">Last Published: 2026-01-04</span>
            | <span id="projectVersion">Version: 4.0.0-alpha-1-SNAPSHOT</span>
 
 
diff --git a/hbase-website/plugins.html b/hbase-website/plugins.html
index f0dd6bb954a..43db8a452b4 100644
--- a/hbase-website/plugins.html
+++ b/hbase-website/plugins.html
@@ -1,7 +1,7 @@
 <!DOCTYPE html>
 <!--
  | Generated by Apache Maven Doxia Site Renderer 1.11.1
- from org.apache.maven.plugins:maven-project-info-reports-plugin:3.9.0:plugins 
at 2026-01-02
+ from org.apache.maven.plugins:maven-project-info-reports-plugin:3.9.0:plugins 
at 2026-01-04
 
  | Rendered using Apache Maven Default Skin
 -->
@@ -45,7 +45,7 @@ Apache HBase - Website
 
 
       <div class="xleft">
-        <span id="publishDate">Last Published: 2026-01-02</span>
+        <span id="publishDate">Last Published: 2026-01-04</span>
            | <span id="projectVersion">Version: 4.0.0-alpha-1-SNAPSHOT</span>
 
 
diff --git a/hbase-website/project-info.html b/hbase-website/project-info.html
index e5a26329860..22fe22c2c47 100644
--- a/hbase-website/project-info.html
+++ b/hbase-website/project-info.html
@@ -1,7 +1,7 @@
 <!DOCTYPE html>
 <!--
  | Generated by Apache Maven Doxia Site Renderer 1.11.1
- from 
org.apache.maven.plugins:maven-site-plugin:3.12.0:CategorySummaryDocumentRenderer
 at 2026-01-02
+ from 
org.apache.maven.plugins:maven-site-plugin:3.12.0:CategorySummaryDocumentRenderer
 at 2026-01-04
 
  | Rendered using Apache Maven Default Skin
 -->
@@ -45,7 +45,7 @@ Apache HBase - Website
 
 
       <div class="xleft">
-        <span id="publishDate">Last Published: 2026-01-02</span>
+        <span id="publishDate">Last Published: 2026-01-04</span>
            | <span id="projectVersion">Version: 4.0.0-alpha-1-SNAPSHOT</span>
 
 
diff --git a/hbase-website/scm.html b/hbase-website/scm.html
index 137a5f75196..d5cea28c5f8 100644
--- a/hbase-website/scm.html
+++ b/hbase-website/scm.html
@@ -1,7 +1,7 @@
 <!DOCTYPE html>
 <!--
  | Generated by Apache Maven Doxia Site Renderer 1.11.1
- from org.apache.maven.plugins:maven-project-info-reports-plugin:3.9.0:scm at 
2026-01-02
+ from org.apache.maven.plugins:maven-project-info-reports-plugin:3.9.0:scm at 
2026-01-04
 
  | Rendered using Apache Maven Default Skin
 -->
@@ -45,7 +45,7 @@ Apache HBase - Website
 
 
       <div class="xleft">
-        <span id="publishDate">Last Published: 2026-01-02</span>
+        <span id="publishDate">Last Published: 2026-01-04</span>
            | <span id="projectVersion">Version: 4.0.0-alpha-1-SNAPSHOT</span>
 
 
diff --git a/hbase-website/summary.html b/hbase-website/summary.html
index d1c401b231e..ffb0d7fbc8b 100644
--- a/hbase-website/summary.html
+++ b/hbase-website/summary.html
@@ -1,7 +1,7 @@
 <!DOCTYPE html>
 <!--
  | Generated by Apache Maven Doxia Site Renderer 1.11.1
- from org.apache.maven.plugins:maven-project-info-reports-plugin:3.9.0:summary 
at 2026-01-02
+ from org.apache.maven.plugins:maven-project-info-reports-plugin:3.9.0:summary 
at 2026-01-04
 
  | Rendered using Apache Maven Default Skin
 -->
@@ -45,7 +45,7 @@ Apache HBase - Website
 
 
       <div class="xleft">
-        <span id="publishDate">Last Published: 2026-01-02</span>
+        <span id="publishDate">Last Published: 2026-01-04</span>
            | <span id="projectVersion">Version: 4.0.0-alpha-1-SNAPSHOT</span>
 
 
diff --git a/hbase-website/team.html b/hbase-website/team.html
index 18a5a743b7d..932c35d77a8 100644
--- a/hbase-website/team.html
+++ b/hbase-website/team.html
@@ -1,7 +1,7 @@
 <!DOCTYPE html>
 <!--
  | Generated by Apache Maven Doxia Site Renderer 1.11.1
- from org.apache.maven.plugins:maven-project-info-reports-plugin:3.9.0:team at 
2026-01-02
+ from org.apache.maven.plugins:maven-project-info-reports-plugin:3.9.0:team at 
2026-01-04
 
  | Rendered using Apache Maven Default Skin
 -->
@@ -45,7 +45,7 @@ Apache HBase - Website
 
 
       <div class="xleft">
-        <span id="publishDate">Last Published: 2026-01-02</span>
+        <span id="publishDate">Last Published: 2026-01-04</span>
            | <span id="projectVersion">Version: 4.0.0-alpha-1-SNAPSHOT</span>
 
 
diff --git a/issue-management.html b/issue-management.html
index 8956a3f49cb..e03fbbd5710 100644
--- a/issue-management.html
+++ b/issue-management.html
@@ -1,7 +1,7 @@
 <!DOCTYPE html>
 <!--
  | Generated by Apache Maven Doxia Site Renderer 1.11.1
- from 
org.apache.maven.plugins:maven-project-info-reports-plugin:3.9.0:issue-management
 at 2026-01-02
+ from 
org.apache.maven.plugins:maven-project-info-reports-plugin:3.9.0:issue-management
 at 2026-01-04
 
  | Rendered using Apache Maven Default Skin
 -->
@@ -45,7 +45,7 @@ Apache HBase
 
 
       <div class="xleft">
-        <span id="publishDate">Last Published: 2026-01-02</span>
+        <span id="publishDate">Last Published: 2026-01-04</span>
            | <span id="projectVersion">Version: 4.0.0-alpha-1-SNAPSHOT</span>
 
 
diff --git a/licenses.html b/licenses.html
index b71a3863881..e0261db22f9 100644
--- a/licenses.html
+++ b/licenses.html
@@ -1,7 +1,7 @@
 <!DOCTYPE html>
 <!--
  | Generated by Apache Maven Doxia Site Renderer 1.11.1
- from 
org.apache.maven.plugins:maven-project-info-reports-plugin:3.9.0:licenses at 
2026-01-02
+ from 
org.apache.maven.plugins:maven-project-info-reports-plugin:3.9.0:licenses at 
2026-01-04
 
  | Rendered using Apache Maven Default Skin
 -->
@@ -45,7 +45,7 @@ Apache HBase
 
 
       <div class="xleft">
-        <span id="publishDate">Last Published: 2026-01-02</span>
+        <span id="publishDate">Last Published: 2026-01-04</span>
            | <span id="projectVersion">Version: 4.0.0-alpha-1-SNAPSHOT</span>
 
 
diff --git a/mailing-lists.html b/mailing-lists.html
index e149842e096..71f74a04ece 100644
--- a/mailing-lists.html
+++ b/mailing-lists.html
@@ -1,7 +1,7 @@
 <!DOCTYPE html>
 <!--
  | Generated by Apache Maven Doxia Site Renderer 1.11.1
- from 
org.apache.maven.plugins:maven-project-info-reports-plugin:3.9.0:mailing-lists 
at 2026-01-02
+ from 
org.apache.maven.plugins:maven-project-info-reports-plugin:3.9.0:mailing-lists 
at 2026-01-04
 
  | Rendered using Apache Maven Default Skin
 -->
@@ -45,7 +45,7 @@ Apache HBase
 
 
       <div class="xleft">
-        <span id="publishDate">Last Published: 2026-01-02</span>
+        <span id="publishDate">Last Published: 2026-01-04</span>
            | <span id="projectVersion">Version: 4.0.0-alpha-1-SNAPSHOT</span>
 
 
diff --git a/plugin-management.html b/plugin-management.html
index 91de9c9ada0..935a59f841f 100644
--- a/plugin-management.html
+++ b/plugin-management.html
@@ -1,7 +1,7 @@
 <!DOCTYPE html>
 <!--
  | Generated by Apache Maven Doxia Site Renderer 1.11.1
- from 
org.apache.maven.plugins:maven-project-info-reports-plugin:3.9.0:plugin-management
 at 2026-01-02
+ from 
org.apache.maven.plugins:maven-project-info-reports-plugin:3.9.0:plugin-management
 at 2026-01-04
 
  | Rendered using Apache Maven Default Skin
 -->
@@ -45,7 +45,7 @@ Apache HBase
 
 
       <div class="xleft">
-        <span id="publishDate">Last Published: 2026-01-02</span>
+        <span id="publishDate">Last Published: 2026-01-04</span>
            | <span id="projectVersion">Version: 4.0.0-alpha-1-SNAPSHOT</span>
 
 
diff --git a/plugins.html b/plugins.html
index 73decc8e942..36981345fe3 100644
--- a/plugins.html
+++ b/plugins.html
@@ -1,7 +1,7 @@
 <!DOCTYPE html>
 <!--
  | Generated by Apache Maven Doxia Site Renderer 1.11.1
- from org.apache.maven.plugins:maven-project-info-reports-plugin:3.9.0:plugins 
at 2026-01-02
+ from org.apache.maven.plugins:maven-project-info-reports-plugin:3.9.0:plugins 
at 2026-01-04
 
  | Rendered using Apache Maven Default Skin
 -->
@@ -45,7 +45,7 @@ Apache HBase
 
 
       <div class="xleft">
-        <span id="publishDate">Last Published: 2026-01-02</span>
+        <span id="publishDate">Last Published: 2026-01-04</span>
            | <span id="projectVersion">Version: 4.0.0-alpha-1-SNAPSHOT</span>
 
 
diff --git a/project-info.html b/project-info.html
index c5c6dd6b9d1..38c26fc95cc 100644
--- a/project-info.html
+++ b/project-info.html
@@ -1,7 +1,7 @@
 <!DOCTYPE html>
 <!--
  | Generated by Apache Maven Doxia Site Renderer 1.11.1
- from 
org.apache.maven.plugins:maven-site-plugin:3.12.0:CategorySummaryDocumentRenderer
 at 2026-01-02
+ from 
org.apache.maven.plugins:maven-site-plugin:3.12.0:CategorySummaryDocumentRenderer
 at 2026-01-04
 
  | Rendered using Apache Maven Default Skin
 -->
@@ -45,7 +45,7 @@ Apache HBase
 
 
       <div class="xleft">
-        <span id="publishDate">Last Published: 2026-01-02</span>
+        <span id="publishDate">Last Published: 2026-01-04</span>
            | <span id="projectVersion">Version: 4.0.0-alpha-1-SNAPSHOT</span>
 
 
diff --git a/project-reports.html b/project-reports.html
index 086d34e22c7..962b028d615 100644
--- a/project-reports.html
+++ b/project-reports.html
@@ -1,7 +1,7 @@
 <!DOCTYPE html>
 <!--
  | Generated by Apache Maven Doxia Site Renderer 1.11.1
- from 
org.apache.maven.plugins:maven-site-plugin:3.12.0:CategorySummaryDocumentRenderer
 at 2026-01-02
+ from 
org.apache.maven.plugins:maven-site-plugin:3.12.0:CategorySummaryDocumentRenderer
 at 2026-01-04
 
  | Rendered using Apache Maven Default Skin
 -->
@@ -45,7 +45,7 @@ Apache HBase
 
 
       <div class="xleft">
-        <span id="publishDate">Last Published: 2026-01-02</span>
+        <span id="publishDate">Last Published: 2026-01-04</span>
            | <span id="projectVersion">Version: 4.0.0-alpha-1-SNAPSHOT</span>
 
 
diff --git a/scm.html b/scm.html
index 9c792cbc232..0d0789ec556 100644
--- a/scm.html
+++ b/scm.html
@@ -1,7 +1,7 @@
 <!DOCTYPE html>
 <!--
  | Generated by Apache Maven Doxia Site Renderer 1.11.1
- from org.apache.maven.plugins:maven-project-info-reports-plugin:3.9.0:scm at 
2026-01-02
+ from org.apache.maven.plugins:maven-project-info-reports-plugin:3.9.0:scm at 
2026-01-04
 
  | Rendered using Apache Maven Default Skin
 -->
@@ -45,7 +45,7 @@ Apache HBase
 
 
       <div class="xleft">
-        <span id="publishDate">Last Published: 2026-01-02</span>
+        <span id="publishDate">Last Published: 2026-01-04</span>
            | <span id="projectVersion">Version: 4.0.0-alpha-1-SNAPSHOT</span>
 
 
diff --git a/summary.html b/summary.html
index 1f53901e6ea..5880ddca28a 100644
--- a/summary.html
+++ b/summary.html
@@ -1,7 +1,7 @@
 <!DOCTYPE html>
 <!--
  | Generated by Apache Maven Doxia Site Renderer 1.11.1
- from org.apache.maven.plugins:maven-project-info-reports-plugin:3.9.0:summary 
at 2026-01-02
+ from org.apache.maven.plugins:maven-project-info-reports-plugin:3.9.0:summary 
at 2026-01-04
 
  | Rendered using Apache Maven Default Skin
 -->
@@ -45,7 +45,7 @@ Apache HBase
 
 
       <div class="xleft">
-        <span id="publishDate">Last Published: 2026-01-02</span>
+        <span id="publishDate">Last Published: 2026-01-04</span>
            | <span id="projectVersion">Version: 4.0.0-alpha-1-SNAPSHOT</span>
 
 
diff --git a/team.html b/team.html
index 1b71d0c2b81..90f03f99a25 100644
--- a/team.html
+++ b/team.html
@@ -1,7 +1,7 @@
 <!DOCTYPE html>
 <!--
  | Generated by Apache Maven Doxia Site Renderer 1.11.1
- from org.apache.maven.plugins:maven-project-info-reports-plugin:3.9.0:team at 
2026-01-02
+ from org.apache.maven.plugins:maven-project-info-reports-plugin:3.9.0:team at 
2026-01-04
 
  | Rendered using Apache Maven Default Skin
 -->
@@ -45,7 +45,7 @@ Apache HBase
 
 
       <div class="xleft">
-        <span id="publishDate">Last Published: 2026-01-02</span>
+        <span id="publishDate">Last Published: 2026-01-04</span>
            | <span id="projectVersion">Version: 4.0.0-alpha-1-SNAPSHOT</span>
 
 
diff --git 
a/testdevapidocs/org/apache/hadoop/hbase/master/balancer/TestLargeClusterBalancingConditionalReplicaDistribution.html
 
b/testdevapidocs/org/apache/hadoop/hbase/master/balancer/TestLargeClusterBalancingConditionalReplicaDistribution.html
index 7a9a6b9d2ba..cf93c235f67 100644
--- 
a/testdevapidocs/org/apache/hadoop/hbase/master/balancer/TestLargeClusterBalancingConditionalReplicaDistribution.html
+++ 
b/testdevapidocs/org/apache/hadoop/hbase/master/balancer/TestLargeClusterBalancingConditionalReplicaDistribution.html
@@ -77,7 +77,7 @@ loadScripts(document, 'script');</script>
 </div>
 <section class="class-description" id="class-description">
 <hr>
-<div class="type-signature"><span class="modifiers">public class </span><span 
class="element-name"><a 
href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/TestLargeClusterBalancingConditionalReplicaDistribution.html#line-44">TestLargeClusterBalancingConditionalReplicaDistribution</a></span>
+<div class="type-signature"><span class="modifiers">public class </span><span 
class="element-name"><a 
href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/TestLargeClusterBalancingConditionalReplicaDistribution.html#line-46">TestLargeClusterBalancingConditionalReplicaDistribution</a></span>
 <span class="extends-implements">extends <a 
href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html";
 title="class or interface in java.lang" 
class="external-link">Object</a></span></div>
 </section>
 <section class="summary">
@@ -171,19 +171,19 @@ loadScripts(document, 'script');</script>
 <li>
 <section class="detail" id="CLASS_RULE">
 <h3>CLASS_RULE</h3>
-<div class="member-signature"><span class="modifiers">public static 
final</span>&nbsp;<span class="return-type"><a 
href="../../HBaseClassTestRule.html" title="class in 
org.apache.hadoop.hbase">HBaseClassTestRule</a></span>&nbsp;<span 
class="element-name"><a 
href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/TestLargeClusterBalancingConditionalReplicaDistribution.html#line-47">CLASS_RULE</a></span></div>
+<div class="member-signature"><span class="modifiers">public static 
final</span>&nbsp;<span class="return-type"><a 
href="../../HBaseClassTestRule.html" title="class in 
org.apache.hadoop.hbase">HBaseClassTestRule</a></span>&nbsp;<span 
class="element-name"><a 
href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/TestLargeClusterBalancingConditionalReplicaDistribution.html#line-49">CLASS_RULE</a></span></div>
 </section>
 </li>
 <li>
 <section class="detail" id="LOG">
 <h3>LOG</h3>
-<div class="member-signature"><span class="modifiers">private static 
final</span>&nbsp;<span class="return-type">org.slf4j.Logger</span>&nbsp;<span 
class="element-name"><a 
href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/TestLargeClusterBalancingConditionalReplicaDistribution.html#line-51">LOG</a></span></div>
+<div class="member-signature"><span class="modifiers">private static 
final</span>&nbsp;<span class="return-type">org.slf4j.Logger</span>&nbsp;<span 
class="element-name"><a 
href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/TestLargeClusterBalancingConditionalReplicaDistribution.html#line-53">LOG</a></span></div>
 </section>
 </li>
 <li>
 <section class="detail" id="NUM_SERVERS">
 <h3>NUM_SERVERS</h3>
-<div class="member-signature"><span class="modifiers">private static 
final</span>&nbsp;<span class="return-type">int</span>&nbsp;<span 
class="element-name"><a 
href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/TestLargeClusterBalancingConditionalReplicaDistribution.html#line-54">NUM_SERVERS</a></span></div>
+<div class="member-signature"><span class="modifiers">private static 
final</span>&nbsp;<span class="return-type">int</span>&nbsp;<span 
class="element-name"><a 
href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/TestLargeClusterBalancingConditionalReplicaDistribution.html#line-56">NUM_SERVERS</a></span></div>
 <dl class="notes">
 <dt>See Also:</dt>
 <dd>
@@ -197,7 +197,7 @@ loadScripts(document, 'script');</script>
 <li>
 <section class="detail" id="NUM_REGIONS">
 <h3>NUM_REGIONS</h3>
-<div class="member-signature"><span class="modifiers">private static 
final</span>&nbsp;<span class="return-type">int</span>&nbsp;<span 
class="element-name"><a 
href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/TestLargeClusterBalancingConditionalReplicaDistribution.html#line-55">NUM_REGIONS</a></span></div>
+<div class="member-signature"><span class="modifiers">private static 
final</span>&nbsp;<span class="return-type">int</span>&nbsp;<span 
class="element-name"><a 
href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/TestLargeClusterBalancingConditionalReplicaDistribution.html#line-57">NUM_REGIONS</a></span></div>
 <dl class="notes">
 <dt>See Also:</dt>
 <dd>
@@ -211,7 +211,7 @@ loadScripts(document, 'script');</script>
 <li>
 <section class="detail" id="NUM_REPLICAS">
 <h3>NUM_REPLICAS</h3>
-<div class="member-signature"><span class="modifiers">private static 
final</span>&nbsp;<span class="return-type">int</span>&nbsp;<span 
class="element-name"><a 
href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/TestLargeClusterBalancingConditionalReplicaDistribution.html#line-56">NUM_REPLICAS</a></span></div>
+<div class="member-signature"><span class="modifiers">private static 
final</span>&nbsp;<span class="return-type">int</span>&nbsp;<span 
class="element-name"><a 
href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/TestLargeClusterBalancingConditionalReplicaDistribution.html#line-58">NUM_REPLICAS</a></span></div>
 <dl class="notes">
 <dt>See Also:</dt>
 <dd>
@@ -225,7 +225,7 @@ loadScripts(document, 'script');</script>
 <li>
 <section class="detail" id="NUM_TABLES">
 <h3>NUM_TABLES</h3>
-<div class="member-signature"><span class="modifiers">private static 
final</span>&nbsp;<span class="return-type">int</span>&nbsp;<span 
class="element-name"><a 
href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/TestLargeClusterBalancingConditionalReplicaDistribution.html#line-57">NUM_TABLES</a></span></div>
+<div class="member-signature"><span class="modifiers">private static 
final</span>&nbsp;<span class="return-type">int</span>&nbsp;<span 
class="element-name"><a 
href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/TestLargeClusterBalancingConditionalReplicaDistribution.html#line-59">NUM_TABLES</a></span></div>
 <dl class="notes">
 <dt>See Also:</dt>
 <dd>
@@ -239,13 +239,13 @@ loadScripts(document, 'script');</script>
 <li>
 <section class="detail" id="servers">
 <h3>servers</h3>
-<div class="member-signature"><span class="modifiers">private static 
final</span>&nbsp;<span 
class="return-type">org.apache.hadoop.hbase.ServerName[]</span>&nbsp;<span 
class="element-name"><a 
href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/TestLargeClusterBalancingConditionalReplicaDistribution.html#line-59">servers</a></span></div>
+<div class="member-signature"><span class="modifiers">private static 
final</span>&nbsp;<span 
class="return-type">org.apache.hadoop.hbase.ServerName[]</span>&nbsp;<span 
class="element-name"><a 
href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/TestLargeClusterBalancingConditionalReplicaDistribution.html#line-61">servers</a></span></div>
 </section>
 </li>
 <li>
 <section class="detail" id="serverToRegions">
 <h3>serverToRegions</h3>
-<div class="member-signature"><span class="modifiers">private static 
final</span>&nbsp;<span class="return-type"><a 
href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/Map.html";
 title="class or interface in java.util" 
class="external-link">Map</a>&lt;org.apache.hadoop.hbase.ServerName,<wbr><a 
href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/List.html";
 title="class or interface in java.util" 
class="external-link">List</a>&lt;org.apache. [...]
+<div class="member-signature"><span class="modifiers">private static 
final</span>&nbsp;<span class="return-type"><a 
href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/Map.html";
 title="class or interface in java.util" 
class="external-link">Map</a>&lt;org.apache.hadoop.hbase.ServerName,<wbr><a 
href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/List.html";
 title="class or interface in java.util" 
class="external-link">List</a>&lt;org.apache. [...]
 </section>
 </li>
 </ul>
@@ -259,7 +259,7 @@ loadScripts(document, 'script');</script>
 <li>
 <section class="detail" id="&lt;init&gt;()">
 <h3>TestLargeClusterBalancingConditionalReplicaDistribution</h3>
-<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span 
class="element-name"><a 
href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/TestLargeClusterBalancingConditionalReplicaDistribution.html#line-45">TestLargeClusterBalancingConditionalReplicaDistribution</a></span>()</div>
+<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span 
class="element-name"><a 
href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/TestLargeClusterBalancingConditionalReplicaDistribution.html#line-47">TestLargeClusterBalancingConditionalReplicaDistribution</a></span>()</div>
 </section>
 </li>
 </ul>
@@ -273,19 +273,19 @@ loadScripts(document, 'script');</script>
 <li>
 <section class="detail" id="setup()">
 <h3>setup</h3>
-<div class="member-signature"><span class="modifiers">public 
static</span>&nbsp;<span class="return-type">void</span>&nbsp;<span 
class="element-name"><a 
href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/TestLargeClusterBalancingConditionalReplicaDistribution.html#line-62">setup</a></span>()</div>
+<div class="member-signature"><span class="modifiers">public 
static</span>&nbsp;<span class="return-type">void</span>&nbsp;<span 
class="element-name"><a 
href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/TestLargeClusterBalancingConditionalReplicaDistribution.html#line-64">setup</a></span>()</div>
 </section>
 </li>
 <li>
 <section class="detail" id="getTableName(int)">
 <h3>getTableName</h3>
-<div class="member-signature"><span class="modifiers">private 
static</span>&nbsp;<span 
class="return-type">org.apache.hadoop.hbase.TableName</span>&nbsp;<span 
class="element-name"><a 
href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/TestLargeClusterBalancingConditionalReplicaDistribution.html#line-92">getTableName</a></span><wbr><span
 class="parameters">(int&nbsp;i)</span></div>
+<div class="member-signature"><span class="modifiers">private 
static</span>&nbsp;<span 
class="return-type">org.apache.hadoop.hbase.TableName</span>&nbsp;<span 
class="element-name"><a 
href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/TestLargeClusterBalancingConditionalReplicaDistribution.html#line-94">getTableName</a></span><wbr><span
 class="parameters">(int&nbsp;i)</span></div>
 </section>
 </li>
 <li>
 <section class="detail" id="testReplicaDistribution()">
 <h3>testReplicaDistribution</h3>
-<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span 
class="return-type">void</span>&nbsp;<span class="element-name"><a 
href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/TestLargeClusterBalancingConditionalReplicaDistribution.html#line-96">testReplicaDistribution</a></span>()</div>
+<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span 
class="return-type">void</span>&nbsp;<span class="element-name"><a 
href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/TestLargeClusterBalancingConditionalReplicaDistribution.html#line-98">testReplicaDistribution</a></span>()</div>
 </section>
 </li>
 </ul>
diff --git 
a/testdevapidocs/org/apache/hadoop/hbase/master/balancer/TestLargeClusterBalancingMetaTableIsolation.html
 
b/testdevapidocs/org/apache/hadoop/hbase/master/balancer/TestLargeClusterBalancingMetaTableIsolation.html
index 0a9624c7bf0..f2dd40360b8 100644
--- 
a/testdevapidocs/org/apache/hadoop/hbase/master/balancer/TestLargeClusterBalancingMetaTableIsolation.html
+++ 
b/testdevapidocs/org/apache/hadoop/hbase/master/balancer/TestLargeClusterBalancingMetaTableIsolation.html
@@ -77,7 +77,7 @@ loadScripts(document, 'script');</script>
 </div>
 <section class="class-description" id="class-description">
 <hr>
-<div class="type-signature"><span class="modifiers">public class </span><span 
class="element-name"><a 
href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/TestLargeClusterBalancingMetaTableIsolation.html#line-43">TestLargeClusterBalancingMetaTableIsolation</a></span>
+<div class="type-signature"><span class="modifiers">public class </span><span 
class="element-name"><a 
href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/TestLargeClusterBalancingMetaTableIsolation.html#line-45">TestLargeClusterBalancingMetaTableIsolation</a></span>
 <span class="extends-implements">extends <a 
href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html";
 title="class or interface in java.lang" 
class="external-link">Object</a></span></div>
 </section>
 <section class="summary">
@@ -168,25 +168,25 @@ loadScripts(document, 'script');</script>
 <li>
 <section class="detail" id="CLASS_RULE">
 <h3>CLASS_RULE</h3>
-<div class="member-signature"><span class="modifiers">public static 
final</span>&nbsp;<span class="return-type"><a 
href="../../HBaseClassTestRule.html" title="class in 
org.apache.hadoop.hbase">HBaseClassTestRule</a></span>&nbsp;<span 
class="element-name"><a 
href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/TestLargeClusterBalancingMetaTableIsolation.html#line-46">CLASS_RULE</a></span></div>
+<div class="member-signature"><span class="modifiers">public static 
final</span>&nbsp;<span class="return-type"><a 
href="../../HBaseClassTestRule.html" title="class in 
org.apache.hadoop.hbase">HBaseClassTestRule</a></span>&nbsp;<span 
class="element-name"><a 
href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/TestLargeClusterBalancingMetaTableIsolation.html#line-48">CLASS_RULE</a></span></div>
 </section>
 </li>
 <li>
 <section class="detail" id="LOG">
 <h3>LOG</h3>
-<div class="member-signature"><span class="modifiers">private static 
final</span>&nbsp;<span class="return-type">org.slf4j.Logger</span>&nbsp;<span 
class="element-name"><a 
href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/TestLargeClusterBalancingMetaTableIsolation.html#line-50">LOG</a></span></div>
+<div class="member-signature"><span class="modifiers">private static 
final</span>&nbsp;<span class="return-type">org.slf4j.Logger</span>&nbsp;<span 
class="element-name"><a 
href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/TestLargeClusterBalancingMetaTableIsolation.html#line-52">LOG</a></span></div>
 </section>
 </li>
 <li>
 <section class="detail" id="NON_META_TABLE_NAME">
 <h3>NON_META_TABLE_NAME</h3>
-<div class="member-signature"><span class="modifiers">private static 
final</span>&nbsp;<span 
class="return-type">org.apache.hadoop.hbase.TableName</span>&nbsp;<span 
class="element-name"><a 
href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/TestLargeClusterBalancingMetaTableIsolation.html#line-53">NON_META_TABLE_NAME</a></span></div>
+<div class="member-signature"><span class="modifiers">private static 
final</span>&nbsp;<span 
class="return-type">org.apache.hadoop.hbase.TableName</span>&nbsp;<span 
class="element-name"><a 
href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/TestLargeClusterBalancingMetaTableIsolation.html#line-55">NON_META_TABLE_NAME</a></span></div>
 </section>
 </li>
 <li>
 <section class="detail" id="NUM_SERVERS">
 <h3>NUM_SERVERS</h3>
-<div class="member-signature"><span class="modifiers">private static 
final</span>&nbsp;<span class="return-type">int</span>&nbsp;<span 
class="element-name"><a 
href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/TestLargeClusterBalancingMetaTableIsolation.html#line-55">NUM_SERVERS</a></span></div>
+<div class="member-signature"><span class="modifiers">private static 
final</span>&nbsp;<span class="return-type">int</span>&nbsp;<span 
class="element-name"><a 
href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/TestLargeClusterBalancingMetaTableIsolation.html#line-57">NUM_SERVERS</a></span></div>
 <dl class="notes">
 <dt>See Also:</dt>
 <dd>
@@ -200,7 +200,7 @@ loadScripts(document, 'script');</script>
 <li>
 <section class="detail" id="NUM_REGIONS">
 <h3>NUM_REGIONS</h3>
-<div class="member-signature"><span class="modifiers">private static 
final</span>&nbsp;<span class="return-type">int</span>&nbsp;<span 
class="element-name"><a 
href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/TestLargeClusterBalancingMetaTableIsolation.html#line-56">NUM_REGIONS</a></span></div>
+<div class="member-signature"><span class="modifiers">private static 
final</span>&nbsp;<span class="return-type">int</span>&nbsp;<span 
class="element-name"><a 
href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/TestLargeClusterBalancingMetaTableIsolation.html#line-58">NUM_REGIONS</a></span></div>
 <dl class="notes">
 <dt>See Also:</dt>
 <dd>
@@ -214,13 +214,13 @@ loadScripts(document, 'script');</script>
 <li>
 <section class="detail" id="servers">
 <h3>servers</h3>
-<div class="member-signature"><span class="modifiers">private static 
final</span>&nbsp;<span 
class="return-type">org.apache.hadoop.hbase.ServerName[]</span>&nbsp;<span 
class="element-name"><a 
href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/TestLargeClusterBalancingMetaTableIsolation.html#line-58">servers</a></span></div>
+<div class="member-signature"><span class="modifiers">private static 
final</span>&nbsp;<span 
class="return-type">org.apache.hadoop.hbase.ServerName[]</span>&nbsp;<span 
class="element-name"><a 
href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/TestLargeClusterBalancingMetaTableIsolation.html#line-60">servers</a></span></div>
 </section>
 </li>
 <li>
 <section class="detail" id="serverToRegions">
 <h3>serverToRegions</h3>
-<div class="member-signature"><span class="modifiers">private static 
final</span>&nbsp;<span class="return-type"><a 
href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/Map.html";
 title="class or interface in java.util" 
class="external-link">Map</a>&lt;org.apache.hadoop.hbase.ServerName,<wbr><a 
href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/List.html";
 title="class or interface in java.util" 
class="external-link">List</a>&lt;org.apache. [...]
+<div class="member-signature"><span class="modifiers">private static 
final</span>&nbsp;<span class="return-type"><a 
href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/Map.html";
 title="class or interface in java.util" 
class="external-link">Map</a>&lt;org.apache.hadoop.hbase.ServerName,<wbr><a 
href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/List.html";
 title="class or interface in java.util" 
class="external-link">List</a>&lt;org.apache. [...]
 </section>
 </li>
 </ul>
@@ -234,7 +234,7 @@ loadScripts(document, 'script');</script>
 <li>
 <section class="detail" id="&lt;init&gt;()">
 <h3>TestLargeClusterBalancingMetaTableIsolation</h3>
-<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span 
class="element-name"><a 
href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/TestLargeClusterBalancingMetaTableIsolation.html#line-44">TestLargeClusterBalancingMetaTableIsolation</a></span>()</div>
+<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span 
class="element-name"><a 
href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/TestLargeClusterBalancingMetaTableIsolation.html#line-46">TestLargeClusterBalancingMetaTableIsolation</a></span>()</div>
 </section>
 </li>
 </ul>
@@ -248,19 +248,19 @@ loadScripts(document, 'script');</script>
 <li>
 <section class="detail" id="setup()">
 <h3>setup</h3>
-<div class="member-signature"><span class="modifiers">public 
static</span>&nbsp;<span class="return-type">void</span>&nbsp;<span 
class="element-name"><a 
href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/TestLargeClusterBalancingMetaTableIsolation.html#line-61">setup</a></span>()</div>
+<div class="member-signature"><span class="modifiers">public 
static</span>&nbsp;<span class="return-type">void</span>&nbsp;<span 
class="element-name"><a 
href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/TestLargeClusterBalancingMetaTableIsolation.html#line-63">setup</a></span>()</div>
 </section>
 </li>
 <li>
 <section class="detail" id="testMetaTableIsolation()">
 <h3>testMetaTableIsolation</h3>
-<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span 
class="return-type">void</span>&nbsp;<span class="element-name"><a 
href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/TestLargeClusterBalancingMetaTableIsolation.html#line-89">testMetaTableIsolation</a></span>()</div>
+<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span 
class="return-type">void</span>&nbsp;<span class="element-name"><a 
href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/TestLargeClusterBalancingMetaTableIsolation.html#line-91">testMetaTableIsolation</a></span>()</div>
 </section>
 </li>
 <li>
 <section class="detail" 
id="isMetaTableIsolated(org.apache.hadoop.hbase.master.balancer.BalancerClusterState)">
 <h3>isMetaTableIsolated</h3>
-<div class="member-signature"><span 
class="modifiers">private</span>&nbsp;<span 
class="return-type">boolean</span>&nbsp;<span class="element-name"><a 
href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/TestLargeClusterBalancingMetaTableIsolation.html#line-97">isMetaTableIsolated</a></span><wbr><span
 
class="parameters">(org.apache.hadoop.hbase.master.balancer.BalancerClusterState&nbsp;cluster)</span></div>
+<div class="member-signature"><span 
class="modifiers">private</span>&nbsp;<span 
class="return-type">boolean</span>&nbsp;<span class="element-name"><a 
href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/TestLargeClusterBalancingMetaTableIsolation.html#line-100">isMetaTableIsolated</a></span><wbr><span
 
class="parameters">(org.apache.hadoop.hbase.master.balancer.BalancerClusterState&nbsp;cluster)</span></div>
 </section>
 </li>
 </ul>
diff --git 
a/testdevapidocs/org/apache/hadoop/hbase/master/balancer/TestLargeClusterBalancingSystemTableIsolation.html
 
b/testdevapidocs/org/apache/hadoop/hbase/master/balancer/TestLargeClusterBalancingSystemTableIsolation.html
index 0a68228cc12..98b78245d27 100644
--- 
a/testdevapidocs/org/apache/hadoop/hbase/master/balancer/TestLargeClusterBalancingSystemTableIsolation.html
+++ 
b/testdevapidocs/org/apache/hadoop/hbase/master/balancer/TestLargeClusterBalancingSystemTableIsolation.html
@@ -77,7 +77,7 @@ loadScripts(document, 'script');</script>
 </div>
 <section class="class-description" id="class-description">
 <hr>
-<div class="type-signature"><span class="modifiers">public class </span><span 
class="element-name"><a 
href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/TestLargeClusterBalancingSystemTableIsolation.html#line-43">TestLargeClusterBalancingSystemTableIsolation</a></span>
+<div class="type-signature"><span class="modifiers">public class </span><span 
class="element-name"><a 
href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/TestLargeClusterBalancingSystemTableIsolation.html#line-45">TestLargeClusterBalancingSystemTableIsolation</a></span>
 <span class="extends-implements">extends <a 
href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html";
 title="class or interface in java.lang" 
class="external-link">Object</a></span></div>
 </section>
 <section class="summary">
@@ -171,31 +171,31 @@ loadScripts(document, 'script');</script>
 <li>
 <section class="detail" id="CLASS_RULE">
 <h3>CLASS_RULE</h3>
-<div class="member-signature"><span class="modifiers">public static 
final</span>&nbsp;<span class="return-type"><a 
href="../../HBaseClassTestRule.html" title="class in 
org.apache.hadoop.hbase">HBaseClassTestRule</a></span>&nbsp;<span 
class="element-name"><a 
href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/TestLargeClusterBalancingSystemTableIsolation.html#line-46">CLASS_RULE</a></span></div>
+<div class="member-signature"><span class="modifiers">public static 
final</span>&nbsp;<span class="return-type"><a 
href="../../HBaseClassTestRule.html" title="class in 
org.apache.hadoop.hbase">HBaseClassTestRule</a></span>&nbsp;<span 
class="element-name"><a 
href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/TestLargeClusterBalancingSystemTableIsolation.html#line-48">CLASS_RULE</a></span></div>
 </section>
 </li>
 <li>
 <section class="detail" id="LOG">
 <h3>LOG</h3>
-<div class="member-signature"><span class="modifiers">private static 
final</span>&nbsp;<span class="return-type">org.slf4j.Logger</span>&nbsp;<span 
class="element-name"><a 
href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/TestLargeClusterBalancingSystemTableIsolation.html#line-50">LOG</a></span></div>
+<div class="member-signature"><span class="modifiers">private static 
final</span>&nbsp;<span class="return-type">org.slf4j.Logger</span>&nbsp;<span 
class="element-name"><a 
href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/TestLargeClusterBalancingSystemTableIsolation.html#line-52">LOG</a></span></div>
 </section>
 </li>
 <li>
 <section class="detail" id="SYSTEM_TABLE_NAME">
 <h3>SYSTEM_TABLE_NAME</h3>
-<div class="member-signature"><span class="modifiers">private static 
final</span>&nbsp;<span 
class="return-type">org.apache.hadoop.hbase.TableName</span>&nbsp;<span 
class="element-name"><a 
href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/TestLargeClusterBalancingSystemTableIsolation.html#line-53">SYSTEM_TABLE_NAME</a></span></div>
+<div class="member-signature"><span class="modifiers">private static 
final</span>&nbsp;<span 
class="return-type">org.apache.hadoop.hbase.TableName</span>&nbsp;<span 
class="element-name"><a 
href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/TestLargeClusterBalancingSystemTableIsolation.html#line-55">SYSTEM_TABLE_NAME</a></span></div>
 </section>
 </li>
 <li>
 <section class="detail" id="NON_SYSTEM_TABLE_NAME">
 <h3>NON_SYSTEM_TABLE_NAME</h3>
-<div class="member-signature"><span class="modifiers">private static 
final</span>&nbsp;<span 
class="return-type">org.apache.hadoop.hbase.TableName</span>&nbsp;<span 
class="element-name"><a 
href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/TestLargeClusterBalancingSystemTableIsolation.html#line-54">NON_SYSTEM_TABLE_NAME</a></span></div>
+<div class="member-signature"><span class="modifiers">private static 
final</span>&nbsp;<span 
class="return-type">org.apache.hadoop.hbase.TableName</span>&nbsp;<span 
class="element-name"><a 
href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/TestLargeClusterBalancingSystemTableIsolation.html#line-56">NON_SYSTEM_TABLE_NAME</a></span></div>
 </section>
 </li>
 <li>
 <section class="detail" id="NUM_SERVERS">
 <h3>NUM_SERVERS</h3>
-<div class="member-signature"><span class="modifiers">private static 
final</span>&nbsp;<span class="return-type">int</span>&nbsp;<span 
class="element-name"><a 
href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/TestLargeClusterBalancingSystemTableIsolation.html#line-56">NUM_SERVERS</a></span></div>
+<div class="member-signature"><span class="modifiers">private static 
final</span>&nbsp;<span class="return-type">int</span>&nbsp;<span 
class="element-name"><a 
href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/TestLargeClusterBalancingSystemTableIsolation.html#line-58">NUM_SERVERS</a></span></div>
 <dl class="notes">
 <dt>See Also:</dt>
 <dd>
@@ -209,7 +209,7 @@ loadScripts(document, 'script');</script>
 <li>
 <section class="detail" id="NUM_REGIONS">
 <h3>NUM_REGIONS</h3>
-<div class="member-signature"><span class="modifiers">private static 
final</span>&nbsp;<span class="return-type">int</span>&nbsp;<span 
class="element-name"><a 
href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/TestLargeClusterBalancingSystemTableIsolation.html#line-57">NUM_REGIONS</a></span></div>
+<div class="member-signature"><span class="modifiers">private static 
final</span>&nbsp;<span class="return-type">int</span>&nbsp;<span 
class="element-name"><a 
href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/TestLargeClusterBalancingSystemTableIsolation.html#line-59">NUM_REGIONS</a></span></div>
 <dl class="notes">
 <dt>See Also:</dt>
 <dd>
@@ -223,13 +223,13 @@ loadScripts(document, 'script');</script>
 <li>
 <section class="detail" id="servers">
 <h3>servers</h3>
-<div class="member-signature"><span class="modifiers">private static 
final</span>&nbsp;<span 
class="return-type">org.apache.hadoop.hbase.ServerName[]</span>&nbsp;<span 
class="element-name"><a 
href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/TestLargeClusterBalancingSystemTableIsolation.html#line-59">servers</a></span></div>
+<div class="member-signature"><span class="modifiers">private static 
final</span>&nbsp;<span 
class="return-type">org.apache.hadoop.hbase.ServerName[]</span>&nbsp;<span 
class="element-name"><a 
href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/TestLargeClusterBalancingSystemTableIsolation.html#line-61">servers</a></span></div>
 </section>
 </li>
 <li>
 <section class="detail" id="serverToRegions">
 <h3>serverToRegions</h3>
-<div class="member-signature"><span class="modifiers">private static 
final</span>&nbsp;<span class="return-type"><a 
href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/Map.html";
 title="class or interface in java.util" 
class="external-link">Map</a>&lt;org.apache.hadoop.hbase.ServerName,<wbr><a 
href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/List.html";
 title="class or interface in java.util" 
class="external-link">List</a>&lt;org.apache. [...]
+<div class="member-signature"><span class="modifiers">private static 
final</span>&nbsp;<span class="return-type"><a 
href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/Map.html";
 title="class or interface in java.util" 
class="external-link">Map</a>&lt;org.apache.hadoop.hbase.ServerName,<wbr><a 
href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/List.html";
 title="class or interface in java.util" 
class="external-link">List</a>&lt;org.apache. [...]
 </section>
 </li>
 </ul>
@@ -243,7 +243,7 @@ loadScripts(document, 'script');</script>
 <li>
 <section class="detail" id="&lt;init&gt;()">
 <h3>TestLargeClusterBalancingSystemTableIsolation</h3>
-<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span 
class="element-name"><a 
href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/TestLargeClusterBalancingSystemTableIsolation.html#line-44">TestLargeClusterBalancingSystemTableIsolation</a></span>()</div>
+<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span 
class="element-name"><a 
href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/TestLargeClusterBalancingSystemTableIsolation.html#line-46">TestLargeClusterBalancingSystemTableIsolation</a></span>()</div>
 </section>
 </li>
 </ul>
@@ -257,19 +257,19 @@ loadScripts(document, 'script');</script>
 <li>
 <section class="detail" id="setup()">
 <h3>setup</h3>
-<div class="member-signature"><span class="modifiers">public 
static</span>&nbsp;<span class="return-type">void</span>&nbsp;<span 
class="element-name"><a 
href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/TestLargeClusterBalancingSystemTableIsolation.html#line-62">setup</a></span>()</div>
+<div class="member-signature"><span class="modifiers">public 
static</span>&nbsp;<span class="return-type">void</span>&nbsp;<span 
class="element-name"><a 
href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/TestLargeClusterBalancingSystemTableIsolation.html#line-64">setup</a></span>()</div>
 </section>
 </li>
 <li>
 <section class="detail" id="testSystemTableIsolation()">
 <h3>testSystemTableIsolation</h3>
-<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span 
class="return-type">void</span>&nbsp;<span class="element-name"><a 
href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/TestLargeClusterBalancingSystemTableIsolation.html#line-90">testSystemTableIsolation</a></span>()</div>
+<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span 
class="return-type">void</span>&nbsp;<span class="element-name"><a 
href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/TestLargeClusterBalancingSystemTableIsolation.html#line-92">testSystemTableIsolation</a></span>()</div>
 </section>
 </li>
 <li>
 <section class="detail" 
id="isSystemTableIsolated(org.apache.hadoop.hbase.master.balancer.BalancerClusterState)">
 <h3>isSystemTableIsolated</h3>
-<div class="member-signature"><span 
class="modifiers">private</span>&nbsp;<span 
class="return-type">boolean</span>&nbsp;<span class="element-name"><a 
href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/TestLargeClusterBalancingSystemTableIsolation.html#line-98">isSystemTableIsolated</a></span><wbr><span
 
class="parameters">(org.apache.hadoop.hbase.master.balancer.BalancerClusterState&nbsp;cluster)</span></div>
+<div class="member-signature"><span 
class="modifiers">private</span>&nbsp;<span 
class="return-type">boolean</span>&nbsp;<span class="element-name"><a 
href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/TestLargeClusterBalancingSystemTableIsolation.html#line-101">isSystemTableIsolated</a></span><wbr><span
 
class="parameters">(org.apache.hadoop.hbase.master.balancer.BalancerClusterState&nbsp;cluster)</span></div>
 </section>
 </li>
 </ul>
diff --git 
a/testdevapidocs/org/apache/hadoop/hbase/master/balancer/TestLargeClusterBalancingTableIsolationAndReplicaDistribution.html
 
b/testdevapidocs/org/apache/hadoop/hbase/master/balancer/TestLargeClusterBalancingTableIsolationAndReplicaDistribution.html
index fa09c2781db..e3236511756 100644
--- 
a/testdevapidocs/org/apache/hadoop/hbase/master/balancer/TestLargeClusterBalancingTableIsolationAndReplicaDistribution.html
+++ 
b/testdevapidocs/org/apache/hadoop/hbase/master/balancer/TestLargeClusterBalancingTableIsolationAndReplicaDistribution.html
@@ -77,7 +77,7 @@ loadScripts(document, 'script');</script>
 </div>
 <section class="class-description" id="class-description">
 <hr>
-<div class="type-signature"><span class="modifiers">public class </span><span 
class="element-name"><a 
href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/TestLargeClusterBalancingTableIsolationAndReplicaDistribution.html#line-44">TestLargeClusterBalancingTableIsolationAndReplicaDistribution</a></span>
+<div class="type-signature"><span class="modifiers">public class </span><span 
class="element-name"><a 
href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/TestLargeClusterBalancingTableIsolationAndReplicaDistribution.html#line-46">TestLargeClusterBalancingTableIsolationAndReplicaDistribution</a></span>
 <span class="extends-implements">extends <a 
href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Object.html";
 title="class or interface in java.lang" 
class="external-link">Object</a></span></div>
 </section>
 <section class="summary">
@@ -181,31 +181,31 @@ loadScripts(document, 'script');</script>
 <li>
 <section class="detail" id="CLASS_RULE">
 <h3>CLASS_RULE</h3>
-<div class="member-signature"><span class="modifiers">public static 
final</span>&nbsp;<span class="return-type"><a 
href="../../HBaseClassTestRule.html" title="class in 
org.apache.hadoop.hbase">HBaseClassTestRule</a></span>&nbsp;<span 
class="element-name"><a 
href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/TestLargeClusterBalancingTableIsolationAndReplicaDistribution.html#line-47">CLASS_RULE</a></span></div>
+<div class="member-signature"><span class="modifiers">public static 
final</span>&nbsp;<span class="return-type"><a 
href="../../HBaseClassTestRule.html" title="class in 
org.apache.hadoop.hbase">HBaseClassTestRule</a></span>&nbsp;<span 
class="element-name"><a 
href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/TestLargeClusterBalancingTableIsolationAndReplicaDistribution.html#line-49">CLASS_RULE</a></span></div>
 </section>
 </li>
 <li>
 <section class="detail" id="LOG">
 <h3>LOG</h3>
-<div class="member-signature"><span class="modifiers">private static 
final</span>&nbsp;<span class="return-type">org.slf4j.Logger</span>&nbsp;<span 
class="element-name"><a 
href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/TestLargeClusterBalancingTableIsolationAndReplicaDistribution.html#line-51">LOG</a></span></div>
+<div class="member-signature"><span class="modifiers">private static 
final</span>&nbsp;<span class="return-type">org.slf4j.Logger</span>&nbsp;<span 
class="element-name"><a 
href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/TestLargeClusterBalancingTableIsolationAndReplicaDistribution.html#line-53">LOG</a></span></div>
 </section>
 </li>
 <li>
 <section class="detail" id="SYSTEM_TABLE_NAME">
 <h3>SYSTEM_TABLE_NAME</h3>
-<div class="member-signature"><span class="modifiers">private static 
final</span>&nbsp;<span 
class="return-type">org.apache.hadoop.hbase.TableName</span>&nbsp;<span 
class="element-name"><a 
href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/TestLargeClusterBalancingTableIsolationAndReplicaDistribution.html#line-53">SYSTEM_TABLE_NAME</a></span></div>
+<div class="member-signature"><span class="modifiers">private static 
final</span>&nbsp;<span 
class="return-type">org.apache.hadoop.hbase.TableName</span>&nbsp;<span 
class="element-name"><a 
href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/TestLargeClusterBalancingTableIsolationAndReplicaDistribution.html#line-55">SYSTEM_TABLE_NAME</a></span></div>
 </section>
 </li>
 <li>
 <section class="detail" id="NON_ISOLATED_TABLE_NAME">
 <h3>NON_ISOLATED_TABLE_NAME</h3>
-<div class="member-signature"><span class="modifiers">private static 
final</span>&nbsp;<span 
class="return-type">org.apache.hadoop.hbase.TableName</span>&nbsp;<span 
class="element-name"><a 
href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/TestLargeClusterBalancingTableIsolationAndReplicaDistribution.html#line-54">NON_ISOLATED_TABLE_NAME</a></span></div>
+<div class="member-signature"><span class="modifiers">private static 
final</span>&nbsp;<span 
class="return-type">org.apache.hadoop.hbase.TableName</span>&nbsp;<span 
class="element-name"><a 
href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/TestLargeClusterBalancingTableIsolationAndReplicaDistribution.html#line-56">NON_ISOLATED_TABLE_NAME</a></span></div>
 </section>
 </li>
 <li>
 <section class="detail" id="NUM_SERVERS">
 <h3>NUM_SERVERS</h3>
-<div class="member-signature"><span class="modifiers">private static 
final</span>&nbsp;<span class="return-type">int</span>&nbsp;<span 
class="element-name"><a 
href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/TestLargeClusterBalancingTableIsolationAndReplicaDistribution.html#line-56">NUM_SERVERS</a></span></div>
+<div class="member-signature"><span class="modifiers">private static 
final</span>&nbsp;<span class="return-type">int</span>&nbsp;<span 
class="element-name"><a 
href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/TestLargeClusterBalancingTableIsolationAndReplicaDistribution.html#line-58">NUM_SERVERS</a></span></div>
 <dl class="notes">
 <dt>See Also:</dt>
 <dd>
@@ -219,7 +219,7 @@ loadScripts(document, 'script');</script>
 <li>
 <section class="detail" id="NUM_REGIONS">
 <h3>NUM_REGIONS</h3>
-<div class="member-signature"><span class="modifiers">private static 
final</span>&nbsp;<span class="return-type">int</span>&nbsp;<span 
class="element-name"><a 
href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/TestLargeClusterBalancingTableIsolationAndReplicaDistribution.html#line-57">NUM_REGIONS</a></span></div>
+<div class="member-signature"><span class="modifiers">private static 
final</span>&nbsp;<span class="return-type">int</span>&nbsp;<span 
class="element-name"><a 
href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/TestLargeClusterBalancingTableIsolationAndReplicaDistribution.html#line-59">NUM_REGIONS</a></span></div>
 <dl class="notes">
 <dt>See Also:</dt>
 <dd>
@@ -233,7 +233,7 @@ loadScripts(document, 'script');</script>
 <li>
 <section class="detail" id="NUM_REPLICAS">
 <h3>NUM_REPLICAS</h3>
-<div class="member-signature"><span class="modifiers">private static 
final</span>&nbsp;<span class="return-type">int</span>&nbsp;<span 
class="element-name"><a 
href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/TestLargeClusterBalancingTableIsolationAndReplicaDistribution.html#line-58">NUM_REPLICAS</a></span></div>
+<div class="member-signature"><span class="modifiers">private static 
final</span>&nbsp;<span class="return-type">int</span>&nbsp;<span 
class="element-name"><a 
href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/TestLargeClusterBalancingTableIsolationAndReplicaDistribution.html#line-60">NUM_REPLICAS</a></span></div>
 <dl class="notes">
 <dt>See Also:</dt>
 <dd>
@@ -247,13 +247,13 @@ loadScripts(document, 'script');</script>
 <li>
 <section class="detail" id="servers">
 <h3>servers</h3>
-<div class="member-signature"><span class="modifiers">private static 
final</span>&nbsp;<span 
class="return-type">org.apache.hadoop.hbase.ServerName[]</span>&nbsp;<span 
class="element-name"><a 
href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/TestLargeClusterBalancingTableIsolationAndReplicaDistribution.html#line-60">servers</a></span></div>
+<div class="member-signature"><span class="modifiers">private static 
final</span>&nbsp;<span 
class="return-type">org.apache.hadoop.hbase.ServerName[]</span>&nbsp;<span 
class="element-name"><a 
href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/TestLargeClusterBalancingTableIsolationAndReplicaDistribution.html#line-62">servers</a></span></div>
 </section>
 </li>
 <li>
 <section class="detail" id="serverToRegions">
 <h3>serverToRegions</h3>
-<div class="member-signature"><span class="modifiers">private static 
final</span>&nbsp;<span class="return-type"><a 
href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/Map.html";
 title="class or interface in java.util" 
class="external-link">Map</a>&lt;org.apache.hadoop.hbase.ServerName,<wbr><a 
href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/List.html";
 title="class or interface in java.util" 
class="external-link">List</a>&lt;org.apache. [...]
+<div class="member-signature"><span class="modifiers">private static 
final</span>&nbsp;<span class="return-type"><a 
href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/Map.html";
 title="class or interface in java.util" 
class="external-link">Map</a>&lt;org.apache.hadoop.hbase.ServerName,<wbr><a 
href="https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/List.html";
 title="class or interface in java.util" 
class="external-link">List</a>&lt;org.apache. [...]
 </section>
 </li>
 </ul>
@@ -267,7 +267,7 @@ loadScripts(document, 'script');</script>
 <li>
 <section class="detail" id="&lt;init&gt;()">
 <h3>TestLargeClusterBalancingTableIsolationAndReplicaDistribution</h3>
-<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span 
class="element-name"><a 
href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/TestLargeClusterBalancingTableIsolationAndReplicaDistribution.html#line-45">TestLargeClusterBalancingTableIsolationAndReplicaDistribution</a></span>()</div>
+<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span 
class="element-name"><a 
href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/TestLargeClusterBalancingTableIsolationAndReplicaDistribution.html#line-47">TestLargeClusterBalancingTableIsolationAndReplicaDistribution</a></span>()</div>
 </section>
 </li>
 </ul>
@@ -281,26 +281,26 @@ loadScripts(document, 'script');</script>
 <li>
 <section class="detail" id="setup()">
 <h3>setup</h3>
-<div class="member-signature"><span class="modifiers">public 
static</span>&nbsp;<span class="return-type">void</span>&nbsp;<span 
class="element-name"><a 
href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/TestLargeClusterBalancingTableIsolationAndReplicaDistribution.html#line-63">setup</a></span>()</div>
+<div class="member-signature"><span class="modifiers">public 
static</span>&nbsp;<span class="return-type">void</span>&nbsp;<span 
class="element-name"><a 
href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/TestLargeClusterBalancingTableIsolationAndReplicaDistribution.html#line-65">setup</a></span>()</div>
 </section>
 </li>
 <li>
 <section class="detail" id="testTableIsolationAndReplicaDistribution()">
 <h3>testTableIsolationAndReplicaDistribution</h3>
-<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span 
class="return-type">void</span>&nbsp;<span class="element-name"><a 
href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/TestLargeClusterBalancingTableIsolationAndReplicaDistribution.html#line-100">testTableIsolationAndReplicaDistribution</a></span>()</div>
+<div class="member-signature"><span class="modifiers">public</span>&nbsp;<span 
class="return-type">void</span>&nbsp;<span class="element-name"><a 
href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/TestLargeClusterBalancingTableIsolationAndReplicaDistribution.html#line-102">testTableIsolationAndReplicaDistribution</a></span>()</div>
 </section>
 </li>
 <li>
 <section class="detail" 
id="isMetaTableIsolated(org.apache.hadoop.hbase.master.balancer.BalancerClusterState)">
 <h3>isMetaTableIsolated</h3>
-<div class="member-signature"><span 
class="modifiers">private</span>&nbsp;<span 
class="return-type">boolean</span>&nbsp;<span class="element-name"><a 
href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/TestLargeClusterBalancingTableIsolationAndReplicaDistribution.html#line-118">isMetaTableIsolated</a></span><wbr><span
 
class="parameters">(org.apache.hadoop.hbase.master.balancer.BalancerClusterState&nbsp;cluster)</span></div>
+<div class="member-signature"><span 
class="modifiers">private</span>&nbsp;<span 
class="return-type">boolean</span>&nbsp;<span class="element-name"><a 
href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/TestLargeClusterBalancingTableIsolationAndReplicaDistribution.html#line-121">isMetaTableIsolated</a></span><wbr><span
 
class="parameters">(org.apache.hadoop.hbase.master.balancer.BalancerClusterState&nbsp;cluster)</span></div>
 <div class="block">Validates whether all meta table regions are isolated.</div>
 </section>
 </li>
 <li>
 <section class="detail" 
id="isSystemTableIsolated(org.apache.hadoop.hbase.master.balancer.BalancerClusterState)">
 <h3>isSystemTableIsolated</h3>
-<div class="member-signature"><span 
class="modifiers">private</span>&nbsp;<span 
class="return-type">boolean</span>&nbsp;<span class="element-name"><a 
href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/TestLargeClusterBalancingTableIsolationAndReplicaDistribution.html#line-125">isSystemTableIsolated</a></span><wbr><span
 
class="parameters">(org.apache.hadoop.hbase.master.balancer.BalancerClusterState&nbsp;cluster)</span></div>
+<div class="member-signature"><span 
class="modifiers">private</span>&nbsp;<span 
class="return-type">boolean</span>&nbsp;<span class="element-name"><a 
href="../../../../../../src-html/org/apache/hadoop/hbase/master/balancer/TestLargeClusterBalancingTableIsolationAndReplicaDistribution.html#line-128">isSystemTableIsolated</a></span><wbr><span
 
class="parameters">(org.apache.hadoop.hbase.master.balancer.BalancerClusterState&nbsp;cluster)</span></div>
 <div class="block">Validates whether all meta table regions are isolated.</div>
 </section>
 </li>
diff --git 
a/testdevapidocs/src-html/org/apache/hadoop/hbase/master/balancer/TestLargeClusterBalancingConditionalReplicaDistribution.html
 
b/testdevapidocs/src-html/org/apache/hadoop/hbase/master/balancer/TestLargeClusterBalancingConditionalReplicaDistribution.html
index 9c8dc27203d..97d2d6d50cc 100644
--- 
a/testdevapidocs/src-html/org/apache/hadoop/hbase/master/balancer/TestLargeClusterBalancingConditionalReplicaDistribution.html
+++ 
b/testdevapidocs/src-html/org/apache/hadoop/hbase/master/balancer/TestLargeClusterBalancingConditionalReplicaDistribution.html
@@ -43,86 +43,89 @@
 <span class="source-line-no">030</span><span id="line-30">import 
org.apache.hadoop.hbase.TableName;</span>
 <span class="source-line-no">031</span><span id="line-31">import 
org.apache.hadoop.hbase.client.RegionInfo;</span>
 <span class="source-line-no">032</span><span id="line-32">import 
org.apache.hadoop.hbase.client.RegionInfoBuilder;</span>
-<span class="source-line-no">033</span><span id="line-33">import 
org.apache.hadoop.hbase.master.balancer.replicas.ReplicaKeyCache;</span>
-<span class="source-line-no">034</span><span id="line-34">import 
org.apache.hadoop.hbase.testclassification.MasterTests;</span>
-<span class="source-line-no">035</span><span id="line-35">import 
org.apache.hadoop.hbase.testclassification.MediumTests;</span>
-<span class="source-line-no">036</span><span id="line-36">import 
org.apache.hadoop.hbase.util.Bytes;</span>
-<span class="source-line-no">037</span><span id="line-37">import 
org.junit.BeforeClass;</span>
-<span class="source-line-no">038</span><span id="line-38">import 
org.junit.ClassRule;</span>
-<span class="source-line-no">039</span><span id="line-39">import 
org.junit.Test;</span>
-<span class="source-line-no">040</span><span id="line-40">import 
org.junit.experimental.categories.Category;</span>
-<span class="source-line-no">041</span><span id="line-41">import 
org.slf4j.Logger;</span>
-<span class="source-line-no">042</span><span id="line-42">import 
org.slf4j.LoggerFactory;</span>
-<span class="source-line-no">043</span><span id="line-43"></span>
-<span class="source-line-no">044</span><span id="line-44">@Category({ 
MediumTests.class, MasterTests.class })</span>
-<span class="source-line-no">045</span><span id="line-45">public class 
TestLargeClusterBalancingConditionalReplicaDistribution {</span>
-<span class="source-line-no">046</span><span id="line-46"></span>
-<span class="source-line-no">047</span><span id="line-47">  @ClassRule</span>
-<span class="source-line-no">048</span><span id="line-48">  public static 
final HBaseClassTestRule CLASS_RULE =</span>
-<span class="source-line-no">049</span><span id="line-49">    
HBaseClassTestRule.forClass(TestLargeClusterBalancingConditionalReplicaDistribution.class);</span>
-<span class="source-line-no">050</span><span id="line-50"></span>
-<span class="source-line-no">051</span><span id="line-51">  private static 
final Logger LOG =</span>
-<span class="source-line-no">052</span><span id="line-52">    
LoggerFactory.getLogger(TestLargeClusterBalancingConditionalReplicaDistribution.class);</span>
-<span class="source-line-no">053</span><span id="line-53"></span>
-<span class="source-line-no">054</span><span id="line-54">  private static 
final int NUM_SERVERS = 1000;</span>
-<span class="source-line-no">055</span><span id="line-55">  private static 
final int NUM_REGIONS = 20_000;</span>
-<span class="source-line-no">056</span><span id="line-56">  private static 
final int NUM_REPLICAS = 3;</span>
-<span class="source-line-no">057</span><span id="line-57">  private static 
final int NUM_TABLES = 100;</span>
-<span class="source-line-no">058</span><span id="line-58"></span>
-<span class="source-line-no">059</span><span id="line-59">  private static 
final ServerName[] servers = new ServerName[NUM_SERVERS];</span>
-<span class="source-line-no">060</span><span id="line-60">  private static 
final Map&lt;ServerName, List&lt;RegionInfo&gt;&gt; serverToRegions = new 
HashMap&lt;&gt;();</span>
-<span class="source-line-no">061</span><span id="line-61"></span>
-<span class="source-line-no">062</span><span id="line-62">  @BeforeClass</span>
-<span class="source-line-no">063</span><span id="line-63">  public static void 
setup() {</span>
-<span class="source-line-no">064</span><span id="line-64">    // Initialize 
servers</span>
-<span class="source-line-no">065</span><span id="line-65">    for (int i = 0; 
i &lt; NUM_SERVERS; i++) {</span>
-<span class="source-line-no">066</span><span id="line-66">      servers[i] = 
ServerName.valueOf("server" + i, i, System.currentTimeMillis());</span>
-<span class="source-line-no">067</span><span id="line-67">      
serverToRegions.put(servers[i], new ArrayList&lt;&gt;());</span>
-<span class="source-line-no">068</span><span id="line-68">    }</span>
-<span class="source-line-no">069</span><span id="line-69"></span>
-<span class="source-line-no">070</span><span id="line-70">    // Create 
primary regions and their replicas</span>
-<span class="source-line-no">071</span><span id="line-71">    
List&lt;RegionInfo&gt; allRegions = new ArrayList&lt;&gt;();</span>
-<span class="source-line-no">072</span><span id="line-72">    for (int i = 0; 
i &lt; NUM_REGIONS; i++) {</span>
-<span class="source-line-no">073</span><span id="line-73">      TableName 
tableName = getTableName(i);</span>
-<span class="source-line-no">074</span><span id="line-74">      // Define 
startKey and endKey for the region</span>
-<span class="source-line-no">075</span><span id="line-75">      byte[] 
startKey = Bytes.toBytes(i);</span>
-<span class="source-line-no">076</span><span id="line-76">      byte[] endKey 
= Bytes.toBytes(i + 1);</span>
-<span class="source-line-no">077</span><span id="line-77"></span>
-<span class="source-line-no">078</span><span id="line-78">      // Create 3 
replicas for each primary region</span>
-<span class="source-line-no">079</span><span id="line-79">      for (int 
replicaId = 0; replicaId &lt; NUM_REPLICAS; replicaId++) {</span>
-<span class="source-line-no">080</span><span id="line-80">        RegionInfo 
regionInfo = 
RegionInfoBuilder.newBuilder(tableName).setStartKey(startKey)</span>
-<span class="source-line-no">081</span><span id="line-81">          
.setEndKey(endKey).setReplicaId(replicaId).build();</span>
-<span class="source-line-no">082</span><span id="line-82">        
allRegions.add(regionInfo);</span>
-<span class="source-line-no">083</span><span id="line-83">      }</span>
-<span class="source-line-no">084</span><span id="line-84">    }</span>
-<span class="source-line-no">085</span><span id="line-85"></span>
-<span class="source-line-no">086</span><span id="line-86">    // Assign all 
regions to one server</span>
-<span class="source-line-no">087</span><span id="line-87">    for (RegionInfo 
regionInfo : allRegions) {</span>
-<span class="source-line-no">088</span><span id="line-88">      
serverToRegions.get(servers[0]).add(regionInfo);</span>
-<span class="source-line-no">089</span><span id="line-89">    }</span>
-<span class="source-line-no">090</span><span id="line-90">  }</span>
-<span class="source-line-no">091</span><span id="line-91"></span>
-<span class="source-line-no">092</span><span id="line-92">  private static 
TableName getTableName(int i) {</span>
-<span class="source-line-no">093</span><span id="line-93">    return 
TableName.valueOf("userTable" + i % NUM_TABLES);</span>
-<span class="source-line-no">094</span><span id="line-94">  }</span>
-<span class="source-line-no">095</span><span id="line-95"></span>
-<span class="source-line-no">096</span><span id="line-96">  @Test</span>
-<span class="source-line-no">097</span><span id="line-97">  public void 
testReplicaDistribution() {</span>
-<span class="source-line-no">098</span><span id="line-98">    Configuration 
conf = new Configuration();</span>
-<span class="source-line-no">099</span><span id="line-99">    
DistributeReplicasTestConditional.enableConditionalReplicaDistributionForTest(conf);</span>
-<span class="source-line-no">100</span><span id="line-100">    
conf.setBoolean(ReplicaKeyCache.CACHE_REPLICA_KEYS_KEY, true);</span>
-<span class="source-line-no">101</span><span id="line-101">    
conf.setInt(ReplicaKeyCache.REPLICA_KEY_CACHE_SIZE_KEY, 
Integer.MAX_VALUE);</span>
-<span class="source-line-no">102</span><span id="line-102">    
conf.setLong("hbase.master.balancer.stochastic.maxRunningTime", 30_000);</span>
-<span class="source-line-no">103</span><span id="line-103"></span>
-<span class="source-line-no">104</span><span id="line-104">    // turn off 
replica cost functions</span>
-<span class="source-line-no">105</span><span id="line-105">    
conf.setLong("hbase.master.balancer.stochastic.regionReplicaRackCostKey", 
0);</span>
-<span class="source-line-no">106</span><span id="line-106">    
conf.setLong("hbase.master.balancer.stochastic.regionReplicaHostCostKey", 
0);</span>
-<span class="source-line-no">107</span><span id="line-107"></span>
-<span class="source-line-no">108</span><span id="line-108">    
runBalancerToExhaustion(conf, serverToRegions,</span>
-<span class="source-line-no">109</span><span id="line-109">      
Set.of(CandidateGeneratorTestUtil::areAllReplicasDistributed), 10.0f);</span>
-<span class="source-line-no">110</span><span id="line-110">    
LOG.info("Region replicas are appropriately distributed across 
RegionServers.");</span>
-<span class="source-line-no">111</span><span id="line-111">  }</span>
-<span class="source-line-no">112</span><span id="line-112">}</span>
+<span class="source-line-no">033</span><span id="line-33">import 
org.apache.hadoop.hbase.master.balancer.BalancerTestBase.MockMapping;</span>
+<span class="source-line-no">034</span><span id="line-34">import 
org.apache.hadoop.hbase.master.balancer.replicas.ReplicaKeyCache;</span>
+<span class="source-line-no">035</span><span id="line-35">import 
org.apache.hadoop.hbase.testclassification.MasterTests;</span>
+<span class="source-line-no">036</span><span id="line-36">import 
org.apache.hadoop.hbase.testclassification.MediumTests;</span>
+<span class="source-line-no">037</span><span id="line-37">import 
org.apache.hadoop.hbase.util.Bytes;</span>
+<span class="source-line-no">038</span><span id="line-38">import 
org.apache.hadoop.net.DNSToSwitchMapping;</span>
+<span class="source-line-no">039</span><span id="line-39">import 
org.junit.BeforeClass;</span>
+<span class="source-line-no">040</span><span id="line-40">import 
org.junit.ClassRule;</span>
+<span class="source-line-no">041</span><span id="line-41">import 
org.junit.Test;</span>
+<span class="source-line-no">042</span><span id="line-42">import 
org.junit.experimental.categories.Category;</span>
+<span class="source-line-no">043</span><span id="line-43">import 
org.slf4j.Logger;</span>
+<span class="source-line-no">044</span><span id="line-44">import 
org.slf4j.LoggerFactory;</span>
+<span class="source-line-no">045</span><span id="line-45"></span>
+<span class="source-line-no">046</span><span id="line-46">@Category({ 
MediumTests.class, MasterTests.class })</span>
+<span class="source-line-no">047</span><span id="line-47">public class 
TestLargeClusterBalancingConditionalReplicaDistribution {</span>
+<span class="source-line-no">048</span><span id="line-48"></span>
+<span class="source-line-no">049</span><span id="line-49">  @ClassRule</span>
+<span class="source-line-no">050</span><span id="line-50">  public static 
final HBaseClassTestRule CLASS_RULE =</span>
+<span class="source-line-no">051</span><span id="line-51">    
HBaseClassTestRule.forClass(TestLargeClusterBalancingConditionalReplicaDistribution.class);</span>
+<span class="source-line-no">052</span><span id="line-52"></span>
+<span class="source-line-no">053</span><span id="line-53">  private static 
final Logger LOG =</span>
+<span class="source-line-no">054</span><span id="line-54">    
LoggerFactory.getLogger(TestLargeClusterBalancingConditionalReplicaDistribution.class);</span>
+<span class="source-line-no">055</span><span id="line-55"></span>
+<span class="source-line-no">056</span><span id="line-56">  private static 
final int NUM_SERVERS = 1000;</span>
+<span class="source-line-no">057</span><span id="line-57">  private static 
final int NUM_REGIONS = 20_000;</span>
+<span class="source-line-no">058</span><span id="line-58">  private static 
final int NUM_REPLICAS = 3;</span>
+<span class="source-line-no">059</span><span id="line-59">  private static 
final int NUM_TABLES = 100;</span>
+<span class="source-line-no">060</span><span id="line-60"></span>
+<span class="source-line-no">061</span><span id="line-61">  private static 
final ServerName[] servers = new ServerName[NUM_SERVERS];</span>
+<span class="source-line-no">062</span><span id="line-62">  private static 
final Map&lt;ServerName, List&lt;RegionInfo&gt;&gt; serverToRegions = new 
HashMap&lt;&gt;();</span>
+<span class="source-line-no">063</span><span id="line-63"></span>
+<span class="source-line-no">064</span><span id="line-64">  @BeforeClass</span>
+<span class="source-line-no">065</span><span id="line-65">  public static void 
setup() {</span>
+<span class="source-line-no">066</span><span id="line-66">    // Initialize 
servers</span>
+<span class="source-line-no">067</span><span id="line-67">    for (int i = 0; 
i &lt; NUM_SERVERS; i++) {</span>
+<span class="source-line-no">068</span><span id="line-68">      servers[i] = 
ServerName.valueOf("server" + i, i, System.currentTimeMillis());</span>
+<span class="source-line-no">069</span><span id="line-69">      
serverToRegions.put(servers[i], new ArrayList&lt;&gt;());</span>
+<span class="source-line-no">070</span><span id="line-70">    }</span>
+<span class="source-line-no">071</span><span id="line-71"></span>
+<span class="source-line-no">072</span><span id="line-72">    // Create 
primary regions and their replicas</span>
+<span class="source-line-no">073</span><span id="line-73">    
List&lt;RegionInfo&gt; allRegions = new ArrayList&lt;&gt;();</span>
+<span class="source-line-no">074</span><span id="line-74">    for (int i = 0; 
i &lt; NUM_REGIONS; i++) {</span>
+<span class="source-line-no">075</span><span id="line-75">      TableName 
tableName = getTableName(i);</span>
+<span class="source-line-no">076</span><span id="line-76">      // Define 
startKey and endKey for the region</span>
+<span class="source-line-no">077</span><span id="line-77">      byte[] 
startKey = Bytes.toBytes(i);</span>
+<span class="source-line-no">078</span><span id="line-78">      byte[] endKey 
= Bytes.toBytes(i + 1);</span>
+<span class="source-line-no">079</span><span id="line-79"></span>
+<span class="source-line-no">080</span><span id="line-80">      // Create 3 
replicas for each primary region</span>
+<span class="source-line-no">081</span><span id="line-81">      for (int 
replicaId = 0; replicaId &lt; NUM_REPLICAS; replicaId++) {</span>
+<span class="source-line-no">082</span><span id="line-82">        RegionInfo 
regionInfo = 
RegionInfoBuilder.newBuilder(tableName).setStartKey(startKey)</span>
+<span class="source-line-no">083</span><span id="line-83">          
.setEndKey(endKey).setReplicaId(replicaId).build();</span>
+<span class="source-line-no">084</span><span id="line-84">        
allRegions.add(regionInfo);</span>
+<span class="source-line-no">085</span><span id="line-85">      }</span>
+<span class="source-line-no">086</span><span id="line-86">    }</span>
+<span class="source-line-no">087</span><span id="line-87"></span>
+<span class="source-line-no">088</span><span id="line-88">    // Assign all 
regions to one server</span>
+<span class="source-line-no">089</span><span id="line-89">    for (RegionInfo 
regionInfo : allRegions) {</span>
+<span class="source-line-no">090</span><span id="line-90">      
serverToRegions.get(servers[0]).add(regionInfo);</span>
+<span class="source-line-no">091</span><span id="line-91">    }</span>
+<span class="source-line-no">092</span><span id="line-92">  }</span>
+<span class="source-line-no">093</span><span id="line-93"></span>
+<span class="source-line-no">094</span><span id="line-94">  private static 
TableName getTableName(int i) {</span>
+<span class="source-line-no">095</span><span id="line-95">    return 
TableName.valueOf("userTable" + i % NUM_TABLES);</span>
+<span class="source-line-no">096</span><span id="line-96">  }</span>
+<span class="source-line-no">097</span><span id="line-97"></span>
+<span class="source-line-no">098</span><span id="line-98">  @Test</span>
+<span class="source-line-no">099</span><span id="line-99">  public void 
testReplicaDistribution() {</span>
+<span class="source-line-no">100</span><span id="line-100">    Configuration 
conf = new Configuration();</span>
+<span class="source-line-no">101</span><span id="line-101">    
conf.setClass("hbase.util.ip.to.rack.determiner", MockMapping.class, 
DNSToSwitchMapping.class);</span>
+<span class="source-line-no">102</span><span id="line-102">    
DistributeReplicasTestConditional.enableConditionalReplicaDistributionForTest(conf);</span>
+<span class="source-line-no">103</span><span id="line-103">    
conf.setBoolean(ReplicaKeyCache.CACHE_REPLICA_KEYS_KEY, true);</span>
+<span class="source-line-no">104</span><span id="line-104">    
conf.setInt(ReplicaKeyCache.REPLICA_KEY_CACHE_SIZE_KEY, 
Integer.MAX_VALUE);</span>
+<span class="source-line-no">105</span><span id="line-105">    
conf.setLong("hbase.master.balancer.stochastic.maxRunningTime", 30_000);</span>
+<span class="source-line-no">106</span><span id="line-106"></span>
+<span class="source-line-no">107</span><span id="line-107">    // turn off 
replica cost functions</span>
+<span class="source-line-no">108</span><span id="line-108">    
conf.setLong("hbase.master.balancer.stochastic.regionReplicaRackCostKey", 
0);</span>
+<span class="source-line-no">109</span><span id="line-109">    
conf.setLong("hbase.master.balancer.stochastic.regionReplicaHostCostKey", 
0);</span>
+<span class="source-line-no">110</span><span id="line-110"></span>
+<span class="source-line-no">111</span><span id="line-111">    
runBalancerToExhaustion(conf, serverToRegions,</span>
+<span class="source-line-no">112</span><span id="line-112">      
Set.of(CandidateGeneratorTestUtil::areAllReplicasDistributed), 10.0f);</span>
+<span class="source-line-no">113</span><span id="line-113">    
LOG.info("Region replicas are appropriately distributed across 
RegionServers.");</span>
+<span class="source-line-no">114</span><span id="line-114">  }</span>
+<span class="source-line-no">115</span><span id="line-115">}</span>
 
 
 
diff --git 
a/testdevapidocs/src-html/org/apache/hadoop/hbase/master/balancer/TestLargeClusterBalancingMetaTableIsolation.html
 
b/testdevapidocs/src-html/org/apache/hadoop/hbase/master/balancer/TestLargeClusterBalancingMetaTableIsolation.html
index a79af9889fa..be1cea69697 100644
--- 
a/testdevapidocs/src-html/org/apache/hadoop/hbase/master/balancer/TestLargeClusterBalancingMetaTableIsolation.html
+++ 
b/testdevapidocs/src-html/org/apache/hadoop/hbase/master/balancer/TestLargeClusterBalancingMetaTableIsolation.html
@@ -44,74 +44,77 @@
 <span class="source-line-no">031</span><span id="line-31">import 
org.apache.hadoop.hbase.TableName;</span>
 <span class="source-line-no">032</span><span id="line-32">import 
org.apache.hadoop.hbase.client.RegionInfo;</span>
 <span class="source-line-no">033</span><span id="line-33">import 
org.apache.hadoop.hbase.client.RegionInfoBuilder;</span>
-<span class="source-line-no">034</span><span id="line-34">import 
org.apache.hadoop.hbase.testclassification.MasterTests;</span>
-<span class="source-line-no">035</span><span id="line-35">import 
org.apache.hadoop.hbase.testclassification.MediumTests;</span>
-<span class="source-line-no">036</span><span id="line-36">import 
org.junit.BeforeClass;</span>
-<span class="source-line-no">037</span><span id="line-37">import 
org.junit.ClassRule;</span>
-<span class="source-line-no">038</span><span id="line-38">import 
org.junit.Test;</span>
-<span class="source-line-no">039</span><span id="line-39">import 
org.junit.experimental.categories.Category;</span>
-<span class="source-line-no">040</span><span id="line-40">import 
org.slf4j.Logger;</span>
-<span class="source-line-no">041</span><span id="line-41">import 
org.slf4j.LoggerFactory;</span>
-<span class="source-line-no">042</span><span id="line-42"></span>
-<span class="source-line-no">043</span><span id="line-43">@Category({ 
MediumTests.class, MasterTests.class })</span>
-<span class="source-line-no">044</span><span id="line-44">public class 
TestLargeClusterBalancingMetaTableIsolation {</span>
-<span class="source-line-no">045</span><span id="line-45"></span>
-<span class="source-line-no">046</span><span id="line-46">  @ClassRule</span>
-<span class="source-line-no">047</span><span id="line-47">  public static 
final HBaseClassTestRule CLASS_RULE =</span>
-<span class="source-line-no">048</span><span id="line-48">    
HBaseClassTestRule.forClass(TestLargeClusterBalancingMetaTableIsolation.class);</span>
-<span class="source-line-no">049</span><span id="line-49"></span>
-<span class="source-line-no">050</span><span id="line-50">  private static 
final Logger LOG =</span>
-<span class="source-line-no">051</span><span id="line-51">    
LoggerFactory.getLogger(TestLargeClusterBalancingMetaTableIsolation.class);</span>
-<span class="source-line-no">052</span><span id="line-52"></span>
-<span class="source-line-no">053</span><span id="line-53">  private static 
final TableName NON_META_TABLE_NAME = TableName.valueOf("userTable");</span>
+<span class="source-line-no">034</span><span id="line-34">import 
org.apache.hadoop.hbase.master.balancer.BalancerTestBase.MockMapping;</span>
+<span class="source-line-no">035</span><span id="line-35">import 
org.apache.hadoop.hbase.testclassification.MasterTests;</span>
+<span class="source-line-no">036</span><span id="line-36">import 
org.apache.hadoop.hbase.testclassification.MediumTests;</span>
+<span class="source-line-no">037</span><span id="line-37">import 
org.apache.hadoop.net.DNSToSwitchMapping;</span>
+<span class="source-line-no">038</span><span id="line-38">import 
org.junit.BeforeClass;</span>
+<span class="source-line-no">039</span><span id="line-39">import 
org.junit.ClassRule;</span>
+<span class="source-line-no">040</span><span id="line-40">import 
org.junit.Test;</span>
+<span class="source-line-no">041</span><span id="line-41">import 
org.junit.experimental.categories.Category;</span>
+<span class="source-line-no">042</span><span id="line-42">import 
org.slf4j.Logger;</span>
+<span class="source-line-no">043</span><span id="line-43">import 
org.slf4j.LoggerFactory;</span>
+<span class="source-line-no">044</span><span id="line-44"></span>
+<span class="source-line-no">045</span><span id="line-45">@Category({ 
MediumTests.class, MasterTests.class })</span>
+<span class="source-line-no">046</span><span id="line-46">public class 
TestLargeClusterBalancingMetaTableIsolation {</span>
+<span class="source-line-no">047</span><span id="line-47"></span>
+<span class="source-line-no">048</span><span id="line-48">  @ClassRule</span>
+<span class="source-line-no">049</span><span id="line-49">  public static 
final HBaseClassTestRule CLASS_RULE =</span>
+<span class="source-line-no">050</span><span id="line-50">    
HBaseClassTestRule.forClass(TestLargeClusterBalancingMetaTableIsolation.class);</span>
+<span class="source-line-no">051</span><span id="line-51"></span>
+<span class="source-line-no">052</span><span id="line-52">  private static 
final Logger LOG =</span>
+<span class="source-line-no">053</span><span id="line-53">    
LoggerFactory.getLogger(TestLargeClusterBalancingMetaTableIsolation.class);</span>
 <span class="source-line-no">054</span><span id="line-54"></span>
-<span class="source-line-no">055</span><span id="line-55">  private static 
final int NUM_SERVERS = 1000;</span>
-<span class="source-line-no">056</span><span id="line-56">  private static 
final int NUM_REGIONS = 20_000;</span>
-<span class="source-line-no">057</span><span id="line-57"></span>
-<span class="source-line-no">058</span><span id="line-58">  private static 
final ServerName[] servers = new ServerName[NUM_SERVERS];</span>
-<span class="source-line-no">059</span><span id="line-59">  private static 
final Map&lt;ServerName, List&lt;RegionInfo&gt;&gt; serverToRegions = new 
HashMap&lt;&gt;();</span>
-<span class="source-line-no">060</span><span id="line-60"></span>
-<span class="source-line-no">061</span><span id="line-61">  @BeforeClass</span>
-<span class="source-line-no">062</span><span id="line-62">  public static void 
setup() {</span>
-<span class="source-line-no">063</span><span id="line-63">    // Initialize 
servers</span>
-<span class="source-line-no">064</span><span id="line-64">    for (int i = 0; 
i &lt; NUM_SERVERS; i++) {</span>
-<span class="source-line-no">065</span><span id="line-65">      servers[i] = 
ServerName.valueOf("server" + i, i, System.currentTimeMillis());</span>
-<span class="source-line-no">066</span><span id="line-66">    }</span>
-<span class="source-line-no">067</span><span id="line-67"></span>
-<span class="source-line-no">068</span><span id="line-68">    // Create 
regions</span>
-<span class="source-line-no">069</span><span id="line-69">    
List&lt;RegionInfo&gt; allRegions = new ArrayList&lt;&gt;();</span>
-<span class="source-line-no">070</span><span id="line-70">    for (int i = 0; 
i &lt; NUM_REGIONS; i++) {</span>
-<span class="source-line-no">071</span><span id="line-71">      TableName 
tableName = i &lt; 3 ? TableName.META_TABLE_NAME : NON_META_TABLE_NAME;</span>
-<span class="source-line-no">072</span><span id="line-72">      byte[] 
startKey = new byte[1];</span>
-<span class="source-line-no">073</span><span id="line-73">      startKey[0] = 
(byte) i;</span>
-<span class="source-line-no">074</span><span id="line-74">      byte[] endKey 
= new byte[1];</span>
-<span class="source-line-no">075</span><span id="line-75">      endKey[0] = 
(byte) (i + 1);</span>
-<span class="source-line-no">076</span><span id="line-76"></span>
-<span class="source-line-no">077</span><span id="line-77">      RegionInfo 
regionInfo =</span>
-<span class="source-line-no">078</span><span id="line-78">        
RegionInfoBuilder.newBuilder(tableName).setStartKey(startKey).setEndKey(endKey).build();</span>
-<span class="source-line-no">079</span><span id="line-79">      
allRegions.add(regionInfo);</span>
-<span class="source-line-no">080</span><span id="line-80">    }</span>
-<span class="source-line-no">081</span><span id="line-81"></span>
-<span class="source-line-no">082</span><span id="line-82">    // Assign all 
regions to the first server</span>
-<span class="source-line-no">083</span><span id="line-83">    
serverToRegions.put(servers[0], new ArrayList&lt;&gt;(allRegions));</span>
-<span class="source-line-no">084</span><span id="line-84">    for (int i = 1; 
i &lt; NUM_SERVERS; i++) {</span>
-<span class="source-line-no">085</span><span id="line-85">      
serverToRegions.put(servers[i], new ArrayList&lt;&gt;());</span>
-<span class="source-line-no">086</span><span id="line-86">    }</span>
-<span class="source-line-no">087</span><span id="line-87">  }</span>
-<span class="source-line-no">088</span><span id="line-88"></span>
-<span class="source-line-no">089</span><span id="line-89">  @Test</span>
-<span class="source-line-no">090</span><span id="line-90">  public void 
testMetaTableIsolation() {</span>
-<span class="source-line-no">091</span><span id="line-91">    Configuration 
conf = new Configuration(false);</span>
-<span class="source-line-no">092</span><span id="line-92">    
conf.setBoolean(BalancerConditionals.ISOLATE_META_TABLE_KEY, true);</span>
-<span class="source-line-no">093</span><span id="line-93">    
runBalancerToExhaustion(conf, serverToRegions, 
Set.of(this::isMetaTableIsolated), 10.0f);</span>
-<span class="source-line-no">094</span><span id="line-94">    LOG.info("Meta 
table regions are successfully isolated.");</span>
-<span class="source-line-no">095</span><span id="line-95">  }</span>
-<span class="source-line-no">096</span><span id="line-96"></span>
-<span class="source-line-no">097</span><span id="line-97">  private boolean 
isMetaTableIsolated(BalancerClusterState cluster) {</span>
-<span class="source-line-no">098</span><span id="line-98">    return 
isTableIsolated(cluster, TableName.META_TABLE_NAME, "Meta");</span>
-<span class="source-line-no">099</span><span id="line-99">  }</span>
-<span class="source-line-no">100</span><span id="line-100"></span>
-<span class="source-line-no">101</span><span id="line-101">}</span>
+<span class="source-line-no">055</span><span id="line-55">  private static 
final TableName NON_META_TABLE_NAME = TableName.valueOf("userTable");</span>
+<span class="source-line-no">056</span><span id="line-56"></span>
+<span class="source-line-no">057</span><span id="line-57">  private static 
final int NUM_SERVERS = 1000;</span>
+<span class="source-line-no">058</span><span id="line-58">  private static 
final int NUM_REGIONS = 20_000;</span>
+<span class="source-line-no">059</span><span id="line-59"></span>
+<span class="source-line-no">060</span><span id="line-60">  private static 
final ServerName[] servers = new ServerName[NUM_SERVERS];</span>
+<span class="source-line-no">061</span><span id="line-61">  private static 
final Map&lt;ServerName, List&lt;RegionInfo&gt;&gt; serverToRegions = new 
HashMap&lt;&gt;();</span>
+<span class="source-line-no">062</span><span id="line-62"></span>
+<span class="source-line-no">063</span><span id="line-63">  @BeforeClass</span>
+<span class="source-line-no">064</span><span id="line-64">  public static void 
setup() {</span>
+<span class="source-line-no">065</span><span id="line-65">    // Initialize 
servers</span>
+<span class="source-line-no">066</span><span id="line-66">    for (int i = 0; 
i &lt; NUM_SERVERS; i++) {</span>
+<span class="source-line-no">067</span><span id="line-67">      servers[i] = 
ServerName.valueOf("server" + i, i, System.currentTimeMillis());</span>
+<span class="source-line-no">068</span><span id="line-68">    }</span>
+<span class="source-line-no">069</span><span id="line-69"></span>
+<span class="source-line-no">070</span><span id="line-70">    // Create 
regions</span>
+<span class="source-line-no">071</span><span id="line-71">    
List&lt;RegionInfo&gt; allRegions = new ArrayList&lt;&gt;();</span>
+<span class="source-line-no">072</span><span id="line-72">    for (int i = 0; 
i &lt; NUM_REGIONS; i++) {</span>
+<span class="source-line-no">073</span><span id="line-73">      TableName 
tableName = i &lt; 3 ? TableName.META_TABLE_NAME : NON_META_TABLE_NAME;</span>
+<span class="source-line-no">074</span><span id="line-74">      byte[] 
startKey = new byte[1];</span>
+<span class="source-line-no">075</span><span id="line-75">      startKey[0] = 
(byte) i;</span>
+<span class="source-line-no">076</span><span id="line-76">      byte[] endKey 
= new byte[1];</span>
+<span class="source-line-no">077</span><span id="line-77">      endKey[0] = 
(byte) (i + 1);</span>
+<span class="source-line-no">078</span><span id="line-78"></span>
+<span class="source-line-no">079</span><span id="line-79">      RegionInfo 
regionInfo =</span>
+<span class="source-line-no">080</span><span id="line-80">        
RegionInfoBuilder.newBuilder(tableName).setStartKey(startKey).setEndKey(endKey).build();</span>
+<span class="source-line-no">081</span><span id="line-81">      
allRegions.add(regionInfo);</span>
+<span class="source-line-no">082</span><span id="line-82">    }</span>
+<span class="source-line-no">083</span><span id="line-83"></span>
+<span class="source-line-no">084</span><span id="line-84">    // Assign all 
regions to the first server</span>
+<span class="source-line-no">085</span><span id="line-85">    
serverToRegions.put(servers[0], new ArrayList&lt;&gt;(allRegions));</span>
+<span class="source-line-no">086</span><span id="line-86">    for (int i = 1; 
i &lt; NUM_SERVERS; i++) {</span>
+<span class="source-line-no">087</span><span id="line-87">      
serverToRegions.put(servers[i], new ArrayList&lt;&gt;());</span>
+<span class="source-line-no">088</span><span id="line-88">    }</span>
+<span class="source-line-no">089</span><span id="line-89">  }</span>
+<span class="source-line-no">090</span><span id="line-90"></span>
+<span class="source-line-no">091</span><span id="line-91">  @Test</span>
+<span class="source-line-no">092</span><span id="line-92">  public void 
testMetaTableIsolation() {</span>
+<span class="source-line-no">093</span><span id="line-93">    Configuration 
conf = new Configuration(false);</span>
+<span class="source-line-no">094</span><span id="line-94">    
conf.setClass("hbase.util.ip.to.rack.determiner", MockMapping.class, 
DNSToSwitchMapping.class);</span>
+<span class="source-line-no">095</span><span id="line-95">    
conf.setBoolean(BalancerConditionals.ISOLATE_META_TABLE_KEY, true);</span>
+<span class="source-line-no">096</span><span id="line-96">    
runBalancerToExhaustion(conf, serverToRegions, 
Set.of(this::isMetaTableIsolated), 10.0f);</span>
+<span class="source-line-no">097</span><span id="line-97">    LOG.info("Meta 
table regions are successfully isolated.");</span>
+<span class="source-line-no">098</span><span id="line-98">  }</span>
+<span class="source-line-no">099</span><span id="line-99"></span>
+<span class="source-line-no">100</span><span id="line-100">  private boolean 
isMetaTableIsolated(BalancerClusterState cluster) {</span>
+<span class="source-line-no">101</span><span id="line-101">    return 
isTableIsolated(cluster, TableName.META_TABLE_NAME, "Meta");</span>
+<span class="source-line-no">102</span><span id="line-102">  }</span>
+<span class="source-line-no">103</span><span id="line-103"></span>
+<span class="source-line-no">104</span><span id="line-104">}</span>
 
 
 
diff --git 
a/testdevapidocs/src-html/org/apache/hadoop/hbase/master/balancer/TestLargeClusterBalancingSystemTableIsolation.html
 
b/testdevapidocs/src-html/org/apache/hadoop/hbase/master/balancer/TestLargeClusterBalancingSystemTableIsolation.html
index 8a649353fa0..ec9b06571ff 100644
--- 
a/testdevapidocs/src-html/org/apache/hadoop/hbase/master/balancer/TestLargeClusterBalancingSystemTableIsolation.html
+++ 
b/testdevapidocs/src-html/org/apache/hadoop/hbase/master/balancer/TestLargeClusterBalancingSystemTableIsolation.html
@@ -44,75 +44,78 @@
 <span class="source-line-no">031</span><span id="line-31">import 
org.apache.hadoop.hbase.TableName;</span>
 <span class="source-line-no">032</span><span id="line-32">import 
org.apache.hadoop.hbase.client.RegionInfo;</span>
 <span class="source-line-no">033</span><span id="line-33">import 
org.apache.hadoop.hbase.client.RegionInfoBuilder;</span>
-<span class="source-line-no">034</span><span id="line-34">import 
org.apache.hadoop.hbase.testclassification.MasterTests;</span>
-<span class="source-line-no">035</span><span id="line-35">import 
org.apache.hadoop.hbase.testclassification.MediumTests;</span>
-<span class="source-line-no">036</span><span id="line-36">import 
org.junit.BeforeClass;</span>
-<span class="source-line-no">037</span><span id="line-37">import 
org.junit.ClassRule;</span>
-<span class="source-line-no">038</span><span id="line-38">import 
org.junit.Test;</span>
-<span class="source-line-no">039</span><span id="line-39">import 
org.junit.experimental.categories.Category;</span>
-<span class="source-line-no">040</span><span id="line-40">import 
org.slf4j.Logger;</span>
-<span class="source-line-no">041</span><span id="line-41">import 
org.slf4j.LoggerFactory;</span>
-<span class="source-line-no">042</span><span id="line-42"></span>
-<span class="source-line-no">043</span><span id="line-43">@Category({ 
MediumTests.class, MasterTests.class })</span>
-<span class="source-line-no">044</span><span id="line-44">public class 
TestLargeClusterBalancingSystemTableIsolation {</span>
-<span class="source-line-no">045</span><span id="line-45"></span>
-<span class="source-line-no">046</span><span id="line-46">  @ClassRule</span>
-<span class="source-line-no">047</span><span id="line-47">  public static 
final HBaseClassTestRule CLASS_RULE =</span>
-<span class="source-line-no">048</span><span id="line-48">    
HBaseClassTestRule.forClass(TestLargeClusterBalancingSystemTableIsolation.class);</span>
-<span class="source-line-no">049</span><span id="line-49"></span>
-<span class="source-line-no">050</span><span id="line-50">  private static 
final Logger LOG =</span>
-<span class="source-line-no">051</span><span id="line-51">    
LoggerFactory.getLogger(TestLargeClusterBalancingSystemTableIsolation.class);</span>
-<span class="source-line-no">052</span><span id="line-52"></span>
-<span class="source-line-no">053</span><span id="line-53">  private static 
final TableName SYSTEM_TABLE_NAME = TableName.valueOf("hbase:system");</span>
-<span class="source-line-no">054</span><span id="line-54">  private static 
final TableName NON_SYSTEM_TABLE_NAME = TableName.valueOf("userTable");</span>
-<span class="source-line-no">055</span><span id="line-55"></span>
-<span class="source-line-no">056</span><span id="line-56">  private static 
final int NUM_SERVERS = 1000;</span>
-<span class="source-line-no">057</span><span id="line-57">  private static 
final int NUM_REGIONS = 20_000;</span>
-<span class="source-line-no">058</span><span id="line-58"></span>
-<span class="source-line-no">059</span><span id="line-59">  private static 
final ServerName[] servers = new ServerName[NUM_SERVERS];</span>
-<span class="source-line-no">060</span><span id="line-60">  private static 
final Map&lt;ServerName, List&lt;RegionInfo&gt;&gt; serverToRegions = new 
HashMap&lt;&gt;();</span>
-<span class="source-line-no">061</span><span id="line-61"></span>
-<span class="source-line-no">062</span><span id="line-62">  @BeforeClass</span>
-<span class="source-line-no">063</span><span id="line-63">  public static void 
setup() {</span>
-<span class="source-line-no">064</span><span id="line-64">    // Initialize 
servers</span>
-<span class="source-line-no">065</span><span id="line-65">    for (int i = 0; 
i &lt; NUM_SERVERS; i++) {</span>
-<span class="source-line-no">066</span><span id="line-66">      servers[i] = 
ServerName.valueOf("server" + i, i, System.currentTimeMillis());</span>
-<span class="source-line-no">067</span><span id="line-67">    }</span>
-<span class="source-line-no">068</span><span id="line-68"></span>
-<span class="source-line-no">069</span><span id="line-69">    // Create 
regions</span>
-<span class="source-line-no">070</span><span id="line-70">    
List&lt;RegionInfo&gt; allRegions = new ArrayList&lt;&gt;();</span>
-<span class="source-line-no">071</span><span id="line-71">    for (int i = 0; 
i &lt; NUM_REGIONS; i++) {</span>
-<span class="source-line-no">072</span><span id="line-72">      TableName 
tableName = i &lt; 3 ? SYSTEM_TABLE_NAME : NON_SYSTEM_TABLE_NAME;</span>
-<span class="source-line-no">073</span><span id="line-73">      byte[] 
startKey = new byte[1];</span>
-<span class="source-line-no">074</span><span id="line-74">      startKey[0] = 
(byte) i;</span>
-<span class="source-line-no">075</span><span id="line-75">      byte[] endKey 
= new byte[1];</span>
-<span class="source-line-no">076</span><span id="line-76">      endKey[0] = 
(byte) (i + 1);</span>
-<span class="source-line-no">077</span><span id="line-77"></span>
-<span class="source-line-no">078</span><span id="line-78">      RegionInfo 
regionInfo =</span>
-<span class="source-line-no">079</span><span id="line-79">        
RegionInfoBuilder.newBuilder(tableName).setStartKey(startKey).setEndKey(endKey).build();</span>
-<span class="source-line-no">080</span><span id="line-80">      
allRegions.add(regionInfo);</span>
-<span class="source-line-no">081</span><span id="line-81">    }</span>
-<span class="source-line-no">082</span><span id="line-82"></span>
-<span class="source-line-no">083</span><span id="line-83">    // Assign all 
regions to the first server</span>
-<span class="source-line-no">084</span><span id="line-84">    
serverToRegions.put(servers[0], new ArrayList&lt;&gt;(allRegions));</span>
-<span class="source-line-no">085</span><span id="line-85">    for (int i = 1; 
i &lt; NUM_SERVERS; i++) {</span>
-<span class="source-line-no">086</span><span id="line-86">      
serverToRegions.put(servers[i], new ArrayList&lt;&gt;());</span>
-<span class="source-line-no">087</span><span id="line-87">    }</span>
-<span class="source-line-no">088</span><span id="line-88">  }</span>
-<span class="source-line-no">089</span><span id="line-89"></span>
-<span class="source-line-no">090</span><span id="line-90">  @Test</span>
-<span class="source-line-no">091</span><span id="line-91">  public void 
testSystemTableIsolation() {</span>
-<span class="source-line-no">092</span><span id="line-92">    Configuration 
conf = new Configuration(false);</span>
-<span class="source-line-no">093</span><span id="line-93">    
conf.setBoolean(BalancerConditionals.ISOLATE_SYSTEM_TABLES_KEY, true);</span>
-<span class="source-line-no">094</span><span id="line-94">    
runBalancerToExhaustion(conf, serverToRegions, 
Set.of(this::isSystemTableIsolated), 10.0f);</span>
-<span class="source-line-no">095</span><span id="line-95">    LOG.info("Meta 
table regions are successfully isolated.");</span>
-<span class="source-line-no">096</span><span id="line-96">  }</span>
-<span class="source-line-no">097</span><span id="line-97"></span>
-<span class="source-line-no">098</span><span id="line-98">  private boolean 
isSystemTableIsolated(BalancerClusterState cluster) {</span>
-<span class="source-line-no">099</span><span id="line-99">    return 
isTableIsolated(cluster, SYSTEM_TABLE_NAME, "System");</span>
-<span class="source-line-no">100</span><span id="line-100">  }</span>
-<span class="source-line-no">101</span><span id="line-101"></span>
-<span class="source-line-no">102</span><span id="line-102">}</span>
+<span class="source-line-no">034</span><span id="line-34">import 
org.apache.hadoop.hbase.master.balancer.BalancerTestBase.MockMapping;</span>
+<span class="source-line-no">035</span><span id="line-35">import 
org.apache.hadoop.hbase.testclassification.MasterTests;</span>
+<span class="source-line-no">036</span><span id="line-36">import 
org.apache.hadoop.hbase.testclassification.MediumTests;</span>
+<span class="source-line-no">037</span><span id="line-37">import 
org.apache.hadoop.net.DNSToSwitchMapping;</span>
+<span class="source-line-no">038</span><span id="line-38">import 
org.junit.BeforeClass;</span>
+<span class="source-line-no">039</span><span id="line-39">import 
org.junit.ClassRule;</span>
+<span class="source-line-no">040</span><span id="line-40">import 
org.junit.Test;</span>
+<span class="source-line-no">041</span><span id="line-41">import 
org.junit.experimental.categories.Category;</span>
+<span class="source-line-no">042</span><span id="line-42">import 
org.slf4j.Logger;</span>
+<span class="source-line-no">043</span><span id="line-43">import 
org.slf4j.LoggerFactory;</span>
+<span class="source-line-no">044</span><span id="line-44"></span>
+<span class="source-line-no">045</span><span id="line-45">@Category({ 
MediumTests.class, MasterTests.class })</span>
+<span class="source-line-no">046</span><span id="line-46">public class 
TestLargeClusterBalancingSystemTableIsolation {</span>
+<span class="source-line-no">047</span><span id="line-47"></span>
+<span class="source-line-no">048</span><span id="line-48">  @ClassRule</span>
+<span class="source-line-no">049</span><span id="line-49">  public static 
final HBaseClassTestRule CLASS_RULE =</span>
+<span class="source-line-no">050</span><span id="line-50">    
HBaseClassTestRule.forClass(TestLargeClusterBalancingSystemTableIsolation.class);</span>
+<span class="source-line-no">051</span><span id="line-51"></span>
+<span class="source-line-no">052</span><span id="line-52">  private static 
final Logger LOG =</span>
+<span class="source-line-no">053</span><span id="line-53">    
LoggerFactory.getLogger(TestLargeClusterBalancingSystemTableIsolation.class);</span>
+<span class="source-line-no">054</span><span id="line-54"></span>
+<span class="source-line-no">055</span><span id="line-55">  private static 
final TableName SYSTEM_TABLE_NAME = TableName.valueOf("hbase:system");</span>
+<span class="source-line-no">056</span><span id="line-56">  private static 
final TableName NON_SYSTEM_TABLE_NAME = TableName.valueOf("userTable");</span>
+<span class="source-line-no">057</span><span id="line-57"></span>
+<span class="source-line-no">058</span><span id="line-58">  private static 
final int NUM_SERVERS = 1000;</span>
+<span class="source-line-no">059</span><span id="line-59">  private static 
final int NUM_REGIONS = 20_000;</span>
+<span class="source-line-no">060</span><span id="line-60"></span>
+<span class="source-line-no">061</span><span id="line-61">  private static 
final ServerName[] servers = new ServerName[NUM_SERVERS];</span>
+<span class="source-line-no">062</span><span id="line-62">  private static 
final Map&lt;ServerName, List&lt;RegionInfo&gt;&gt; serverToRegions = new 
HashMap&lt;&gt;();</span>
+<span class="source-line-no">063</span><span id="line-63"></span>
+<span class="source-line-no">064</span><span id="line-64">  @BeforeClass</span>
+<span class="source-line-no">065</span><span id="line-65">  public static void 
setup() {</span>
+<span class="source-line-no">066</span><span id="line-66">    // Initialize 
servers</span>
+<span class="source-line-no">067</span><span id="line-67">    for (int i = 0; 
i &lt; NUM_SERVERS; i++) {</span>
+<span class="source-line-no">068</span><span id="line-68">      servers[i] = 
ServerName.valueOf("server" + i, i, System.currentTimeMillis());</span>
+<span class="source-line-no">069</span><span id="line-69">    }</span>
+<span class="source-line-no">070</span><span id="line-70"></span>
+<span class="source-line-no">071</span><span id="line-71">    // Create 
regions</span>
+<span class="source-line-no">072</span><span id="line-72">    
List&lt;RegionInfo&gt; allRegions = new ArrayList&lt;&gt;();</span>
+<span class="source-line-no">073</span><span id="line-73">    for (int i = 0; 
i &lt; NUM_REGIONS; i++) {</span>
+<span class="source-line-no">074</span><span id="line-74">      TableName 
tableName = i &lt; 3 ? SYSTEM_TABLE_NAME : NON_SYSTEM_TABLE_NAME;</span>
+<span class="source-line-no">075</span><span id="line-75">      byte[] 
startKey = new byte[1];</span>
+<span class="source-line-no">076</span><span id="line-76">      startKey[0] = 
(byte) i;</span>
+<span class="source-line-no">077</span><span id="line-77">      byte[] endKey 
= new byte[1];</span>
+<span class="source-line-no">078</span><span id="line-78">      endKey[0] = 
(byte) (i + 1);</span>
+<span class="source-line-no">079</span><span id="line-79"></span>
+<span class="source-line-no">080</span><span id="line-80">      RegionInfo 
regionInfo =</span>
+<span class="source-line-no">081</span><span id="line-81">        
RegionInfoBuilder.newBuilder(tableName).setStartKey(startKey).setEndKey(endKey).build();</span>
+<span class="source-line-no">082</span><span id="line-82">      
allRegions.add(regionInfo);</span>
+<span class="source-line-no">083</span><span id="line-83">    }</span>
+<span class="source-line-no">084</span><span id="line-84"></span>
+<span class="source-line-no">085</span><span id="line-85">    // Assign all 
regions to the first server</span>
+<span class="source-line-no">086</span><span id="line-86">    
serverToRegions.put(servers[0], new ArrayList&lt;&gt;(allRegions));</span>
+<span class="source-line-no">087</span><span id="line-87">    for (int i = 1; 
i &lt; NUM_SERVERS; i++) {</span>
+<span class="source-line-no">088</span><span id="line-88">      
serverToRegions.put(servers[i], new ArrayList&lt;&gt;());</span>
+<span class="source-line-no">089</span><span id="line-89">    }</span>
+<span class="source-line-no">090</span><span id="line-90">  }</span>
+<span class="source-line-no">091</span><span id="line-91"></span>
+<span class="source-line-no">092</span><span id="line-92">  @Test</span>
+<span class="source-line-no">093</span><span id="line-93">  public void 
testSystemTableIsolation() {</span>
+<span class="source-line-no">094</span><span id="line-94">    Configuration 
conf = new Configuration(false);</span>
+<span class="source-line-no">095</span><span id="line-95">    
conf.setClass("hbase.util.ip.to.rack.determiner", MockMapping.class, 
DNSToSwitchMapping.class);</span>
+<span class="source-line-no">096</span><span id="line-96">    
conf.setBoolean(BalancerConditionals.ISOLATE_SYSTEM_TABLES_KEY, true);</span>
+<span class="source-line-no">097</span><span id="line-97">    
runBalancerToExhaustion(conf, serverToRegions, 
Set.of(this::isSystemTableIsolated), 10.0f);</span>
+<span class="source-line-no">098</span><span id="line-98">    LOG.info("Meta 
table regions are successfully isolated.");</span>
+<span class="source-line-no">099</span><span id="line-99">  }</span>
+<span class="source-line-no">100</span><span id="line-100"></span>
+<span class="source-line-no">101</span><span id="line-101">  private boolean 
isSystemTableIsolated(BalancerClusterState cluster) {</span>
+<span class="source-line-no">102</span><span id="line-102">    return 
isTableIsolated(cluster, SYSTEM_TABLE_NAME, "System");</span>
+<span class="source-line-no">103</span><span id="line-103">  }</span>
+<span class="source-line-no">104</span><span id="line-104"></span>
+<span class="source-line-no">105</span><span id="line-105">}</span>
 
 
 
diff --git 
a/testdevapidocs/src-html/org/apache/hadoop/hbase/master/balancer/TestLargeClusterBalancingTableIsolationAndReplicaDistribution.html
 
b/testdevapidocs/src-html/org/apache/hadoop/hbase/master/balancer/TestLargeClusterBalancingTableIsolationAndReplicaDistribution.html
index e70500e3661..f68817fcb15 100644
--- 
a/testdevapidocs/src-html/org/apache/hadoop/hbase/master/balancer/TestLargeClusterBalancingTableIsolationAndReplicaDistribution.html
+++ 
b/testdevapidocs/src-html/org/apache/hadoop/hbase/master/balancer/TestLargeClusterBalancingTableIsolationAndReplicaDistribution.html
@@ -45,100 +45,103 @@
 <span class="source-line-no">032</span><span id="line-32">import 
org.apache.hadoop.hbase.TableName;</span>
 <span class="source-line-no">033</span><span id="line-33">import 
org.apache.hadoop.hbase.client.RegionInfo;</span>
 <span class="source-line-no">034</span><span id="line-34">import 
org.apache.hadoop.hbase.client.RegionInfoBuilder;</span>
-<span class="source-line-no">035</span><span id="line-35">import 
org.apache.hadoop.hbase.testclassification.MasterTests;</span>
-<span class="source-line-no">036</span><span id="line-36">import 
org.apache.hadoop.hbase.testclassification.MediumTests;</span>
-<span class="source-line-no">037</span><span id="line-37">import 
org.junit.BeforeClass;</span>
-<span class="source-line-no">038</span><span id="line-38">import 
org.junit.ClassRule;</span>
-<span class="source-line-no">039</span><span id="line-39">import 
org.junit.Test;</span>
-<span class="source-line-no">040</span><span id="line-40">import 
org.junit.experimental.categories.Category;</span>
-<span class="source-line-no">041</span><span id="line-41">import 
org.slf4j.Logger;</span>
-<span class="source-line-no">042</span><span id="line-42">import 
org.slf4j.LoggerFactory;</span>
-<span class="source-line-no">043</span><span id="line-43"></span>
-<span class="source-line-no">044</span><span id="line-44">@Category({ 
MediumTests.class, MasterTests.class })</span>
-<span class="source-line-no">045</span><span id="line-45">public class 
TestLargeClusterBalancingTableIsolationAndReplicaDistribution {</span>
-<span class="source-line-no">046</span><span id="line-46"></span>
-<span class="source-line-no">047</span><span id="line-47">  @ClassRule</span>
-<span class="source-line-no">048</span><span id="line-48">  public static 
final HBaseClassTestRule CLASS_RULE = HBaseClassTestRule</span>
-<span class="source-line-no">049</span><span id="line-49">    
.forClass(TestLargeClusterBalancingTableIsolationAndReplicaDistribution.class);</span>
-<span class="source-line-no">050</span><span id="line-50"></span>
-<span class="source-line-no">051</span><span id="line-51">  private static 
final Logger LOG =</span>
-<span class="source-line-no">052</span><span id="line-52">    
LoggerFactory.getLogger(TestLargeClusterBalancingTableIsolationAndReplicaDistribution.class);</span>
-<span class="source-line-no">053</span><span id="line-53">  private static 
final TableName SYSTEM_TABLE_NAME = TableName.valueOf("hbase:system");</span>
-<span class="source-line-no">054</span><span id="line-54">  private static 
final TableName NON_ISOLATED_TABLE_NAME = TableName.valueOf("userTable");</span>
-<span class="source-line-no">055</span><span id="line-55"></span>
-<span class="source-line-no">056</span><span id="line-56">  private static 
final int NUM_SERVERS = 500;</span>
-<span class="source-line-no">057</span><span id="line-57">  private static 
final int NUM_REGIONS = 2_500;</span>
-<span class="source-line-no">058</span><span id="line-58">  private static 
final int NUM_REPLICAS = 3;</span>
-<span class="source-line-no">059</span><span id="line-59"></span>
-<span class="source-line-no">060</span><span id="line-60">  private static 
final ServerName[] servers = new ServerName[NUM_SERVERS];</span>
-<span class="source-line-no">061</span><span id="line-61">  private static 
final Map&lt;ServerName, List&lt;RegionInfo&gt;&gt; serverToRegions = new 
HashMap&lt;&gt;();</span>
-<span class="source-line-no">062</span><span id="line-62"></span>
-<span class="source-line-no">063</span><span id="line-63">  @BeforeClass</span>
-<span class="source-line-no">064</span><span id="line-64">  public static void 
setup() {</span>
-<span class="source-line-no">065</span><span id="line-65">    // Initialize 
servers</span>
-<span class="source-line-no">066</span><span id="line-66">    for (int i = 0; 
i &lt; NUM_SERVERS; i++) {</span>
-<span class="source-line-no">067</span><span id="line-67">      servers[i] = 
ServerName.valueOf("server" + i, i, System.currentTimeMillis());</span>
-<span class="source-line-no">068</span><span id="line-68">      
serverToRegions.put(servers[i], new ArrayList&lt;&gt;());</span>
-<span class="source-line-no">069</span><span id="line-69">    }</span>
-<span class="source-line-no">070</span><span id="line-70"></span>
-<span class="source-line-no">071</span><span id="line-71">    // Create 
primary regions and their replicas</span>
-<span class="source-line-no">072</span><span id="line-72">    for (int i = 0; 
i &lt; NUM_REGIONS; i++) {</span>
-<span class="source-line-no">073</span><span id="line-73">      TableName 
tableName;</span>
-<span class="source-line-no">074</span><span id="line-74">      if (i &lt; 1) 
{</span>
-<span class="source-line-no">075</span><span id="line-75">        tableName = 
TableName.META_TABLE_NAME;</span>
-<span class="source-line-no">076</span><span id="line-76">      } else if (i 
&lt; 10) {</span>
-<span class="source-line-no">077</span><span id="line-77">        tableName = 
SYSTEM_TABLE_NAME;</span>
-<span class="source-line-no">078</span><span id="line-78">      } else {</span>
-<span class="source-line-no">079</span><span id="line-79">        tableName = 
NON_ISOLATED_TABLE_NAME;</span>
-<span class="source-line-no">080</span><span id="line-80">      }</span>
-<span class="source-line-no">081</span><span id="line-81"></span>
-<span class="source-line-no">082</span><span id="line-82">      // Define 
startKey and endKey for the region</span>
-<span class="source-line-no">083</span><span id="line-83">      byte[] 
startKey = new byte[1];</span>
-<span class="source-line-no">084</span><span id="line-84">      startKey[0] = 
(byte) i;</span>
-<span class="source-line-no">085</span><span id="line-85">      byte[] endKey 
= new byte[1];</span>
-<span class="source-line-no">086</span><span id="line-86">      endKey[0] = 
(byte) (i + 1);</span>
-<span class="source-line-no">087</span><span id="line-87"></span>
-<span class="source-line-no">088</span><span id="line-88">      Random random 
= new Random();</span>
-<span class="source-line-no">089</span><span id="line-89">      // Create 3 
replicas for each primary region</span>
-<span class="source-line-no">090</span><span id="line-90">      for (int 
replicaId = 0; replicaId &lt; NUM_REPLICAS; replicaId++) {</span>
-<span class="source-line-no">091</span><span id="line-91">        RegionInfo 
regionInfo = 
RegionInfoBuilder.newBuilder(tableName).setStartKey(startKey)</span>
-<span class="source-line-no">092</span><span id="line-92">          
.setEndKey(endKey).setReplicaId(replicaId).build();</span>
-<span class="source-line-no">093</span><span id="line-93">        // Assign 
region to random server</span>
-<span class="source-line-no">094</span><span id="line-94">        int 
randomServer = random.nextInt(servers.length);</span>
-<span class="source-line-no">095</span><span id="line-95">        
serverToRegions.get(servers[randomServer]).add(regionInfo);</span>
-<span class="source-line-no">096</span><span id="line-96">      }</span>
-<span class="source-line-no">097</span><span id="line-97">    }</span>
-<span class="source-line-no">098</span><span id="line-98">  }</span>
-<span class="source-line-no">099</span><span id="line-99"></span>
-<span class="source-line-no">100</span><span id="line-100">  @Test</span>
-<span class="source-line-no">101</span><span id="line-101">  public void 
testTableIsolationAndReplicaDistribution() {</span>
-<span class="source-line-no">102</span><span id="line-102">    Configuration 
conf = new Configuration(false);</span>
-<span class="source-line-no">103</span><span id="line-103">    
conf.setBoolean(BalancerConditionals.ISOLATE_META_TABLE_KEY, true);</span>
-<span class="source-line-no">104</span><span id="line-104">    
conf.setBoolean(BalancerConditionals.ISOLATE_SYSTEM_TABLES_KEY, true);</span>
-<span class="source-line-no">105</span><span id="line-105">    
DistributeReplicasTestConditional.enableConditionalReplicaDistributionForTest(conf);</span>
-<span class="source-line-no">106</span><span id="line-106"></span>
-<span class="source-line-no">107</span><span id="line-107">    
runBalancerToExhaustion(conf, serverToRegions,</span>
-<span class="source-line-no">108</span><span id="line-108">      
Set.of(this::isMetaTableIsolated, this::isSystemTableIsolated,</span>
-<span class="source-line-no">109</span><span id="line-109">        
CandidateGeneratorTestUtil::areAllReplicasDistributed),</span>
-<span class="source-line-no">110</span><span id="line-110">      10.0f, 
60_000, CandidateGeneratorTestUtil.ExhaustionType.COST_GOAL_ACHIEVED);</span>
-<span class="source-line-no">111</span><span id="line-111">    LOG.info("Meta 
table regions are successfully isolated, "</span>
-<span class="source-line-no">112</span><span id="line-112">      + "and region 
replicas are appropriately distributed.");</span>
-<span class="source-line-no">113</span><span id="line-113">  }</span>
-<span class="source-line-no">114</span><span id="line-114"></span>
-<span class="source-line-no">115</span><span id="line-115">  /**</span>
-<span class="source-line-no">116</span><span id="line-116">   * Validates 
whether all meta table regions are isolated.</span>
-<span class="source-line-no">117</span><span id="line-117">   */</span>
-<span class="source-line-no">118</span><span id="line-118">  private boolean 
isMetaTableIsolated(BalancerClusterState cluster) {</span>
-<span class="source-line-no">119</span><span id="line-119">    return 
isTableIsolated(cluster, TableName.META_TABLE_NAME, "Meta");</span>
-<span class="source-line-no">120</span><span id="line-120">  }</span>
-<span class="source-line-no">121</span><span id="line-121"></span>
-<span class="source-line-no">122</span><span id="line-122">  /**</span>
-<span class="source-line-no">123</span><span id="line-123">   * Validates 
whether all meta table regions are isolated.</span>
-<span class="source-line-no">124</span><span id="line-124">   */</span>
-<span class="source-line-no">125</span><span id="line-125">  private boolean 
isSystemTableIsolated(BalancerClusterState cluster) {</span>
-<span class="source-line-no">126</span><span id="line-126">    return 
isTableIsolated(cluster, SYSTEM_TABLE_NAME, "System");</span>
-<span class="source-line-no">127</span><span id="line-127">  }</span>
-<span class="source-line-no">128</span><span id="line-128">}</span>
+<span class="source-line-no">035</span><span id="line-35">import 
org.apache.hadoop.hbase.master.balancer.BalancerTestBase.MockMapping;</span>
+<span class="source-line-no">036</span><span id="line-36">import 
org.apache.hadoop.hbase.testclassification.MasterTests;</span>
+<span class="source-line-no">037</span><span id="line-37">import 
org.apache.hadoop.hbase.testclassification.MediumTests;</span>
+<span class="source-line-no">038</span><span id="line-38">import 
org.apache.hadoop.net.DNSToSwitchMapping;</span>
+<span class="source-line-no">039</span><span id="line-39">import 
org.junit.BeforeClass;</span>
+<span class="source-line-no">040</span><span id="line-40">import 
org.junit.ClassRule;</span>
+<span class="source-line-no">041</span><span id="line-41">import 
org.junit.Test;</span>
+<span class="source-line-no">042</span><span id="line-42">import 
org.junit.experimental.categories.Category;</span>
+<span class="source-line-no">043</span><span id="line-43">import 
org.slf4j.Logger;</span>
+<span class="source-line-no">044</span><span id="line-44">import 
org.slf4j.LoggerFactory;</span>
+<span class="source-line-no">045</span><span id="line-45"></span>
+<span class="source-line-no">046</span><span id="line-46">@Category({ 
MediumTests.class, MasterTests.class })</span>
+<span class="source-line-no">047</span><span id="line-47">public class 
TestLargeClusterBalancingTableIsolationAndReplicaDistribution {</span>
+<span class="source-line-no">048</span><span id="line-48"></span>
+<span class="source-line-no">049</span><span id="line-49">  @ClassRule</span>
+<span class="source-line-no">050</span><span id="line-50">  public static 
final HBaseClassTestRule CLASS_RULE = HBaseClassTestRule</span>
+<span class="source-line-no">051</span><span id="line-51">    
.forClass(TestLargeClusterBalancingTableIsolationAndReplicaDistribution.class);</span>
+<span class="source-line-no">052</span><span id="line-52"></span>
+<span class="source-line-no">053</span><span id="line-53">  private static 
final Logger LOG =</span>
+<span class="source-line-no">054</span><span id="line-54">    
LoggerFactory.getLogger(TestLargeClusterBalancingTableIsolationAndReplicaDistribution.class);</span>
+<span class="source-line-no">055</span><span id="line-55">  private static 
final TableName SYSTEM_TABLE_NAME = TableName.valueOf("hbase:system");</span>
+<span class="source-line-no">056</span><span id="line-56">  private static 
final TableName NON_ISOLATED_TABLE_NAME = TableName.valueOf("userTable");</span>
+<span class="source-line-no">057</span><span id="line-57"></span>
+<span class="source-line-no">058</span><span id="line-58">  private static 
final int NUM_SERVERS = 500;</span>
+<span class="source-line-no">059</span><span id="line-59">  private static 
final int NUM_REGIONS = 2_500;</span>
+<span class="source-line-no">060</span><span id="line-60">  private static 
final int NUM_REPLICAS = 3;</span>
+<span class="source-line-no">061</span><span id="line-61"></span>
+<span class="source-line-no">062</span><span id="line-62">  private static 
final ServerName[] servers = new ServerName[NUM_SERVERS];</span>
+<span class="source-line-no">063</span><span id="line-63">  private static 
final Map&lt;ServerName, List&lt;RegionInfo&gt;&gt; serverToRegions = new 
HashMap&lt;&gt;();</span>
+<span class="source-line-no">064</span><span id="line-64"></span>
+<span class="source-line-no">065</span><span id="line-65">  @BeforeClass</span>
+<span class="source-line-no">066</span><span id="line-66">  public static void 
setup() {</span>
+<span class="source-line-no">067</span><span id="line-67">    // Initialize 
servers</span>
+<span class="source-line-no">068</span><span id="line-68">    for (int i = 0; 
i &lt; NUM_SERVERS; i++) {</span>
+<span class="source-line-no">069</span><span id="line-69">      servers[i] = 
ServerName.valueOf("server" + i, i, System.currentTimeMillis());</span>
+<span class="source-line-no">070</span><span id="line-70">      
serverToRegions.put(servers[i], new ArrayList&lt;&gt;());</span>
+<span class="source-line-no">071</span><span id="line-71">    }</span>
+<span class="source-line-no">072</span><span id="line-72"></span>
+<span class="source-line-no">073</span><span id="line-73">    // Create 
primary regions and their replicas</span>
+<span class="source-line-no">074</span><span id="line-74">    for (int i = 0; 
i &lt; NUM_REGIONS; i++) {</span>
+<span class="source-line-no">075</span><span id="line-75">      TableName 
tableName;</span>
+<span class="source-line-no">076</span><span id="line-76">      if (i &lt; 1) 
{</span>
+<span class="source-line-no">077</span><span id="line-77">        tableName = 
TableName.META_TABLE_NAME;</span>
+<span class="source-line-no">078</span><span id="line-78">      } else if (i 
&lt; 10) {</span>
+<span class="source-line-no">079</span><span id="line-79">        tableName = 
SYSTEM_TABLE_NAME;</span>
+<span class="source-line-no">080</span><span id="line-80">      } else {</span>
+<span class="source-line-no">081</span><span id="line-81">        tableName = 
NON_ISOLATED_TABLE_NAME;</span>
+<span class="source-line-no">082</span><span id="line-82">      }</span>
+<span class="source-line-no">083</span><span id="line-83"></span>
+<span class="source-line-no">084</span><span id="line-84">      // Define 
startKey and endKey for the region</span>
+<span class="source-line-no">085</span><span id="line-85">      byte[] 
startKey = new byte[1];</span>
+<span class="source-line-no">086</span><span id="line-86">      startKey[0] = 
(byte) i;</span>
+<span class="source-line-no">087</span><span id="line-87">      byte[] endKey 
= new byte[1];</span>
+<span class="source-line-no">088</span><span id="line-88">      endKey[0] = 
(byte) (i + 1);</span>
+<span class="source-line-no">089</span><span id="line-89"></span>
+<span class="source-line-no">090</span><span id="line-90">      Random random 
= new Random();</span>
+<span class="source-line-no">091</span><span id="line-91">      // Create 3 
replicas for each primary region</span>
+<span class="source-line-no">092</span><span id="line-92">      for (int 
replicaId = 0; replicaId &lt; NUM_REPLICAS; replicaId++) {</span>
+<span class="source-line-no">093</span><span id="line-93">        RegionInfo 
regionInfo = 
RegionInfoBuilder.newBuilder(tableName).setStartKey(startKey)</span>
+<span class="source-line-no">094</span><span id="line-94">          
.setEndKey(endKey).setReplicaId(replicaId).build();</span>
+<span class="source-line-no">095</span><span id="line-95">        // Assign 
region to random server</span>
+<span class="source-line-no">096</span><span id="line-96">        int 
randomServer = random.nextInt(servers.length);</span>
+<span class="source-line-no">097</span><span id="line-97">        
serverToRegions.get(servers[randomServer]).add(regionInfo);</span>
+<span class="source-line-no">098</span><span id="line-98">      }</span>
+<span class="source-line-no">099</span><span id="line-99">    }</span>
+<span class="source-line-no">100</span><span id="line-100">  }</span>
+<span class="source-line-no">101</span><span id="line-101"></span>
+<span class="source-line-no">102</span><span id="line-102">  @Test</span>
+<span class="source-line-no">103</span><span id="line-103">  public void 
testTableIsolationAndReplicaDistribution() {</span>
+<span class="source-line-no">104</span><span id="line-104">    Configuration 
conf = new Configuration(false);</span>
+<span class="source-line-no">105</span><span id="line-105">    
conf.setClass("hbase.util.ip.to.rack.determiner", MockMapping.class, 
DNSToSwitchMapping.class);</span>
+<span class="source-line-no">106</span><span id="line-106">    
conf.setBoolean(BalancerConditionals.ISOLATE_META_TABLE_KEY, true);</span>
+<span class="source-line-no">107</span><span id="line-107">    
conf.setBoolean(BalancerConditionals.ISOLATE_SYSTEM_TABLES_KEY, true);</span>
+<span class="source-line-no">108</span><span id="line-108">    
DistributeReplicasTestConditional.enableConditionalReplicaDistributionForTest(conf);</span>
+<span class="source-line-no">109</span><span id="line-109"></span>
+<span class="source-line-no">110</span><span id="line-110">    
runBalancerToExhaustion(conf, serverToRegions,</span>
+<span class="source-line-no">111</span><span id="line-111">      
Set.of(this::isMetaTableIsolated, this::isSystemTableIsolated,</span>
+<span class="source-line-no">112</span><span id="line-112">        
CandidateGeneratorTestUtil::areAllReplicasDistributed),</span>
+<span class="source-line-no">113</span><span id="line-113">      10.0f, 
60_000, CandidateGeneratorTestUtil.ExhaustionType.COST_GOAL_ACHIEVED);</span>
+<span class="source-line-no">114</span><span id="line-114">    LOG.info("Meta 
table regions are successfully isolated, "</span>
+<span class="source-line-no">115</span><span id="line-115">      + "and region 
replicas are appropriately distributed.");</span>
+<span class="source-line-no">116</span><span id="line-116">  }</span>
+<span class="source-line-no">117</span><span id="line-117"></span>
+<span class="source-line-no">118</span><span id="line-118">  /**</span>
+<span class="source-line-no">119</span><span id="line-119">   * Validates 
whether all meta table regions are isolated.</span>
+<span class="source-line-no">120</span><span id="line-120">   */</span>
+<span class="source-line-no">121</span><span id="line-121">  private boolean 
isMetaTableIsolated(BalancerClusterState cluster) {</span>
+<span class="source-line-no">122</span><span id="line-122">    return 
isTableIsolated(cluster, TableName.META_TABLE_NAME, "Meta");</span>
+<span class="source-line-no">123</span><span id="line-123">  }</span>
+<span class="source-line-no">124</span><span id="line-124"></span>
+<span class="source-line-no">125</span><span id="line-125">  /**</span>
+<span class="source-line-no">126</span><span id="line-126">   * Validates 
whether all meta table regions are isolated.</span>
+<span class="source-line-no">127</span><span id="line-127">   */</span>
+<span class="source-line-no">128</span><span id="line-128">  private boolean 
isSystemTableIsolated(BalancerClusterState cluster) {</span>
+<span class="source-line-no">129</span><span id="line-129">    return 
isTableIsolated(cluster, SYSTEM_TABLE_NAME, "System");</span>
+<span class="source-line-no">130</span><span id="line-130">  }</span>
+<span class="source-line-no">131</span><span id="line-131">}</span>
 
 
 


Reply via email to