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 b61ca3f88cd Published site at b1fd92d3c7ea56b2f49eb9d419e1311a34c2f612.
b61ca3f88cd is described below

commit b61ca3f88cd0daca05103bf24650930d78c39bf3
Author: jenkins <[email protected]>
AuthorDate: Thu Aug 17 14:44:24 2023 +0000

    Published site at b1fd92d3c7ea56b2f49eb9d419e1311a34c2f612.
---
 acid-semantics.html                                |   2 +-
 apache_hbase_reference_guide.pdf                   |   4 +-
 book.html                                          |   2 +-
 bulk-loads.html                                    |   2 +-
 checkstyle-aggregate.html                          |   2 +-
 coc.html                                           |   2 +-
 dependencies.html                                  |   2 +-
 dependency-convergence.html                        |   2 +-
 dependency-info.html                               |   2 +-
 dependency-management.html                         |   2 +-
 downloads.html                                     |   2 +-
 export_control.html                                |   2 +-
 index.html                                         |   2 +-
 issue-management.html                              |   2 +-
 licenses.html                                      |   2 +-
 mailing-lists.html                                 |   2 +-
 metrics.html                                       |   2 +-
 old_news.html                                      |   2 +-
 plugin-management.html                             |   2 +-
 plugins.html                                       |   2 +-
 poweredbyhbase.html                                |   2 +-
 project-info.html                                  |   2 +-
 project-reports.html                               |   2 +-
 pseudo-distributed.html                            |   2 +-
 replication.html                                   |   2 +-
 resources.html                                     |   2 +-
 scm.html                                           |   2 +-
 sponsors.html                                      |   2 +-
 summary.html                                       |   2 +-
 supportingprojects.html                            |   2 +-
 team.html                                          |   2 +-
 .../apache/hadoop/hbase/backup/package-tree.html   |   2 +-
 .../apache/hadoop/hbase/io/hfile/package-tree.html |   2 +-
 .../org/apache/hadoop/hbase/package-tree.html      |  14 +-
 .../hadoop/hbase/procedure2/package-tree.html      |   2 +-
 .../quotas/TestClusterScopeQuotaThrottle.html      |  42 +--
 .../hadoop/hbase/regionserver/package-tree.html    |   8 +-
 .../org/apache/hadoop/hbase/test/package-tree.html |   2 +-
 .../hbase/util/bulkdatagenerator/package-tree.html |   2 +-
 .../quotas/TestClusterScopeQuotaThrottle.html      | 407 +++++++++++----------
 40 files changed, 273 insertions(+), 272 deletions(-)

diff --git a/acid-semantics.html b/acid-semantics.html
index 3fac1eaa7b9..ab1471d3fe6 100644
--- a/acid-semantics.html
+++ b/acid-semantics.html
@@ -464,7 +464,7 @@
         <div class="row">
             <p>Copyright &copy;2007&#x2013;2023
 <a href="https://www.apache.org/";>The Apache Software Foundation</a>.
-All rights reserved.        <li id="publishDate" class="pull-right">Last 
Published: 2023-08-15</li>
+All rights reserved.        <li id="publishDate" class="pull-right">Last 
Published: 2023-08-17</li>
 </p>
         </div>
         <p id="poweredBy" class="pull-right"><a 
href="http://maven.apache.org/"; title="Built by Maven" class="poweredBy"><img 
class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" 
/></a>
diff --git a/apache_hbase_reference_guide.pdf b/apache_hbase_reference_guide.pdf
index 3079a0cb291..c65e6dd5b91 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:20230815143053+00'00')
-/CreationDate (D:20230815144153+00'00')
+/ModDate (D:20230817143050+00'00')
+/CreationDate (D:20230817144159+00'00')
 >>
 endobj
 2 0 obj
diff --git a/book.html b/book.html
index 67cb8b33133..30c40bbf0e6 100644
--- a/book.html
+++ b/book.html
@@ -48718,7 +48718,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 2023-08-15 14:30:53 UTC
+Last updated 2023-08-17 14:30:50 UTC
 </div>
 </div>
 <script type="text/x-mathjax-config">
diff --git a/bulk-loads.html b/bulk-loads.html
index c319034e5a2..4569c30c03a 100644
--- a/bulk-loads.html
+++ b/bulk-loads.html
@@ -180,7 +180,7 @@
         <div class="row">
             <p>Copyright &copy;2007&#x2013;2023
 <a href="https://www.apache.org/";>The Apache Software Foundation</a>.
-All rights reserved.        <li id="publishDate" class="pull-right">Last 
Published: 2023-08-15</li>
+All rights reserved.        <li id="publishDate" class="pull-right">Last 
Published: 2023-08-17</li>
 </p>
         </div>
         <p id="poweredBy" class="pull-right"><a 
href="http://maven.apache.org/"; title="Built by Maven" class="poweredBy"><img 
class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" 
/></a>
diff --git a/checkstyle-aggregate.html b/checkstyle-aggregate.html
index fa466db2779..8aaeb601c4e 100644
--- a/checkstyle-aggregate.html
+++ b/checkstyle-aggregate.html
@@ -18562,7 +18562,7 @@
         <div class="row">
             <p>Copyright &copy;2007&#x2013;2023
 <a href="https://www.apache.org/";>The Apache Software Foundation</a>.
-All rights reserved.        <li id="publishDate" class="pull-right">Last 
Published: 2023-08-15</li>
+All rights reserved.        <li id="publishDate" class="pull-right">Last 
Published: 2023-08-17</li>
 </p>
         </div>
         <p id="poweredBy" class="pull-right"><a 
href="http://maven.apache.org/"; title="Built by Maven" class="poweredBy"><img 
class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" 
/></a>
diff --git a/coc.html b/coc.html
index 6893e78e957..5636ddedf84 100644
--- a/coc.html
+++ b/coc.html
@@ -248,7 +248,7 @@ email to <a class="externalLink" 
href="mailto:[email protected]";>the priv
         <div class="row">
             <p>Copyright &copy;2007&#x2013;2023
 <a href="https://www.apache.org/";>The Apache Software Foundation</a>.
-All rights reserved.        <li id="publishDate" class="pull-right">Last 
Published: 2023-08-15</li>
+All rights reserved.        <li id="publishDate" class="pull-right">Last 
Published: 2023-08-17</li>
 </p>
         </div>
         <p id="poweredBy" class="pull-right"><a 
href="http://maven.apache.org/"; title="Built by Maven" class="poweredBy"><img 
class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" 
/></a>
diff --git a/dependencies.html b/dependencies.html
index 658e9eb7292..f3ad5be3c18 100644
--- a/dependencies.html
+++ b/dependencies.html
@@ -313,7 +313,7 @@
         <div class="row">
             <p>Copyright &copy;2007&#x2013;2023
 <a href="https://www.apache.org/";>The Apache Software Foundation</a>.
-All rights reserved.        <li id="publishDate" class="pull-right">Last 
Published: 2023-08-15</li>
+All rights reserved.        <li id="publishDate" class="pull-right">Last 
Published: 2023-08-17</li>
 </p>
         </div>
         <p id="poweredBy" class="pull-right"><a 
href="http://maven.apache.org/"; title="Built by Maven" class="poweredBy"><img 
class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" 
/></a>
diff --git a/dependency-convergence.html b/dependency-convergence.html
index 70743c74898..dc2e876614f 100644
--- a/dependency-convergence.html
+++ b/dependency-convergence.html
@@ -897,7 +897,7 @@
         <div class="row">
             <p>Copyright &copy;2007&#x2013;2023
 <a href="https://www.apache.org/";>The Apache Software Foundation</a>.
-All rights reserved.        <li id="publishDate" class="pull-right">Last 
Published: 2023-08-15</li>
+All rights reserved.        <li id="publishDate" class="pull-right">Last 
Published: 2023-08-17</li>
 </p>
         </div>
         <p id="poweredBy" class="pull-right"><a 
href="http://maven.apache.org/"; title="Built by Maven" class="poweredBy"><img 
class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" 
/></a>
diff --git a/dependency-info.html b/dependency-info.html
index 8acc0e222ba..ded790c4feb 100644
--- a/dependency-info.html
+++ b/dependency-info.html
@@ -195,7 +195,7 @@
         <div class="row">
             <p>Copyright &copy;2007&#x2013;2023
 <a href="https://www.apache.org/";>The Apache Software Foundation</a>.
-All rights reserved.        <li id="publishDate" class="pull-right">Last 
Published: 2023-08-15</li>
+All rights reserved.        <li id="publishDate" class="pull-right">Last 
Published: 2023-08-17</li>
 </p>
         </div>
         <p id="poweredBy" class="pull-right"><a 
href="http://maven.apache.org/"; title="Built by Maven" class="poweredBy"><img 
class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" 
/></a>
diff --git a/dependency-management.html b/dependency-management.html
index 021f4246111..6878743e5cd 100644
--- a/dependency-management.html
+++ b/dependency-management.html
@@ -1198,7 +1198,7 @@
         <div class="row">
             <p>Copyright &copy;2007&#x2013;2023
 <a href="https://www.apache.org/";>The Apache Software Foundation</a>.
-All rights reserved.        <li id="publishDate" class="pull-right">Last 
Published: 2023-08-15</li>
+All rights reserved.        <li id="publishDate" class="pull-right">Last 
Published: 2023-08-17</li>
 </p>
         </div>
         <p id="poweredBy" class="pull-right"><a 
href="http://maven.apache.org/"; title="Built by Maven" class="poweredBy"><img 
class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" 
/></a>
diff --git a/downloads.html b/downloads.html
index 15cc6e3e494..aef819228c4 100644
--- a/downloads.html
+++ b/downloads.html
@@ -415,7 +415,7 @@
         <div class="row">
             <p>Copyright &copy;2007&#x2013;2023
 <a href="https://www.apache.org/";>The Apache Software Foundation</a>.
-All rights reserved.        <li id="publishDate" class="pull-right">Last 
Published: 2023-08-15</li>
+All rights reserved.        <li id="publishDate" class="pull-right">Last 
Published: 2023-08-17</li>
 </p>
         </div>
         <p id="poweredBy" class="pull-right"><a 
href="http://maven.apache.org/"; title="Built by Maven" class="poweredBy"><img 
class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" 
/></a>
diff --git a/export_control.html b/export_control.html
index f1884df3243..07a2cc39439 100644
--- a/export_control.html
+++ b/export_control.html
@@ -205,7 +205,7 @@ for more details.</p>
         <div class="row">
             <p>Copyright &copy;2007&#x2013;2023
 <a href="https://www.apache.org/";>The Apache Software Foundation</a>.
-All rights reserved.        <li id="publishDate" class="pull-right">Last 
Published: 2023-08-15</li>
+All rights reserved.        <li id="publishDate" class="pull-right">Last 
Published: 2023-08-17</li>
 </p>
         </div>
         <p id="poweredBy" class="pull-right"><a 
href="http://maven.apache.org/"; title="Built by Maven" class="poweredBy"><img 
class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" 
/></a>
diff --git a/index.html b/index.html
index 6d802144e1f..5cdc55743c8 100644
--- a/index.html
+++ b/index.html
@@ -278,7 +278,7 @@
         <div class="row">
             <p>Copyright &copy;2007&#x2013;2023
 <a href="https://www.apache.org/";>The Apache Software Foundation</a>.
-All rights reserved.        <li id="publishDate" class="pull-right">Last 
Published: 2023-08-15</li>
+All rights reserved.        <li id="publishDate" class="pull-right">Last 
Published: 2023-08-17</li>
 </p>
         </div>
         <p id="poweredBy" class="pull-right"><a 
href="http://maven.apache.org/"; title="Built by Maven" class="poweredBy"><img 
class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" 
/></a>
diff --git a/issue-management.html b/issue-management.html
index ca1d875e624..aee66cf4a06 100644
--- a/issue-management.html
+++ b/issue-management.html
@@ -176,7 +176,7 @@
         <div class="row">
             <p>Copyright &copy;2007&#x2013;2023
 <a href="https://www.apache.org/";>The Apache Software Foundation</a>.
-All rights reserved.        <li id="publishDate" class="pull-right">Last 
Published: 2023-08-15</li>
+All rights reserved.        <li id="publishDate" class="pull-right">Last 
Published: 2023-08-17</li>
 </p>
         </div>
         <p id="poweredBy" class="pull-right"><a 
href="http://maven.apache.org/"; title="Built by Maven" class="poweredBy"><img 
class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" 
/></a>
diff --git a/licenses.html b/licenses.html
index a4439fbc2d7..a07ca3cd812 100644
--- a/licenses.html
+++ b/licenses.html
@@ -378,7 +378,7 @@
         <div class="row">
             <p>Copyright &copy;2007&#x2013;2023
 <a href="https://www.apache.org/";>The Apache Software Foundation</a>.
-All rights reserved.        <li id="publishDate" class="pull-right">Last 
Published: 2023-08-15</li>
+All rights reserved.        <li id="publishDate" class="pull-right">Last 
Published: 2023-08-17</li>
 </p>
         </div>
         <p id="poweredBy" class="pull-right"><a 
href="http://maven.apache.org/"; title="Built by Maven" class="poweredBy"><img 
class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" 
/></a>
diff --git a/mailing-lists.html b/mailing-lists.html
index 44a21feab44..0a74cbac2de 100644
--- a/mailing-lists.html
+++ b/mailing-lists.html
@@ -223,7 +223,7 @@
         <div class="row">
             <p>Copyright &copy;2007&#x2013;2023
 <a href="https://www.apache.org/";>The Apache Software Foundation</a>.
-All rights reserved.        <li id="publishDate" class="pull-right">Last 
Published: 2023-08-15</li>
+All rights reserved.        <li id="publishDate" class="pull-right">Last 
Published: 2023-08-17</li>
 </p>
         </div>
         <p id="poweredBy" class="pull-right"><a 
href="http://maven.apache.org/"; title="Built by Maven" class="poweredBy"><img 
class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" 
/></a>
diff --git a/metrics.html b/metrics.html
index bdbc6636c07..c212b2a3447 100644
--- a/metrics.html
+++ b/metrics.html
@@ -327,7 +327,7 @@ export HBASE_REGIONSERVER_OPTS=&quot;$HBASE_JMX_OPTS 
-Dcom.sun.management.jmxrem
         <div class="row">
             <p>Copyright &copy;2007&#x2013;2023
 <a href="https://www.apache.org/";>The Apache Software Foundation</a>.
-All rights reserved.        <li id="publishDate" class="pull-right">Last 
Published: 2023-08-15</li>
+All rights reserved.        <li id="publishDate" class="pull-right">Last 
Published: 2023-08-17</li>
 </p>
         </div>
         <p id="poweredBy" class="pull-right"><a 
href="http://maven.apache.org/"; title="Built by Maven" class="poweredBy"><img 
class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" 
/></a>
diff --git a/old_news.html b/old_news.html
index 654a6b3dcb3..12bdd482106 100644
--- a/old_news.html
+++ b/old_news.html
@@ -324,7 +324,7 @@
         <div class="row">
             <p>Copyright &copy;2007&#x2013;2023
 <a href="https://www.apache.org/";>The Apache Software Foundation</a>.
-All rights reserved.        <li id="publishDate" class="pull-right">Last 
Published: 2023-08-15</li>
+All rights reserved.        <li id="publishDate" class="pull-right">Last 
Published: 2023-08-17</li>
 </p>
         </div>
         <p id="poweredBy" class="pull-right"><a 
href="http://maven.apache.org/"; title="Built by Maven" class="poweredBy"><img 
class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" 
/></a>
diff --git a/plugin-management.html b/plugin-management.html
index 2406a00d792..35e1bdee0be 100644
--- a/plugin-management.html
+++ b/plugin-management.html
@@ -329,7 +329,7 @@
         <div class="row">
             <p>Copyright &copy;2007&#x2013;2023
 <a href="https://www.apache.org/";>The Apache Software Foundation</a>.
-All rights reserved.        <li id="publishDate" class="pull-right">Last 
Published: 2023-08-15</li>
+All rights reserved.        <li id="publishDate" class="pull-right">Last 
Published: 2023-08-17</li>
 </p>
         </div>
         <p id="poweredBy" class="pull-right"><a 
href="http://maven.apache.org/"; title="Built by Maven" class="poweredBy"><img 
class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" 
/></a>
diff --git a/plugins.html b/plugins.html
index a378a34fc1c..9a34426ba8b 100644
--- a/plugins.html
+++ b/plugins.html
@@ -263,7 +263,7 @@
         <div class="row">
             <p>Copyright &copy;2007&#x2013;2023
 <a href="https://www.apache.org/";>The Apache Software Foundation</a>.
-All rights reserved.        <li id="publishDate" class="pull-right">Last 
Published: 2023-08-15</li>
+All rights reserved.        <li id="publishDate" class="pull-right">Last 
Published: 2023-08-17</li>
 </p>
         </div>
         <p id="poweredBy" class="pull-right"><a 
href="http://maven.apache.org/"; title="Built by Maven" class="poweredBy"><img 
class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" 
/></a>
diff --git a/poweredbyhbase.html b/poweredbyhbase.html
index af96f1c8b95..725223a6149 100644
--- a/poweredbyhbase.html
+++ b/poweredbyhbase.html
@@ -658,7 +658,7 @@
         <div class="row">
             <p>Copyright &copy;2007&#x2013;2023
 <a href="https://www.apache.org/";>The Apache Software Foundation</a>.
-All rights reserved.        <li id="publishDate" class="pull-right">Last 
Published: 2023-08-15</li>
+All rights reserved.        <li id="publishDate" class="pull-right">Last 
Published: 2023-08-17</li>
 </p>
         </div>
         <p id="poweredBy" class="pull-right"><a 
href="http://maven.apache.org/"; title="Built by Maven" class="poweredBy"><img 
class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" 
/></a>
diff --git a/project-info.html b/project-info.html
index a10b45ea725..a98ff72300e 100644
--- a/project-info.html
+++ b/project-info.html
@@ -220,7 +220,7 @@
         <div class="row">
             <p>Copyright &copy;2007&#x2013;2023
 <a href="https://www.apache.org/";>The Apache Software Foundation</a>.
-All rights reserved.        <li id="publishDate" class="pull-right">Last 
Published: 2023-08-15</li>
+All rights reserved.        <li id="publishDate" class="pull-right">Last 
Published: 2023-08-17</li>
 </p>
         </div>
         <p id="poweredBy" class="pull-right"><a 
href="http://maven.apache.org/"; title="Built by Maven" class="poweredBy"><img 
class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" 
/></a>
diff --git a/project-reports.html b/project-reports.html
index 8963e0cdfd2..523db9c8d67 100644
--- a/project-reports.html
+++ b/project-reports.html
@@ -193,7 +193,7 @@
         <div class="row">
             <p>Copyright &copy;2007&#x2013;2023
 <a href="https://www.apache.org/";>The Apache Software Foundation</a>.
-All rights reserved.        <li id="publishDate" class="pull-right">Last 
Published: 2023-08-15</li>
+All rights reserved.        <li id="publishDate" class="pull-right">Last 
Published: 2023-08-17</li>
 </p>
         </div>
         <p id="poweredBy" class="pull-right"><a 
href="http://maven.apache.org/"; title="Built by Maven" class="poweredBy"><img 
class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" 
/></a>
diff --git a/pseudo-distributed.html b/pseudo-distributed.html
index ab016f71a2e..04ecc78ed3e 100644
--- a/pseudo-distributed.html
+++ b/pseudo-distributed.html
@@ -182,7 +182,7 @@ Running Apache HBase (TM) in pseudo-distributed mode
         <div class="row">
             <p>Copyright &copy;2007&#x2013;2023
 <a href="https://www.apache.org/";>The Apache Software Foundation</a>.
-All rights reserved.        <li id="publishDate" class="pull-right">Last 
Published: 2023-08-15</li>
+All rights reserved.        <li id="publishDate" class="pull-right">Last 
Published: 2023-08-17</li>
 </p>
         </div>
         <p id="poweredBy" class="pull-right"><a 
href="http://maven.apache.org/"; title="Built by Maven" class="poweredBy"><img 
class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" 
/></a>
diff --git a/replication.html b/replication.html
index 7738b5f45d7..30ce0b85dda 100644
--- a/replication.html
+++ b/replication.html
@@ -177,7 +177,7 @@
         <div class="row">
             <p>Copyright &copy;2007&#x2013;2023
 <a href="https://www.apache.org/";>The Apache Software Foundation</a>.
-All rights reserved.        <li id="publishDate" class="pull-right">Last 
Published: 2023-08-15</li>
+All rights reserved.        <li id="publishDate" class="pull-right">Last 
Published: 2023-08-17</li>
 </p>
         </div>
         <p id="poweredBy" class="pull-right"><a 
href="http://maven.apache.org/"; title="Built by Maven" class="poweredBy"><img 
class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" 
/></a>
diff --git a/resources.html b/resources.html
index 029bc48937d..5b55ec2e0f2 100644
--- a/resources.html
+++ b/resources.html
@@ -200,7 +200,7 @@
         <div class="row">
             <p>Copyright &copy;2007&#x2013;2023
 <a href="https://www.apache.org/";>The Apache Software Foundation</a>.
-All rights reserved.        <li id="publishDate" class="pull-right">Last 
Published: 2023-08-15</li>
+All rights reserved.        <li id="publishDate" class="pull-right">Last 
Published: 2023-08-17</li>
 </p>
         </div>
         <p id="poweredBy" class="pull-right"><a 
href="http://maven.apache.org/"; title="Built by Maven" class="poweredBy"><img 
class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" 
/></a>
diff --git a/scm.html b/scm.html
index 809b6c94bef..01e15c192b7 100644
--- a/scm.html
+++ b/scm.html
@@ -184,7 +184,7 @@
         <div class="row">
             <p>Copyright &copy;2007&#x2013;2023
 <a href="https://www.apache.org/";>The Apache Software Foundation</a>.
-All rights reserved.        <li id="publishDate" class="pull-right">Last 
Published: 2023-08-15</li>
+All rights reserved.        <li id="publishDate" class="pull-right">Last 
Published: 2023-08-17</li>
 </p>
         </div>
         <p id="poweredBy" class="pull-right"><a 
href="http://maven.apache.org/"; title="Built by Maven" class="poweredBy"><img 
class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" 
/></a>
diff --git a/sponsors.html b/sponsors.html
index 0942e94f79b..710984ed34c 100644
--- a/sponsors.html
+++ b/sponsors.html
@@ -206,7 +206,7 @@
         <div class="row">
             <p>Copyright &copy;2007&#x2013;2023
 <a href="https://www.apache.org/";>The Apache Software Foundation</a>.
-All rights reserved.        <li id="publishDate" class="pull-right">Last 
Published: 2023-08-15</li>
+All rights reserved.        <li id="publishDate" class="pull-right">Last 
Published: 2023-08-17</li>
 </p>
         </div>
         <p id="poweredBy" class="pull-right"><a 
href="http://maven.apache.org/"; title="Built by Maven" class="poweredBy"><img 
class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" 
/></a>
diff --git a/summary.html b/summary.html
index 4ce9bd85afc..b1bad41da57 100644
--- a/summary.html
+++ b/summary.html
@@ -217,7 +217,7 @@
         <div class="row">
             <p>Copyright &copy;2007&#x2013;2023
 <a href="https://www.apache.org/";>The Apache Software Foundation</a>.
-All rights reserved.        <li id="publishDate" class="pull-right">Last 
Published: 2023-08-15</li>
+All rights reserved.        <li id="publishDate" class="pull-right">Last 
Published: 2023-08-17</li>
 </p>
         </div>
         <p id="poweredBy" class="pull-right"><a 
href="http://maven.apache.org/"; title="Built by Maven" class="poweredBy"><img 
class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" 
/></a>
diff --git a/supportingprojects.html b/supportingprojects.html
index 670a39557fb..b3d679e2b03 100644
--- a/supportingprojects.html
+++ b/supportingprojects.html
@@ -396,7 +396,7 @@
         <div class="row">
             <p>Copyright &copy;2007&#x2013;2023
 <a href="https://www.apache.org/";>The Apache Software Foundation</a>.
-All rights reserved.        <li id="publishDate" class="pull-right">Last 
Published: 2023-08-15</li>
+All rights reserved.        <li id="publishDate" class="pull-right">Last 
Published: 2023-08-17</li>
 </p>
         </div>
         <p id="poweredBy" class="pull-right"><a 
href="http://maven.apache.org/"; title="Built by Maven" class="poweredBy"><img 
class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" 
/></a>
diff --git a/team.html b/team.html
index a4aea4c1461..9fc089bce9e 100644
--- a/team.html
+++ b/team.html
@@ -797,7 +797,7 @@
         <div class="row">
             <p>Copyright &copy;2007&#x2013;2023
 <a href="https://www.apache.org/";>The Apache Software Foundation</a>.
-All rights reserved.        <li id="publishDate" class="pull-right">Last 
Published: 2023-08-15</li>
+All rights reserved.        <li id="publishDate" class="pull-right">Last 
Published: 2023-08-17</li>
 </p>
         </div>
         <p id="poweredBy" class="pull-right"><a 
href="http://maven.apache.org/"; title="Built by Maven" class="poweredBy"><img 
class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" 
/></a>
diff --git a/testdevapidocs/org/apache/hadoop/hbase/backup/package-tree.html 
b/testdevapidocs/org/apache/hadoop/hbase/backup/package-tree.html
index 413130f4748..108754cc057 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/backup/package-tree.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/backup/package-tree.html
@@ -150,8 +150,8 @@
 <ul>
 <li type="circle">java.lang.<a 
href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true";
 title="class or interface in java.lang"><span 
class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a 
href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true";
 title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a 
href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true
 [...]
 <ul>
-<li type="circle">org.apache.hadoop.hbase.backup.<a 
href="../../../../../org/apache/hadoop/hbase/backup/TestBackupDeleteWithFailures.Failure.html"
 title="enum in org.apache.hadoop.hbase.backup"><span 
class="typeNameLink">TestBackupDeleteWithFailures.Failure</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.backup.<a 
href="../../../../../org/apache/hadoop/hbase/backup/TestIncrementalBackupMergeWithFailures.FailurePhase.html"
 title="enum in org.apache.hadoop.hbase.backup"><span 
class="typeNameLink">TestIncrementalBackupMergeWithFailures.FailurePhase</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.backup.<a 
href="../../../../../org/apache/hadoop/hbase/backup/TestBackupDeleteWithFailures.Failure.html"
 title="enum in org.apache.hadoop.hbase.backup"><span 
class="typeNameLink">TestBackupDeleteWithFailures.Failure</span></a></li>
 </ul>
 </li>
 </ul>
diff --git a/testdevapidocs/org/apache/hadoop/hbase/io/hfile/package-tree.html 
b/testdevapidocs/org/apache/hadoop/hbase/io/hfile/package-tree.html
index dd196b6b5bf..7a394ea8eb0 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/io/hfile/package-tree.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/io/hfile/package-tree.html
@@ -174,8 +174,8 @@
 <ul>
 <li type="circle">java.lang.<a 
href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true";
 title="class or interface in java.lang"><span 
class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a 
href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true";
 title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a 
href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true
 [...]
 <ul>
-<li type="circle">org.apache.hadoop.hbase.io.hfile.<a 
href="../../../../../../org/apache/hadoop/hbase/io/hfile/TestCacheOnWrite.CacheOnWriteType.html"
 title="enum in org.apache.hadoop.hbase.io.hfile"><span 
class="typeNameLink">TestCacheOnWrite.CacheOnWriteType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.io.hfile.<a 
href="../../../../../../org/apache/hadoop/hbase/io/hfile/TagUsage.html" 
title="enum in org.apache.hadoop.hbase.io.hfile"><span 
class="typeNameLink">TagUsage</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.io.hfile.<a 
href="../../../../../../org/apache/hadoop/hbase/io/hfile/TestCacheOnWrite.CacheOnWriteType.html"
 title="enum in org.apache.hadoop.hbase.io.hfile"><span 
class="typeNameLink">TestCacheOnWrite.CacheOnWriteType</span></a></li>
 </ul>
 </li>
 </ul>
diff --git a/testdevapidocs/org/apache/hadoop/hbase/package-tree.html 
b/testdevapidocs/org/apache/hadoop/hbase/package-tree.html
index 17d760ac474..1ea19ca234b 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/package-tree.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/package-tree.html
@@ -690,20 +690,20 @@
 <ul>
 <li type="circle">java.lang.<a 
href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true";
 title="class or interface in java.lang"><span 
class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a 
href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true";
 title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a 
href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true
 [...]
 <ul>
-<li type="circle">org.apache.hadoop.hbase.<a 
href="../../../../org/apache/hadoop/hbase/ScanPerformanceEvaluation.ScanCounter.html"
 title="enum in org.apache.hadoop.hbase"><span 
class="typeNameLink">ScanPerformanceEvaluation.ScanCounter</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.<a 
href="../../../../org/apache/hadoop/hbase/TestCustomPriorityRpcControllerFactory.State.html"
 title="enum in org.apache.hadoop.hbase"><span 
class="typeNameLink">TestCustomPriorityRpcControllerFactory.State</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.<a 
href="../../../../org/apache/hadoop/hbase/ClusterManager.ServiceType.html" 
title="enum in org.apache.hadoop.hbase"><span 
class="typeNameLink">ClusterManager.ServiceType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.<a 
href="../../../../org/apache/hadoop/hbase/HBaseClusterManager.CommandProvider.Operation.html"
 title="enum in org.apache.hadoop.hbase"><span 
class="typeNameLink">HBaseClusterManager.CommandProvider.Operation</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.<a 
href="../../../../org/apache/hadoop/hbase/RESTApiClusterManager.RoleCommand.html"
 title="enum in org.apache.hadoop.hbase"><span 
class="typeNameLink">RESTApiClusterManager.RoleCommand</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.<a 
href="../../../../org/apache/hadoop/hbase/PerformanceEvaluation.Counter.html" 
title="enum in org.apache.hadoop.hbase"><span 
class="typeNameLink">PerformanceEvaluation.Counter</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.<a 
href="../../../../org/apache/hadoop/hbase/IntegrationTestDDLMasterFailover.ACTION.html"
 title="enum in org.apache.hadoop.hbase"><span 
class="typeNameLink">IntegrationTestDDLMasterFailover.ACTION</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.<a 
href="../../../../org/apache/hadoop/hbase/ClusterManager.ServiceType.html" 
title="enum in org.apache.hadoop.hbase"><span 
class="typeNameLink">ClusterManager.ServiceType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.<a 
href="../../../../org/apache/hadoop/hbase/ScanPerformanceEvaluation.ScanCounter.html"
 title="enum in org.apache.hadoop.hbase"><span 
class="typeNameLink">ScanPerformanceEvaluation.ScanCounter</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.<a 
href="../../../../org/apache/hadoop/hbase/RESTApiClusterManager.RoleState.html" 
title="enum in org.apache.hadoop.hbase"><span 
class="typeNameLink">RESTApiClusterManager.RoleState</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.<a 
href="../../../../org/apache/hadoop/hbase/ZNodeClusterManager.CmdType.html" 
title="enum in org.apache.hadoop.hbase"><span 
class="typeNameLink">ZNodeClusterManager.CmdType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.<a 
href="../../../../org/apache/hadoop/hbase/ResourceChecker.Phase.html" 
title="enum in org.apache.hadoop.hbase"><span 
class="typeNameLink">ResourceChecker.Phase</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.<a 
href="../../../../org/apache/hadoop/hbase/RESTApiClusterManager.Service.html" 
title="enum in org.apache.hadoop.hbase"><span 
class="typeNameLink">RESTApiClusterManager.Service</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.<a 
href="../../../../org/apache/hadoop/hbase/IntegrationTestRegionReplicaPerf.Stat.html"
 title="enum in org.apache.hadoop.hbase"><span 
class="typeNameLink">IntegrationTestRegionReplicaPerf.Stat</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.<a 
href="../../../../org/apache/hadoop/hbase/PerformanceEvaluation.Counter.html" 
title="enum in org.apache.hadoop.hbase"><span 
class="typeNameLink">PerformanceEvaluation.Counter</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.<a 
href="../../../../org/apache/hadoop/hbase/RESTApiClusterManager.HealthSummary.html"
 title="enum in org.apache.hadoop.hbase"><span 
class="typeNameLink">RESTApiClusterManager.HealthSummary</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.<a 
href="../../../../org/apache/hadoop/hbase/HBaseClusterManager.Signal.html" 
title="enum in org.apache.hadoop.hbase"><span 
class="typeNameLink">HBaseClusterManager.Signal</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.<a 
href="../../../../org/apache/hadoop/hbase/ZNodeClusterManager.CmdType.html" 
title="enum in org.apache.hadoop.hbase"><span 
class="typeNameLink">ZNodeClusterManager.CmdType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.<a 
href="../../../../org/apache/hadoop/hbase/IntegrationTestRegionReplicaPerf.Stat.html"
 title="enum in org.apache.hadoop.hbase"><span 
class="typeNameLink">IntegrationTestRegionReplicaPerf.Stat</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.<a 
href="../../../../org/apache/hadoop/hbase/RESTApiClusterManager.Service.html" 
title="enum in org.apache.hadoop.hbase"><span 
class="typeNameLink">RESTApiClusterManager.Service</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.<a 
href="../../../../org/apache/hadoop/hbase/TestCustomPriorityRpcControllerFactory.State.html"
 title="enum in org.apache.hadoop.hbase"><span 
class="typeNameLink">TestCustomPriorityRpcControllerFactory.State</span></a></li>
 </ul>
 </li>
 </ul>
diff --git 
a/testdevapidocs/org/apache/hadoop/hbase/procedure2/package-tree.html 
b/testdevapidocs/org/apache/hadoop/hbase/procedure2/package-tree.html
index 3d809ba5304..4e1571655ec 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/procedure2/package-tree.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/procedure2/package-tree.html
@@ -242,9 +242,9 @@
 <li type="circle">java.lang.<a 
href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true";
 title="class or interface in java.lang"><span 
class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a 
href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true";
 title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a 
href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true
 [...]
 <ul>
 <li type="circle">org.apache.hadoop.hbase.procedure2.<a 
href="../../../../../org/apache/hadoop/hbase/procedure2/TestYieldProcedures.TestStateMachineProcedure.State.html"
 title="enum in org.apache.hadoop.hbase.procedure2"><span 
class="typeNameLink">TestYieldProcedures.TestStateMachineProcedure.State</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.procedure2.<a 
href="../../../../../org/apache/hadoop/hbase/procedure2/TestProcedureBypass.StuckStateMachineState.html"
 title="enum in org.apache.hadoop.hbase.procedure2"><span 
class="typeNameLink">TestProcedureBypass.StuckStateMachineState</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.procedure2.<a 
href="../../../../../org/apache/hadoop/hbase/procedure2/TestProcedureRecovery.TestStateMachineProcedure.State.html"
 title="enum in org.apache.hadoop.hbase.procedure2"><span 
class="typeNameLink">TestProcedureRecovery.TestStateMachineProcedure.State</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.procedure2.<a 
href="../../../../../org/apache/hadoop/hbase/procedure2/TestStateMachineProcedure.TestSMProcedureState.html"
 title="enum in org.apache.hadoop.hbase.procedure2"><span 
class="typeNameLink">TestStateMachineProcedure.TestSMProcedureState</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.procedure2.<a 
href="../../../../../org/apache/hadoop/hbase/procedure2/TestProcedureBypass.StuckStateMachineState.html"
 title="enum in org.apache.hadoop.hbase.procedure2"><span 
class="typeNameLink">TestProcedureBypass.StuckStateMachineState</span></a></li>
 </ul>
 </li>
 </ul>
diff --git 
a/testdevapidocs/org/apache/hadoop/hbase/quotas/TestClusterScopeQuotaThrottle.html
 
b/testdevapidocs/org/apache/hadoop/hbase/quotas/TestClusterScopeQuotaThrottle.html
index bf0f9edfc7b..999bdcfdebd 100644
--- 
a/testdevapidocs/org/apache/hadoop/hbase/quotas/TestClusterScopeQuotaThrottle.html
+++ 
b/testdevapidocs/org/apache/hadoop/hbase/quotas/TestClusterScopeQuotaThrottle.html
@@ -109,7 +109,7 @@ var activeTableTab = "activeTableTab";
 <li class="blockList">
 <hr>
 <br>
-<pre>public class <a 
href="../../../../../src-html/org/apache/hadoop/hbase/quotas/TestClusterScopeQuotaThrottle.html#line.50">TestClusterScopeQuotaThrottle</a>
+<pre>public class <a 
href="../../../../../src-html/org/apache/hadoop/hbase/quotas/TestClusterScopeQuotaThrottle.html#line.49">TestClusterScopeQuotaThrottle</a>
 extends <a 
href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true";
 title="class or interface in java.lang">Object</a></pre>
 </li>
 </ul>
@@ -265,7 +265,7 @@ extends <a 
href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>CLASS_RULE</h4>
-<pre>public static final&nbsp;<a 
href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" 
title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a> <a 
href="../../../../../src-html/org/apache/hadoop/hbase/quotas/TestClusterScopeQuotaThrottle.html#line.53">CLASS_RULE</a></pre>
+<pre>public static final&nbsp;<a 
href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" 
title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a> <a 
href="../../../../../src-html/org/apache/hadoop/hbase/quotas/TestClusterScopeQuotaThrottle.html#line.52">CLASS_RULE</a></pre>
 </li>
 </ul>
 <a name="REFRESH_TIME">
@@ -274,7 +274,7 @@ extends <a 
href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>REFRESH_TIME</h4>
-<pre>private static final&nbsp;int <a 
href="../../../../../src-html/org/apache/hadoop/hbase/quotas/TestClusterScopeQuotaThrottle.html#line.56">REFRESH_TIME</a></pre>
+<pre>private static final&nbsp;int <a 
href="../../../../../src-html/org/apache/hadoop/hbase/quotas/TestClusterScopeQuotaThrottle.html#line.55">REFRESH_TIME</a></pre>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
 <dd><a 
href="../../../../../constant-values.html#org.apache.hadoop.hbase.quotas.TestClusterScopeQuotaThrottle.REFRESH_TIME">Constant
 Field Values</a></dd>
@@ -287,7 +287,7 @@ extends <a 
href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>TEST_UTIL</h4>
-<pre>private static final&nbsp;<a 
href="../../../../../org/apache/hadoop/hbase/HBaseTestingUtil.html" 
title="class in org.apache.hadoop.hbase">HBaseTestingUtil</a> <a 
href="../../../../../src-html/org/apache/hadoop/hbase/quotas/TestClusterScopeQuotaThrottle.html#line.57">TEST_UTIL</a></pre>
+<pre>private static final&nbsp;<a 
href="../../../../../org/apache/hadoop/hbase/HBaseTestingUtil.html" 
title="class in org.apache.hadoop.hbase">HBaseTestingUtil</a> <a 
href="../../../../../src-html/org/apache/hadoop/hbase/quotas/TestClusterScopeQuotaThrottle.html#line.56">TEST_UTIL</a></pre>
 </li>
 </ul>
 <a name="TABLE_NAMES">
@@ -296,7 +296,7 @@ extends <a 
href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>TABLE_NAMES</h4>
-<pre>private static final&nbsp;org.apache.hadoop.hbase.TableName[] <a 
href="../../../../../src-html/org/apache/hadoop/hbase/quotas/TestClusterScopeQuotaThrottle.html#line.59">TABLE_NAMES</a></pre>
+<pre>private static final&nbsp;org.apache.hadoop.hbase.TableName[] <a 
href="../../../../../src-html/org/apache/hadoop/hbase/quotas/TestClusterScopeQuotaThrottle.html#line.58">TABLE_NAMES</a></pre>
 </li>
 </ul>
 <a name="FAMILY">
@@ -305,7 +305,7 @@ extends <a 
href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>FAMILY</h4>
-<pre>private static final&nbsp;byte[] <a 
href="../../../../../src-html/org/apache/hadoop/hbase/quotas/TestClusterScopeQuotaThrottle.html#line.62">FAMILY</a></pre>
+<pre>private static final&nbsp;byte[] <a 
href="../../../../../src-html/org/apache/hadoop/hbase/quotas/TestClusterScopeQuotaThrottle.html#line.61">FAMILY</a></pre>
 </li>
 </ul>
 <a name="QUALIFIER">
@@ -314,7 +314,7 @@ extends <a 
href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>QUALIFIER</h4>
-<pre>private static final&nbsp;byte[] <a 
href="../../../../../src-html/org/apache/hadoop/hbase/quotas/TestClusterScopeQuotaThrottle.html#line.63">QUALIFIER</a></pre>
+<pre>private static final&nbsp;byte[] <a 
href="../../../../../src-html/org/apache/hadoop/hbase/quotas/TestClusterScopeQuotaThrottle.html#line.62">QUALIFIER</a></pre>
 </li>
 </ul>
 <a name="SPLITS">
@@ -323,7 +323,7 @@ extends <a 
href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>SPLITS</h4>
-<pre>private static final&nbsp;byte[][] <a 
href="../../../../../src-html/org/apache/hadoop/hbase/quotas/TestClusterScopeQuotaThrottle.html#line.64">SPLITS</a></pre>
+<pre>private static final&nbsp;byte[][] <a 
href="../../../../../src-html/org/apache/hadoop/hbase/quotas/TestClusterScopeQuotaThrottle.html#line.63">SPLITS</a></pre>
 </li>
 </ul>
 <a name="tables">
@@ -332,7 +332,7 @@ extends <a 
href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>tables</h4>
-<pre>private static&nbsp;org.apache.hadoop.hbase.client.Table[] <a 
href="../../../../../src-html/org/apache/hadoop/hbase/quotas/TestClusterScopeQuotaThrottle.html#line.65">tables</a></pre>
+<pre>private static&nbsp;org.apache.hadoop.hbase.client.Table[] <a 
href="../../../../../src-html/org/apache/hadoop/hbase/quotas/TestClusterScopeQuotaThrottle.html#line.64">tables</a></pre>
 </li>
 </ul>
 <a name="NAMESPACE">
@@ -341,7 +341,7 @@ extends <a 
href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>NAMESPACE</h4>
-<pre>private static final&nbsp;<a 
href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true";
 title="class or interface in java.lang">String</a> <a 
href="../../../../../src-html/org/apache/hadoop/hbase/quotas/TestClusterScopeQuotaThrottle.html#line.67">NAMESPACE</a></pre>
+<pre>private static final&nbsp;<a 
href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true";
 title="class or interface in java.lang">String</a> <a 
href="../../../../../src-html/org/apache/hadoop/hbase/quotas/TestClusterScopeQuotaThrottle.html#line.66">NAMESPACE</a></pre>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
 <dd><a 
href="../../../../../constant-values.html#org.apache.hadoop.hbase.quotas.TestClusterScopeQuotaThrottle.NAMESPACE">Constant
 Field Values</a></dd>
@@ -354,7 +354,7 @@ extends <a 
href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>TABLE_NAME</h4>
-<pre>private static final&nbsp;org.apache.hadoop.hbase.TableName <a 
href="../../../../../src-html/org/apache/hadoop/hbase/quotas/TestClusterScopeQuotaThrottle.html#line.68">TABLE_NAME</a></pre>
+<pre>private static final&nbsp;org.apache.hadoop.hbase.TableName <a 
href="../../../../../src-html/org/apache/hadoop/hbase/quotas/TestClusterScopeQuotaThrottle.html#line.67">TABLE_NAME</a></pre>
 </li>
 </ul>
 <a name="table">
@@ -363,7 +363,7 @@ extends <a 
href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockListLast">
 <li class="blockList">
 <h4>table</h4>
-<pre>private static&nbsp;org.apache.hadoop.hbase.client.Table <a 
href="../../../../../src-html/org/apache/hadoop/hbase/quotas/TestClusterScopeQuotaThrottle.html#line.69">table</a></pre>
+<pre>private static&nbsp;org.apache.hadoop.hbase.client.Table <a 
href="../../../../../src-html/org/apache/hadoop/hbase/quotas/TestClusterScopeQuotaThrottle.html#line.68">table</a></pre>
 </li>
 </ul>
 </li>
@@ -380,7 +380,7 @@ extends <a 
href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockListLast">
 <li class="blockList">
 <h4>TestClusterScopeQuotaThrottle</h4>
-<pre>public&nbsp;<a 
href="../../../../../src-html/org/apache/hadoop/hbase/quotas/TestClusterScopeQuotaThrottle.html#line.50">TestClusterScopeQuotaThrottle</a>()</pre>
+<pre>public&nbsp;<a 
href="../../../../../src-html/org/apache/hadoop/hbase/quotas/TestClusterScopeQuotaThrottle.html#line.49">TestClusterScopeQuotaThrottle</a>()</pre>
 </li>
 </ul>
 </li>
@@ -397,7 +397,7 @@ extends <a 
href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>setUpBeforeClass</h4>
-<pre>public static&nbsp;void&nbsp;<a 
href="../../../../../src-html/org/apache/hadoop/hbase/quotas/TestClusterScopeQuotaThrottle.html#line.72">setUpBeforeClass</a>()
+<pre>public static&nbsp;void&nbsp;<a 
href="../../../../../src-html/org/apache/hadoop/hbase/quotas/TestClusterScopeQuotaThrottle.html#line.71">setUpBeforeClass</a>()
                              throws <a 
href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true";
 title="class or interface in java.lang">Exception</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -411,7 +411,7 @@ extends <a 
href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>tearDownAfterClass</h4>
-<pre>public static&nbsp;void&nbsp;<a 
href="../../../../../src-html/org/apache/hadoop/hbase/quotas/TestClusterScopeQuotaThrottle.html#line.95">tearDownAfterClass</a>()
+<pre>public static&nbsp;void&nbsp;<a 
href="../../../../../src-html/org/apache/hadoop/hbase/quotas/TestClusterScopeQuotaThrottle.html#line.97">tearDownAfterClass</a>()
                                throws <a 
href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true";
 title="class or interface in java.lang">Exception</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -425,7 +425,7 @@ extends <a 
href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>tearDown</h4>
-<pre>public&nbsp;void&nbsp;<a 
href="../../../../../src-html/org/apache/hadoop/hbase/quotas/TestClusterScopeQuotaThrottle.html#line.109">tearDown</a>()
+<pre>public&nbsp;void&nbsp;<a 
href="../../../../../src-html/org/apache/hadoop/hbase/quotas/TestClusterScopeQuotaThrottle.html#line.111">tearDown</a>()
               throws <a 
href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true";
 title="class or interface in java.lang">Exception</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -439,7 +439,7 @@ extends <a 
href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>testNamespaceClusterScopeQuota</h4>
-<pre>public&nbsp;void&nbsp;<a 
href="../../../../../src-html/org/apache/hadoop/hbase/quotas/TestClusterScopeQuotaThrottle.html#line.114">testNamespaceClusterScopeQuota</a>()
+<pre>public&nbsp;void&nbsp;<a 
href="../../../../../src-html/org/apache/hadoop/hbase/quotas/TestClusterScopeQuotaThrottle.html#line.116">testNamespaceClusterScopeQuota</a>()
                                     throws <a 
href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true";
 title="class or interface in java.lang">Exception</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -453,7 +453,7 @@ extends <a 
href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>testTableClusterScopeQuota</h4>
-<pre>public&nbsp;void&nbsp;<a 
href="../../../../../src-html/org/apache/hadoop/hbase/quotas/TestClusterScopeQuotaThrottle.html#line.134">testTableClusterScopeQuota</a>()
+<pre>public&nbsp;void&nbsp;<a 
href="../../../../../src-html/org/apache/hadoop/hbase/quotas/TestClusterScopeQuotaThrottle.html#line.136">testTableClusterScopeQuota</a>()
                                 throws <a 
href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true";
 title="class or interface in java.lang">Exception</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -467,7 +467,7 @@ extends <a 
href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>testUserClusterScopeQuota</h4>
-<pre>public&nbsp;void&nbsp;<a 
href="../../../../../src-html/org/apache/hadoop/hbase/quotas/TestClusterScopeQuotaThrottle.html#line.164">testUserClusterScopeQuota</a>()
+<pre>public&nbsp;void&nbsp;<a 
href="../../../../../src-html/org/apache/hadoop/hbase/quotas/TestClusterScopeQuotaThrottle.html#line.166">testUserClusterScopeQuota</a>()
                                throws <a 
href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true";
 title="class or interface in java.lang">Exception</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -481,7 +481,7 @@ extends <a 
href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>testUserNamespaceClusterScopeQuota</h4>
-<pre>public&nbsp;void&nbsp;<a 
href="../../../../../src-html/org/apache/hadoop/hbase/quotas/TestClusterScopeQuotaThrottle.html#line.185">testUserNamespaceClusterScopeQuota</a>()
+<pre>public&nbsp;void&nbsp;<a 
href="../../../../../src-html/org/apache/hadoop/hbase/quotas/TestClusterScopeQuotaThrottle.html#line.186">testUserNamespaceClusterScopeQuota</a>()
                                         throws <a 
href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true";
 title="class or interface in java.lang">Exception</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -495,7 +495,7 @@ extends <a 
href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockListLast">
 <li class="blockList">
 <h4>testUserTableClusterScopeQuota</h4>
-<pre>public&nbsp;void&nbsp;<a 
href="../../../../../src-html/org/apache/hadoop/hbase/quotas/TestClusterScopeQuotaThrottle.html#line.207">testUserTableClusterScopeQuota</a>()
+<pre>public&nbsp;void&nbsp;<a 
href="../../../../../src-html/org/apache/hadoop/hbase/quotas/TestClusterScopeQuotaThrottle.html#line.208">testUserTableClusterScopeQuota</a>()
                                     throws <a 
href="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true";
 title="class or interface in java.lang">Exception</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
diff --git 
a/testdevapidocs/org/apache/hadoop/hbase/regionserver/package-tree.html 
b/testdevapidocs/org/apache/hadoop/hbase/regionserver/package-tree.html
index a33111e2fb5..1dcf1b11729 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/regionserver/package-tree.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/regionserver/package-tree.html
@@ -771,12 +771,12 @@
 <ul>
 <li type="circle">java.lang.<a 
href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true";
 title="class or interface in java.lang"><span 
class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a 
href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true";
 title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a 
href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true
 [...]
 <ul>
-<li type="circle">org.apache.hadoop.hbase.regionserver.<a 
href="../../../../../org/apache/hadoop/hbase/regionserver/TestCompactionState.StateSource.html"
 title="enum in org.apache.hadoop.hbase.regionserver"><span 
class="typeNameLink">TestCompactionState.StateSource</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.regionserver.<a 
href="../../../../../org/apache/hadoop/hbase/regionserver/TestAtomicOperation.TestStep.html"
 title="enum in org.apache.hadoop.hbase.regionserver"><span 
class="typeNameLink">TestAtomicOperation.TestStep</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.regionserver.<a 
href="../../../../../org/apache/hadoop/hbase/regionserver/TestMultiLogThreshold.ActionType.html"
 title="enum in org.apache.hadoop.hbase.regionserver"><span 
class="typeNameLink">TestMultiLogThreshold.ActionType</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.regionserver.<a 
href="../../../../../org/apache/hadoop/hbase/regionserver/DataBlockEncodingTool.Manipulation.html"
 title="enum in org.apache.hadoop.hbase.regionserver"><span 
class="typeNameLink">DataBlockEncodingTool.Manipulation</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.regionserver.<a 
href="../../../../../org/apache/hadoop/hbase/regionserver/TestRegionServerReadRequestMetrics.Metric.html"
 title="enum in org.apache.hadoop.hbase.regionserver"><span 
class="typeNameLink">TestRegionServerReadRequestMetrics.Metric</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.regionserver.<a 
href="../../../../../org/apache/hadoop/hbase/regionserver/DataBlockEncodingTool.Manipulation.html"
 title="enum in org.apache.hadoop.hbase.regionserver"><span 
class="typeNameLink">DataBlockEncodingTool.Manipulation</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.regionserver.<a 
href="../../../../../org/apache/hadoop/hbase/regionserver/TestMultiLogThreshold.ActionType.html"
 title="enum in org.apache.hadoop.hbase.regionserver"><span 
class="typeNameLink">TestMultiLogThreshold.ActionType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.regionserver.<a 
href="../../../../../org/apache/hadoop/hbase/regionserver/TestAtomicOperation.TestStep.html"
 title="enum in org.apache.hadoop.hbase.regionserver"><span 
class="typeNameLink">TestAtomicOperation.TestStep</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.regionserver.<a 
href="../../../../../org/apache/hadoop/hbase/regionserver/TestCacheOnWriteInSchema.CacheOnWriteType.html"
 title="enum in org.apache.hadoop.hbase.regionserver"><span 
class="typeNameLink">TestCacheOnWriteInSchema.CacheOnWriteType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.regionserver.<a 
href="../../../../../org/apache/hadoop/hbase/regionserver/TestCompactionState.StateSource.html"
 title="enum in org.apache.hadoop.hbase.regionserver"><span 
class="typeNameLink">TestCompactionState.StateSource</span></a></li>
 </ul>
 </li>
 </ul>
diff --git a/testdevapidocs/org/apache/hadoop/hbase/test/package-tree.html 
b/testdevapidocs/org/apache/hadoop/hbase/test/package-tree.html
index b196450e5e3..cfb3b674597 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/test/package-tree.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/test/package-tree.html
@@ -260,11 +260,11 @@
 <ul>
 <li type="circle">java.lang.<a 
href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true";
 title="class or interface in java.lang"><span 
class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a 
href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true";
 title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a 
href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true
 [...]
 <ul>
-<li type="circle">org.apache.hadoop.hbase.test.<a 
href="../../../../../org/apache/hadoop/hbase/test/IntegrationTestBigLinkedList.Generator.GeneratorCounts.html"
 title="enum in org.apache.hadoop.hbase.test"><span 
class="typeNameLink">IntegrationTestBigLinkedList.Generator.GeneratorCounts</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.test.<a 
href="../../../../../org/apache/hadoop/hbase/test/IntegrationTestBigLinkedList.Verify.VerifyCounts.html"
 title="enum in org.apache.hadoop.hbase.test"><span 
class="typeNameLink">IntegrationTestBigLinkedList.Verify.VerifyCounts</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.test.<a 
href="../../../../../org/apache/hadoop/hbase/test/IntegrationTestWithCellVisibilityLoadAndVerify.Counters.html"
 title="enum in org.apache.hadoop.hbase.test"><span 
class="typeNameLink">IntegrationTestWithCellVisibilityLoadAndVerify.Counters</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.test.<a 
href="../../../../../org/apache/hadoop/hbase/test/IntegrationTestLoadCommonCrawl.Counts.html"
 title="enum in org.apache.hadoop.hbase.test"><span 
class="typeNameLink">IntegrationTestLoadCommonCrawl.Counts</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.test.<a 
href="../../../../../org/apache/hadoop/hbase/test/IntegrationTestLoadAndVerify.Counters.html"
 title="enum in org.apache.hadoop.hbase.test"><span 
class="typeNameLink">IntegrationTestLoadAndVerify.Counters</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.test.<a 
href="../../../../../org/apache/hadoop/hbase/test/IntegrationTestBigLinkedList.Generator.GeneratorCounts.html"
 title="enum in org.apache.hadoop.hbase.test"><span 
class="typeNameLink">IntegrationTestBigLinkedList.Generator.GeneratorCounts</span></a></li>
 </ul>
 </li>
 </ul>
diff --git 
a/testdevapidocs/org/apache/hadoop/hbase/util/bulkdatagenerator/package-tree.html
 
b/testdevapidocs/org/apache/hadoop/hbase/util/bulkdatagenerator/package-tree.html
index 09a64f2742b..7a00a446ef4 100644
--- 
a/testdevapidocs/org/apache/hadoop/hbase/util/bulkdatagenerator/package-tree.html
+++ 
b/testdevapidocs/org/apache/hadoop/hbase/util/bulkdatagenerator/package-tree.html
@@ -112,8 +112,8 @@
 <ul>
 <li type="circle">java.lang.<a 
href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true";
 title="class or interface in java.lang"><span 
class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a 
href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true";
 title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a 
href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true
 [...]
 <ul>
-<li type="circle">org.apache.hadoop.hbase.util.bulkdatagenerator.<a 
href="../../../../../../org/apache/hadoop/hbase/util/bulkdatagenerator/Utility.TableColumnNames.html"
 title="enum in org.apache.hadoop.hbase.util.bulkdatagenerator"><span 
class="typeNameLink">Utility.TableColumnNames</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.util.bulkdatagenerator.<a 
href="../../../../../../org/apache/hadoop/hbase/util/bulkdatagenerator/BulkDataGeneratorMapper.Counters.html"
 title="enum in org.apache.hadoop.hbase.util.bulkdatagenerator"><span 
class="typeNameLink">BulkDataGeneratorMapper.Counters</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.util.bulkdatagenerator.<a 
href="../../../../../../org/apache/hadoop/hbase/util/bulkdatagenerator/Utility.TableColumnNames.html"
 title="enum in org.apache.hadoop.hbase.util.bulkdatagenerator"><span 
class="typeNameLink">Utility.TableColumnNames</span></a></li>
 </ul>
 </li>
 </ul>
diff --git 
a/testdevapidocs/src-html/org/apache/hadoop/hbase/quotas/TestClusterScopeQuotaThrottle.html
 
b/testdevapidocs/src-html/org/apache/hadoop/hbase/quotas/TestClusterScopeQuotaThrottle.html
index 7f9e049938f..aa9207978a4 100644
--- 
a/testdevapidocs/src-html/org/apache/hadoop/hbase/quotas/TestClusterScopeQuotaThrottle.html
+++ 
b/testdevapidocs/src-html/org/apache/hadoop/hbase/quotas/TestClusterScopeQuotaThrottle.html
@@ -36,212 +36,213 @@
 <span class="sourceLineNo">028</span>import java.util.concurrent.TimeUnit;<a 
name="line.28"></a>
 <span class="sourceLineNo">029</span>import 
org.apache.hadoop.hbase.HBaseClassTestRule;<a name="line.29"></a>
 <span class="sourceLineNo">030</span>import 
org.apache.hadoop.hbase.HBaseTestingUtil;<a name="line.30"></a>
-<span class="sourceLineNo">031</span>import 
org.apache.hadoop.hbase.HConstants;<a name="line.31"></a>
-<span class="sourceLineNo">032</span>import 
org.apache.hadoop.hbase.NamespaceDescriptor;<a name="line.32"></a>
-<span class="sourceLineNo">033</span>import 
org.apache.hadoop.hbase.TableName;<a name="line.33"></a>
-<span class="sourceLineNo">034</span>import 
org.apache.hadoop.hbase.client.Admin;<a name="line.34"></a>
-<span class="sourceLineNo">035</span>import 
org.apache.hadoop.hbase.client.Table;<a name="line.35"></a>
-<span class="sourceLineNo">036</span>import 
org.apache.hadoop.hbase.security.User;<a name="line.36"></a>
-<span class="sourceLineNo">037</span>import 
org.apache.hadoop.hbase.testclassification.LargeTests;<a name="line.37"></a>
-<span class="sourceLineNo">038</span>import 
org.apache.hadoop.hbase.testclassification.RegionServerTests;<a 
name="line.38"></a>
-<span class="sourceLineNo">039</span>import 
org.apache.hadoop.hbase.util.Bytes;<a name="line.39"></a>
-<span class="sourceLineNo">040</span>import 
org.apache.hadoop.hbase.util.EnvironmentEdgeManager;<a name="line.40"></a>
-<span class="sourceLineNo">041</span>import 
org.apache.hadoop.hbase.util.JVMClusterUtil.RegionServerThread;<a 
name="line.41"></a>
-<span class="sourceLineNo">042</span>import org.junit.After;<a 
name="line.42"></a>
-<span class="sourceLineNo">043</span>import org.junit.AfterClass;<a 
name="line.43"></a>
-<span class="sourceLineNo">044</span>import org.junit.BeforeClass;<a 
name="line.44"></a>
-<span class="sourceLineNo">045</span>import org.junit.ClassRule;<a 
name="line.45"></a>
-<span class="sourceLineNo">046</span>import org.junit.Test;<a 
name="line.46"></a>
-<span class="sourceLineNo">047</span>import 
org.junit.experimental.categories.Category;<a name="line.47"></a>
-<span class="sourceLineNo">048</span><a name="line.48"></a>
-<span class="sourceLineNo">049</span>@Category({ RegionServerTests.class, 
LargeTests.class })<a name="line.49"></a>
-<span class="sourceLineNo">050</span>public class 
TestClusterScopeQuotaThrottle {<a name="line.50"></a>
-<span class="sourceLineNo">051</span><a name="line.51"></a>
-<span class="sourceLineNo">052</span>  @ClassRule<a name="line.52"></a>
-<span class="sourceLineNo">053</span>  public static final HBaseClassTestRule 
CLASS_RULE =<a name="line.53"></a>
-<span class="sourceLineNo">054</span>    
HBaseClassTestRule.forClass(TestClusterScopeQuotaThrottle.class);<a 
name="line.54"></a>
-<span class="sourceLineNo">055</span><a name="line.55"></a>
-<span class="sourceLineNo">056</span>  private final static int REFRESH_TIME = 
30 * 60000;<a name="line.56"></a>
-<span class="sourceLineNo">057</span>  private final static HBaseTestingUtil 
TEST_UTIL = new HBaseTestingUtil();<a name="line.57"></a>
-<span class="sourceLineNo">058</span><a name="line.58"></a>
-<span class="sourceLineNo">059</span>  private final static TableName[] 
TABLE_NAMES =<a name="line.59"></a>
-<span class="sourceLineNo">060</span>    new TableName[] { 
TableName.valueOf("TestQuotaAdmin0"), TableName.valueOf("TestQuotaAdmin1"),<a 
name="line.60"></a>
-<span class="sourceLineNo">061</span>      
TableName.valueOf("TestQuotaAdmin2") };<a name="line.61"></a>
-<span class="sourceLineNo">062</span>  private final static byte[] FAMILY = 
Bytes.toBytes("cf");<a name="line.62"></a>
-<span class="sourceLineNo">063</span>  private final static byte[] QUALIFIER = 
Bytes.toBytes("q");<a name="line.63"></a>
-<span class="sourceLineNo">064</span>  private final static byte[][] SPLITS = 
new byte[][] { Bytes.toBytes("1") };<a name="line.64"></a>
-<span class="sourceLineNo">065</span>  private static Table[] tables;<a 
name="line.65"></a>
-<span class="sourceLineNo">066</span><a name="line.66"></a>
-<span class="sourceLineNo">067</span>  private final static String NAMESPACE = 
"TestNs";<a name="line.67"></a>
-<span class="sourceLineNo">068</span>  private final static TableName 
TABLE_NAME = TableName.valueOf(NAMESPACE, "TestTable");<a name="line.68"></a>
-<span class="sourceLineNo">069</span>  private static Table table;<a 
name="line.69"></a>
-<span class="sourceLineNo">070</span><a name="line.70"></a>
-<span class="sourceLineNo">071</span>  @BeforeClass<a name="line.71"></a>
-<span class="sourceLineNo">072</span>  public static void setUpBeforeClass() 
throws Exception {<a name="line.72"></a>
-<span class="sourceLineNo">073</span>    
TEST_UTIL.getConfiguration().setBoolean(QuotaUtil.QUOTA_CONF_KEY, true);<a 
name="line.73"></a>
-<span class="sourceLineNo">074</span>    
TEST_UTIL.getConfiguration().setInt(QuotaCache.REFRESH_CONF_KEY, 
REFRESH_TIME);<a name="line.74"></a>
-<span class="sourceLineNo">075</span>    
TEST_UTIL.getConfiguration().setInt("hbase.hstore.compactionThreshold", 10);<a 
name="line.75"></a>
-<span class="sourceLineNo">076</span>    
TEST_UTIL.getConfiguration().setInt("hbase.regionserver.msginterval", 100);<a 
name="line.76"></a>
-<span class="sourceLineNo">077</span>    
TEST_UTIL.getConfiguration().setInt("hbase.client.pause", 250);<a 
name="line.77"></a>
-<span class="sourceLineNo">078</span>    
TEST_UTIL.getConfiguration().setInt(HConstants.HBASE_CLIENT_RETRIES_NUMBER, 
6);<a name="line.78"></a>
-<span class="sourceLineNo">079</span>    
TEST_UTIL.getConfiguration().setBoolean("hbase.master.enabletable.roundrobin", 
true);<a name="line.79"></a>
-<span class="sourceLineNo">080</span>    TEST_UTIL.startMiniCluster(2);<a 
name="line.80"></a>
-<span class="sourceLineNo">081</span>    
TEST_UTIL.waitTableAvailable(QuotaTableUtil.QUOTA_TABLE_NAME);<a 
name="line.81"></a>
-<span class="sourceLineNo">082</span>    QuotaCache.TEST_FORCE_REFRESH = 
true;<a name="line.82"></a>
-<span class="sourceLineNo">083</span><a name="line.83"></a>
-<span class="sourceLineNo">084</span>    tables = new 
Table[TABLE_NAMES.length];<a name="line.84"></a>
-<span class="sourceLineNo">085</span>    for (int i = 0; i &lt; 
TABLE_NAMES.length; ++i) {<a name="line.85"></a>
-<span class="sourceLineNo">086</span>      tables[i] = 
TEST_UTIL.createTable(TABLE_NAMES[i], FAMILY);<a name="line.86"></a>
-<span class="sourceLineNo">087</span>      
TEST_UTIL.waitTableAvailable(TABLE_NAMES[i]);<a name="line.87"></a>
+<span class="sourceLineNo">031</span>import 
org.apache.hadoop.hbase.NamespaceDescriptor;<a name="line.31"></a>
+<span class="sourceLineNo">032</span>import 
org.apache.hadoop.hbase.TableName;<a name="line.32"></a>
+<span class="sourceLineNo">033</span>import 
org.apache.hadoop.hbase.client.Admin;<a name="line.33"></a>
+<span class="sourceLineNo">034</span>import 
org.apache.hadoop.hbase.client.Table;<a name="line.34"></a>
+<span class="sourceLineNo">035</span>import 
org.apache.hadoop.hbase.security.User;<a name="line.35"></a>
+<span class="sourceLineNo">036</span>import 
org.apache.hadoop.hbase.testclassification.LargeTests;<a name="line.36"></a>
+<span class="sourceLineNo">037</span>import 
org.apache.hadoop.hbase.testclassification.RegionServerTests;<a 
name="line.37"></a>
+<span class="sourceLineNo">038</span>import 
org.apache.hadoop.hbase.util.Bytes;<a name="line.38"></a>
+<span class="sourceLineNo">039</span>import 
org.apache.hadoop.hbase.util.EnvironmentEdgeManager;<a name="line.39"></a>
+<span class="sourceLineNo">040</span>import 
org.apache.hadoop.hbase.util.JVMClusterUtil.RegionServerThread;<a 
name="line.40"></a>
+<span class="sourceLineNo">041</span>import org.junit.After;<a 
name="line.41"></a>
+<span class="sourceLineNo">042</span>import org.junit.AfterClass;<a 
name="line.42"></a>
+<span class="sourceLineNo">043</span>import org.junit.BeforeClass;<a 
name="line.43"></a>
+<span class="sourceLineNo">044</span>import org.junit.ClassRule;<a 
name="line.44"></a>
+<span class="sourceLineNo">045</span>import org.junit.Test;<a 
name="line.45"></a>
+<span class="sourceLineNo">046</span>import 
org.junit.experimental.categories.Category;<a name="line.46"></a>
+<span class="sourceLineNo">047</span><a name="line.47"></a>
+<span class="sourceLineNo">048</span>@Category({ RegionServerTests.class, 
LargeTests.class })<a name="line.48"></a>
+<span class="sourceLineNo">049</span>public class 
TestClusterScopeQuotaThrottle {<a name="line.49"></a>
+<span class="sourceLineNo">050</span><a name="line.50"></a>
+<span class="sourceLineNo">051</span>  @ClassRule<a name="line.51"></a>
+<span class="sourceLineNo">052</span>  public static final HBaseClassTestRule 
CLASS_RULE =<a name="line.52"></a>
+<span class="sourceLineNo">053</span>    
HBaseClassTestRule.forClass(TestClusterScopeQuotaThrottle.class);<a 
name="line.53"></a>
+<span class="sourceLineNo">054</span><a name="line.54"></a>
+<span class="sourceLineNo">055</span>  private final static int REFRESH_TIME = 
30 * 60000;<a name="line.55"></a>
+<span class="sourceLineNo">056</span>  private final static HBaseTestingUtil 
TEST_UTIL = new HBaseTestingUtil();<a name="line.56"></a>
+<span class="sourceLineNo">057</span><a name="line.57"></a>
+<span class="sourceLineNo">058</span>  private final static TableName[] 
TABLE_NAMES =<a name="line.58"></a>
+<span class="sourceLineNo">059</span>    new TableName[] { 
TableName.valueOf("TestQuotaAdmin0"), TableName.valueOf("TestQuotaAdmin1"),<a 
name="line.59"></a>
+<span class="sourceLineNo">060</span>      
TableName.valueOf("TestQuotaAdmin2") };<a name="line.60"></a>
+<span class="sourceLineNo">061</span>  private final static byte[] FAMILY = 
Bytes.toBytes("cf");<a name="line.61"></a>
+<span class="sourceLineNo">062</span>  private final static byte[] QUALIFIER = 
Bytes.toBytes("q");<a name="line.62"></a>
+<span class="sourceLineNo">063</span>  private final static byte[][] SPLITS = 
new byte[][] { Bytes.toBytes("1") };<a name="line.63"></a>
+<span class="sourceLineNo">064</span>  private static Table[] tables;<a 
name="line.64"></a>
+<span class="sourceLineNo">065</span><a name="line.65"></a>
+<span class="sourceLineNo">066</span>  private final static String NAMESPACE = 
"TestNs";<a name="line.66"></a>
+<span class="sourceLineNo">067</span>  private final static TableName 
TABLE_NAME = TableName.valueOf(NAMESPACE, "TestTable");<a name="line.67"></a>
+<span class="sourceLineNo">068</span>  private static Table table;<a 
name="line.68"></a>
+<span class="sourceLineNo">069</span><a name="line.69"></a>
+<span class="sourceLineNo">070</span>  @BeforeClass<a name="line.70"></a>
+<span class="sourceLineNo">071</span>  public static void setUpBeforeClass() 
throws Exception {<a name="line.71"></a>
+<span class="sourceLineNo">072</span>    
TEST_UTIL.getConfiguration().setBoolean(QuotaUtil.QUOTA_CONF_KEY, true);<a 
name="line.72"></a>
+<span class="sourceLineNo">073</span>    
TEST_UTIL.getConfiguration().setInt(QuotaCache.REFRESH_CONF_KEY, 
REFRESH_TIME);<a name="line.73"></a>
+<span class="sourceLineNo">074</span>    
TEST_UTIL.getConfiguration().setInt("hbase.hstore.compactionThreshold", 10);<a 
name="line.74"></a>
+<span class="sourceLineNo">075</span>    
TEST_UTIL.getConfiguration().setInt("hbase.regionserver.msginterval", 100);<a 
name="line.75"></a>
+<span class="sourceLineNo">076</span>    
TEST_UTIL.getConfiguration().setInt("hbase.client.pause", 250);<a 
name="line.76"></a>
+<span class="sourceLineNo">077</span>    
TEST_UTIL.getConfiguration().setBoolean("hbase.master.enabletable.roundrobin", 
true);<a name="line.77"></a>
+<span class="sourceLineNo">078</span>    TEST_UTIL.startMiniCluster(2);<a 
name="line.78"></a>
+<span class="sourceLineNo">079</span>    
TEST_UTIL.waitTableAvailable(QuotaTableUtil.QUOTA_TABLE_NAME);<a 
name="line.79"></a>
+<span class="sourceLineNo">080</span>    QuotaCache.TEST_FORCE_REFRESH = 
true;<a name="line.80"></a>
+<span class="sourceLineNo">081</span><a name="line.81"></a>
+<span class="sourceLineNo">082</span>    tables = new 
Table[TABLE_NAMES.length];<a name="line.82"></a>
+<span class="sourceLineNo">083</span>    for (int i = 0; i &lt; 
TABLE_NAMES.length; ++i) {<a name="line.83"></a>
+<span class="sourceLineNo">084</span>      
TEST_UTIL.createTable(TABLE_NAMES[i], FAMILY);<a name="line.84"></a>
+<span class="sourceLineNo">085</span>      
TEST_UTIL.waitTableAvailable(TABLE_NAMES[i]);<a name="line.85"></a>
+<span class="sourceLineNo">086</span>      tables[i] = 
TEST_UTIL.getConnection().getTableBuilder(TABLE_NAMES[i], null)<a 
name="line.86"></a>
+<span class="sourceLineNo">087</span>        
.setOperationTimeout(10000).build();<a name="line.87"></a>
 <span class="sourceLineNo">088</span>    }<a name="line.88"></a>
 <span class="sourceLineNo">089</span>    
TEST_UTIL.getAdmin().createNamespace(NamespaceDescriptor.create(NAMESPACE).build());<a
 name="line.89"></a>
-<span class="sourceLineNo">090</span>    table = 
TEST_UTIL.createTable(TABLE_NAME, FAMILY, SPLITS);<a name="line.90"></a>
+<span class="sourceLineNo">090</span>    TEST_UTIL.createTable(TABLE_NAME, 
FAMILY, SPLITS);<a name="line.90"></a>
 <span class="sourceLineNo">091</span>    
TEST_UTIL.waitTableAvailable(TABLE_NAME);<a name="line.91"></a>
-<span class="sourceLineNo">092</span>  }<a name="line.92"></a>
-<span class="sourceLineNo">093</span><a name="line.93"></a>
-<span class="sourceLineNo">094</span>  @AfterClass<a name="line.94"></a>
-<span class="sourceLineNo">095</span>  public static void tearDownAfterClass() 
throws Exception {<a name="line.95"></a>
-<span class="sourceLineNo">096</span>    EnvironmentEdgeManager.reset();<a 
name="line.96"></a>
-<span class="sourceLineNo">097</span>    for (int i = 0; i &lt; tables.length; 
++i) {<a name="line.97"></a>
-<span class="sourceLineNo">098</span>      if (tables[i] != null) {<a 
name="line.98"></a>
-<span class="sourceLineNo">099</span>        tables[i].close();<a 
name="line.99"></a>
-<span class="sourceLineNo">100</span>        
TEST_UTIL.deleteTable(TABLE_NAMES[i]);<a name="line.100"></a>
-<span class="sourceLineNo">101</span>      }<a name="line.101"></a>
-<span class="sourceLineNo">102</span>    }<a name="line.102"></a>
-<span class="sourceLineNo">103</span>    TEST_UTIL.deleteTable(TABLE_NAME);<a 
name="line.103"></a>
-<span class="sourceLineNo">104</span>    
TEST_UTIL.getAdmin().deleteNamespace(NAMESPACE);<a name="line.104"></a>
-<span class="sourceLineNo">105</span>    TEST_UTIL.shutdownMiniCluster();<a 
name="line.105"></a>
-<span class="sourceLineNo">106</span>  }<a name="line.106"></a>
-<span class="sourceLineNo">107</span><a name="line.107"></a>
-<span class="sourceLineNo">108</span>  @After<a name="line.108"></a>
-<span class="sourceLineNo">109</span>  public void tearDown() throws Exception 
{<a name="line.109"></a>
-<span class="sourceLineNo">110</span>    
ThrottleQuotaTestUtil.clearQuotaCache(TEST_UTIL);<a name="line.110"></a>
-<span class="sourceLineNo">111</span>  }<a name="line.111"></a>
-<span class="sourceLineNo">112</span><a name="line.112"></a>
-<span class="sourceLineNo">113</span>  @Test<a name="line.113"></a>
-<span class="sourceLineNo">114</span>  public void 
testNamespaceClusterScopeQuota() throws Exception {<a name="line.114"></a>
-<span class="sourceLineNo">115</span>    final Admin admin = 
TEST_UTIL.getAdmin();<a name="line.115"></a>
-<span class="sourceLineNo">116</span>    final String NAMESPACE = "default";<a 
name="line.116"></a>
-<span class="sourceLineNo">117</span><a name="line.117"></a>
-<span class="sourceLineNo">118</span>    // Add 10req/min limit for write 
request in cluster scope<a name="line.118"></a>
-<span class="sourceLineNo">119</span>    
admin.setQuota(QuotaSettingsFactory.throttleNamespace(NAMESPACE, 
ThrottleType.WRITE_NUMBER, 10,<a name="line.119"></a>
-<span class="sourceLineNo">120</span>      TimeUnit.MINUTES, 
QuotaScope.CLUSTER));<a name="line.120"></a>
-<span class="sourceLineNo">121</span>    // Add 6req/min limit for read 
request in machine scope<a name="line.121"></a>
-<span class="sourceLineNo">122</span>    
admin.setQuota(QuotaSettingsFactory.throttleNamespace(NAMESPACE, 
ThrottleType.READ_NUMBER, 6,<a name="line.122"></a>
-<span class="sourceLineNo">123</span>      TimeUnit.MINUTES, 
QuotaScope.MACHINE));<a name="line.123"></a>
-<span class="sourceLineNo">124</span>    
triggerNamespaceCacheRefresh(TEST_UTIL, false, TABLE_NAMES[0]);<a 
name="line.124"></a>
-<span class="sourceLineNo">125</span>    // should execute at max 5 write 
requests and at max 3 read requests<a name="line.125"></a>
-<span class="sourceLineNo">126</span>    assertEquals(5, doPuts(10, FAMILY, 
QUALIFIER, tables[0]));<a name="line.126"></a>
-<span class="sourceLineNo">127</span>    assertEquals(6, doGets(10, 
tables[0]));<a name="line.127"></a>
-<span class="sourceLineNo">128</span>    // Remove all the limits<a 
name="line.128"></a>
-<span class="sourceLineNo">129</span>    
admin.setQuota(QuotaSettingsFactory.unthrottleNamespace(NAMESPACE));<a 
name="line.129"></a>
-<span class="sourceLineNo">130</span>    
triggerNamespaceCacheRefresh(TEST_UTIL, true, TABLE_NAMES[0]);<a 
name="line.130"></a>
-<span class="sourceLineNo">131</span>  }<a name="line.131"></a>
-<span class="sourceLineNo">132</span><a name="line.132"></a>
-<span class="sourceLineNo">133</span>  @Test<a name="line.133"></a>
-<span class="sourceLineNo">134</span>  public void 
testTableClusterScopeQuota() throws Exception {<a name="line.134"></a>
-<span class="sourceLineNo">135</span>    final Admin admin = 
TEST_UTIL.getAdmin();<a name="line.135"></a>
-<span class="sourceLineNo">136</span>    
admin.setQuota(QuotaSettingsFactory.throttleTable(TABLE_NAME, 
ThrottleType.READ_NUMBER, 20,<a name="line.136"></a>
-<span class="sourceLineNo">137</span>      TimeUnit.HOURS, 
QuotaScope.CLUSTER));<a name="line.137"></a>
-<span class="sourceLineNo">138</span>    triggerTableCacheRefresh(TEST_UTIL, 
false, TABLE_NAME);<a name="line.138"></a>
-<span class="sourceLineNo">139</span>    for (RegionServerThread rst : 
TEST_UTIL.getMiniHBaseCluster().getRegionServerThreads()) {<a 
name="line.139"></a>
-<span class="sourceLineNo">140</span>      for (TableName tableName : 
rst.getRegionServer().getOnlineTables()) {<a name="line.140"></a>
-<span class="sourceLineNo">141</span>        if 
(tableName.getNameAsString().equals(TABLE_NAME.getNameAsString())) {<a 
name="line.141"></a>
-<span class="sourceLineNo">142</span>          int rsRegionNum = 
rst.getRegionServer().getRegions(tableName).size();<a name="line.142"></a>
-<span class="sourceLineNo">143</span>          if (rsRegionNum == 0) {<a 
name="line.143"></a>
-<span class="sourceLineNo">144</span>            // If rs has 0 region, the 
machine limiter is 0 (20 * 0 / 2)<a name="line.144"></a>
-<span class="sourceLineNo">145</span>            break;<a name="line.145"></a>
-<span class="sourceLineNo">146</span>          } else if (rsRegionNum == 1) 
{<a name="line.146"></a>
-<span class="sourceLineNo">147</span>            // If rs has 1 region, the 
machine limiter is 10 (20 * 1 / 2)<a name="line.147"></a>
-<span class="sourceLineNo">148</span>            // Read rows from 1 region, 
so can read 10 first time and 0 second time<a name="line.148"></a>
-<span class="sourceLineNo">149</span>            long count = doGets(20, 
table);<a name="line.149"></a>
-<span class="sourceLineNo">150</span>            assertTrue(count == 0 || 
count == 10);<a name="line.150"></a>
-<span class="sourceLineNo">151</span>          } else if (rsRegionNum == 2) 
{<a name="line.151"></a>
-<span class="sourceLineNo">152</span>            // If rs has 2 regions, the 
machine limiter is 20 (20 * 2 / 2)<a name="line.152"></a>
-<span class="sourceLineNo">153</span>            assertEquals(20, doGets(20, 
table));<a name="line.153"></a>
-<span class="sourceLineNo">154</span>          }<a name="line.154"></a>
-<span class="sourceLineNo">155</span>          break;<a name="line.155"></a>
-<span class="sourceLineNo">156</span>        }<a name="line.156"></a>
-<span class="sourceLineNo">157</span>      }<a name="line.157"></a>
-<span class="sourceLineNo">158</span>    }<a name="line.158"></a>
-<span class="sourceLineNo">159</span>    
admin.setQuota(QuotaSettingsFactory.unthrottleTable(TABLE_NAME));<a 
name="line.159"></a>
-<span class="sourceLineNo">160</span>    triggerTableCacheRefresh(TEST_UTIL, 
true, TABLE_NAME);<a name="line.160"></a>
-<span class="sourceLineNo">161</span>  }<a name="line.161"></a>
-<span class="sourceLineNo">162</span><a name="line.162"></a>
-<span class="sourceLineNo">163</span>  @Test<a name="line.163"></a>
-<span class="sourceLineNo">164</span>  public void testUserClusterScopeQuota() 
throws Exception {<a name="line.164"></a>
-<span class="sourceLineNo">165</span>    final Admin admin = 
TEST_UTIL.getAdmin();<a name="line.165"></a>
-<span class="sourceLineNo">166</span>    final String userName = 
User.getCurrent().getShortName();<a name="line.166"></a>
-<span class="sourceLineNo">167</span><a name="line.167"></a>
-<span class="sourceLineNo">168</span>    // Add 6req/min limit for read 
request in cluster scope<a name="line.168"></a>
-<span class="sourceLineNo">169</span>    
admin.setQuota(QuotaSettingsFactory.throttleUser(userName, 
ThrottleType.READ_NUMBER, 6,<a name="line.169"></a>
-<span class="sourceLineNo">170</span>      TimeUnit.MINUTES, 
QuotaScope.CLUSTER));<a name="line.170"></a>
-<span class="sourceLineNo">171</span>    // Add 6req/min limit for write 
request in machine scope<a name="line.171"></a>
-<span class="sourceLineNo">172</span>    admin.setQuota(<a name="line.172"></a>
-<span class="sourceLineNo">173</span>      
QuotaSettingsFactory.throttleUser(userName, ThrottleType.WRITE_NUMBER, 6, 
TimeUnit.MINUTES));<a name="line.173"></a>
-<span class="sourceLineNo">174</span>    triggerUserCacheRefresh(TEST_UTIL, 
false, TABLE_NAMES);<a name="line.174"></a>
-<span class="sourceLineNo">175</span>    // should execute at max 6 read 
requests and at max 3 write write requests<a name="line.175"></a>
-<span class="sourceLineNo">176</span>    assertEquals(6, doPuts(10, FAMILY, 
QUALIFIER, tables[0]));<a name="line.176"></a>
-<span class="sourceLineNo">177</span>    assertEquals(3, doGets(10, 
tables[0]));<a name="line.177"></a>
-<span class="sourceLineNo">178</span>    // Remove all the limits<a 
name="line.178"></a>
-<span class="sourceLineNo">179</span>    
admin.setQuota(QuotaSettingsFactory.unthrottleUser(userName));<a 
name="line.179"></a>
-<span class="sourceLineNo">180</span>    triggerUserCacheRefresh(TEST_UTIL, 
true, TABLE_NAMES);<a name="line.180"></a>
-<span class="sourceLineNo">181</span>  }<a name="line.181"></a>
-<span class="sourceLineNo">182</span><a name="line.182"></a>
-<span class="sourceLineNo">183</span>  @org.junit.Ignore<a name="line.183"></a>
-<span class="sourceLineNo">184</span>  @Test // Spews the log w/ triggering of 
scheduler? HBASE-24035<a name="line.184"></a>
-<span class="sourceLineNo">185</span>  public void 
testUserNamespaceClusterScopeQuota() throws Exception {<a name="line.185"></a>
-<span class="sourceLineNo">186</span>    final Admin admin = 
TEST_UTIL.getAdmin();<a name="line.186"></a>
-<span class="sourceLineNo">187</span>    final String userName = 
User.getCurrent().getShortName();<a name="line.187"></a>
-<span class="sourceLineNo">188</span>    final String namespace = 
TABLE_NAMES[0].getNamespaceAsString();<a name="line.188"></a>
-<span class="sourceLineNo">189</span><a name="line.189"></a>
-<span class="sourceLineNo">190</span>    // Add 10req/min limit for read 
request in cluster scope<a name="line.190"></a>
-<span class="sourceLineNo">191</span>    
admin.setQuota(QuotaSettingsFactory.throttleUser(userName, namespace, 
ThrottleType.READ_NUMBER,<a name="line.191"></a>
-<span class="sourceLineNo">192</span>      10, TimeUnit.MINUTES, 
QuotaScope.CLUSTER));<a name="line.192"></a>
-<span class="sourceLineNo">193</span>    // Add 6req/min limit for write 
request in machine scope<a name="line.193"></a>
-<span class="sourceLineNo">194</span>    
admin.setQuota(QuotaSettingsFactory.throttleUser(userName, namespace, 
ThrottleType.WRITE_NUMBER,<a name="line.194"></a>
-<span class="sourceLineNo">195</span>      6, TimeUnit.MINUTES));<a 
name="line.195"></a>
-<span class="sourceLineNo">196</span>    triggerUserCacheRefresh(TEST_UTIL, 
false, TABLE_NAMES[0]);<a name="line.196"></a>
-<span class="sourceLineNo">197</span>    // should execute at max 5 read 
requests and at max 6 write requests<a name="line.197"></a>
-<span class="sourceLineNo">198</span>    assertEquals(5, doGets(10, 
tables[0]));<a name="line.198"></a>
-<span class="sourceLineNo">199</span>    assertEquals(6, doPuts(10, FAMILY, 
QUALIFIER, tables[0]));<a name="line.199"></a>
-<span class="sourceLineNo">200</span><a name="line.200"></a>
-<span class="sourceLineNo">201</span>    // Remove all the limits<a 
name="line.201"></a>
-<span class="sourceLineNo">202</span>    
admin.setQuota(QuotaSettingsFactory.unthrottleUser(userName, namespace));<a 
name="line.202"></a>
-<span class="sourceLineNo">203</span>    triggerUserCacheRefresh(TEST_UTIL, 
true, TABLE_NAMES[0]);<a name="line.203"></a>
-<span class="sourceLineNo">204</span>  }<a name="line.204"></a>
-<span class="sourceLineNo">205</span><a name="line.205"></a>
-<span class="sourceLineNo">206</span>  @Test<a name="line.206"></a>
-<span class="sourceLineNo">207</span>  public void 
testUserTableClusterScopeQuota() throws Exception {<a name="line.207"></a>
-<span class="sourceLineNo">208</span>    final Admin admin = 
TEST_UTIL.getAdmin();<a name="line.208"></a>
-<span class="sourceLineNo">209</span>    final String userName = 
User.getCurrent().getShortName();<a name="line.209"></a>
-<span class="sourceLineNo">210</span>    
admin.setQuota(QuotaSettingsFactory.throttleUser(userName, TABLE_NAME, 
ThrottleType.READ_NUMBER,<a name="line.210"></a>
-<span class="sourceLineNo">211</span>      20, TimeUnit.HOURS, 
QuotaScope.CLUSTER));<a name="line.211"></a>
-<span class="sourceLineNo">212</span>    triggerUserCacheRefresh(TEST_UTIL, 
false, TABLE_NAME);<a name="line.212"></a>
-<span class="sourceLineNo">213</span>    for (RegionServerThread rst : 
TEST_UTIL.getMiniHBaseCluster().getRegionServerThreads()) {<a 
name="line.213"></a>
-<span class="sourceLineNo">214</span>      for (TableName tableName : 
rst.getRegionServer().getOnlineTables()) {<a name="line.214"></a>
-<span class="sourceLineNo">215</span>        if 
(tableName.getNameAsString().equals(TABLE_NAME.getNameAsString())) {<a 
name="line.215"></a>
-<span class="sourceLineNo">216</span>          int rsRegionNum = 
rst.getRegionServer().getRegions(tableName).size();<a name="line.216"></a>
-<span class="sourceLineNo">217</span>          if (rsRegionNum == 0) {<a 
name="line.217"></a>
-<span class="sourceLineNo">218</span>            // If rs has 0 region, the 
machine limiter is 0 (20 * 0 / 2)<a name="line.218"></a>
-<span class="sourceLineNo">219</span>            break;<a name="line.219"></a>
-<span class="sourceLineNo">220</span>          } else if (rsRegionNum == 1) 
{<a name="line.220"></a>
-<span class="sourceLineNo">221</span>            // If rs has 1 region, the 
machine limiter is 10 (20 * 1 / 2)<a name="line.221"></a>
-<span class="sourceLineNo">222</span>            // Read rows from 1 region, 
so can read 10 first time and 0 second time<a name="line.222"></a>
-<span class="sourceLineNo">223</span>            long count = doGets(20, 
table);<a name="line.223"></a>
-<span class="sourceLineNo">224</span>            assertTrue(count == 0 || 
count == 10);<a name="line.224"></a>
-<span class="sourceLineNo">225</span>          } else if (rsRegionNum == 2) 
{<a name="line.225"></a>
-<span class="sourceLineNo">226</span>            // If rs has 2 regions, the 
machine limiter is 20 (20 * 2 / 2)<a name="line.226"></a>
-<span class="sourceLineNo">227</span>            assertEquals(20, doGets(20, 
table));<a name="line.227"></a>
-<span class="sourceLineNo">228</span>          }<a name="line.228"></a>
-<span class="sourceLineNo">229</span>          break;<a name="line.229"></a>
-<span class="sourceLineNo">230</span>        }<a name="line.230"></a>
-<span class="sourceLineNo">231</span>      }<a name="line.231"></a>
-<span class="sourceLineNo">232</span>    }<a name="line.232"></a>
-<span class="sourceLineNo">233</span>    
admin.setQuota(QuotaSettingsFactory.unthrottleUser(userName));<a 
name="line.233"></a>
-<span class="sourceLineNo">234</span>    triggerUserCacheRefresh(TEST_UTIL, 
true, TABLE_NAME);<a name="line.234"></a>
-<span class="sourceLineNo">235</span>  }<a name="line.235"></a>
-<span class="sourceLineNo">236</span>}<a name="line.236"></a>
+<span class="sourceLineNo">092</span>    table = 
TEST_UTIL.getConnection().getTableBuilder(TABLE_NAME, 
null).setOperationTimeout(10000)<a name="line.92"></a>
+<span class="sourceLineNo">093</span>      .build();<a name="line.93"></a>
+<span class="sourceLineNo">094</span>  }<a name="line.94"></a>
+<span class="sourceLineNo">095</span><a name="line.95"></a>
+<span class="sourceLineNo">096</span>  @AfterClass<a name="line.96"></a>
+<span class="sourceLineNo">097</span>  public static void tearDownAfterClass() 
throws Exception {<a name="line.97"></a>
+<span class="sourceLineNo">098</span>    EnvironmentEdgeManager.reset();<a 
name="line.98"></a>
+<span class="sourceLineNo">099</span>    for (int i = 0; i &lt; tables.length; 
++i) {<a name="line.99"></a>
+<span class="sourceLineNo">100</span>      if (tables[i] != null) {<a 
name="line.100"></a>
+<span class="sourceLineNo">101</span>        tables[i].close();<a 
name="line.101"></a>
+<span class="sourceLineNo">102</span>        
TEST_UTIL.deleteTable(TABLE_NAMES[i]);<a name="line.102"></a>
+<span class="sourceLineNo">103</span>      }<a name="line.103"></a>
+<span class="sourceLineNo">104</span>    }<a name="line.104"></a>
+<span class="sourceLineNo">105</span>    TEST_UTIL.deleteTable(TABLE_NAME);<a 
name="line.105"></a>
+<span class="sourceLineNo">106</span>    
TEST_UTIL.getAdmin().deleteNamespace(NAMESPACE);<a name="line.106"></a>
+<span class="sourceLineNo">107</span>    TEST_UTIL.shutdownMiniCluster();<a 
name="line.107"></a>
+<span class="sourceLineNo">108</span>  }<a name="line.108"></a>
+<span class="sourceLineNo">109</span><a name="line.109"></a>
+<span class="sourceLineNo">110</span>  @After<a name="line.110"></a>
+<span class="sourceLineNo">111</span>  public void tearDown() throws Exception 
{<a name="line.111"></a>
+<span class="sourceLineNo">112</span>    
ThrottleQuotaTestUtil.clearQuotaCache(TEST_UTIL);<a name="line.112"></a>
+<span class="sourceLineNo">113</span>  }<a name="line.113"></a>
+<span class="sourceLineNo">114</span><a name="line.114"></a>
+<span class="sourceLineNo">115</span>  @Test<a name="line.115"></a>
+<span class="sourceLineNo">116</span>  public void 
testNamespaceClusterScopeQuota() throws Exception {<a name="line.116"></a>
+<span class="sourceLineNo">117</span>    final Admin admin = 
TEST_UTIL.getAdmin();<a name="line.117"></a>
+<span class="sourceLineNo">118</span>    final String NAMESPACE = "default";<a 
name="line.118"></a>
+<span class="sourceLineNo">119</span><a name="line.119"></a>
+<span class="sourceLineNo">120</span>    // Add 10req/min limit for write 
request in cluster scope<a name="line.120"></a>
+<span class="sourceLineNo">121</span>    
admin.setQuota(QuotaSettingsFactory.throttleNamespace(NAMESPACE, 
ThrottleType.WRITE_NUMBER, 10,<a name="line.121"></a>
+<span class="sourceLineNo">122</span>      TimeUnit.MINUTES, 
QuotaScope.CLUSTER));<a name="line.122"></a>
+<span class="sourceLineNo">123</span>    // Add 6req/min limit for read 
request in machine scope<a name="line.123"></a>
+<span class="sourceLineNo">124</span>    
admin.setQuota(QuotaSettingsFactory.throttleNamespace(NAMESPACE, 
ThrottleType.READ_NUMBER, 6,<a name="line.124"></a>
+<span class="sourceLineNo">125</span>      TimeUnit.MINUTES, 
QuotaScope.MACHINE));<a name="line.125"></a>
+<span class="sourceLineNo">126</span>    
triggerNamespaceCacheRefresh(TEST_UTIL, false, TABLE_NAMES[0]);<a 
name="line.126"></a>
+<span class="sourceLineNo">127</span>    // should execute at max 5 write 
requests and at max 3 read requests<a name="line.127"></a>
+<span class="sourceLineNo">128</span>    assertEquals(5, doPuts(10, FAMILY, 
QUALIFIER, tables[0]));<a name="line.128"></a>
+<span class="sourceLineNo">129</span>    assertEquals(6, doGets(10, 
tables[0]));<a name="line.129"></a>
+<span class="sourceLineNo">130</span>    // Remove all the limits<a 
name="line.130"></a>
+<span class="sourceLineNo">131</span>    
admin.setQuota(QuotaSettingsFactory.unthrottleNamespace(NAMESPACE));<a 
name="line.131"></a>
+<span class="sourceLineNo">132</span>    
triggerNamespaceCacheRefresh(TEST_UTIL, true, TABLE_NAMES[0]);<a 
name="line.132"></a>
+<span class="sourceLineNo">133</span>  }<a name="line.133"></a>
+<span class="sourceLineNo">134</span><a name="line.134"></a>
+<span class="sourceLineNo">135</span>  @Test<a name="line.135"></a>
+<span class="sourceLineNo">136</span>  public void 
testTableClusterScopeQuota() throws Exception {<a name="line.136"></a>
+<span class="sourceLineNo">137</span>    final Admin admin = 
TEST_UTIL.getAdmin();<a name="line.137"></a>
+<span class="sourceLineNo">138</span>    
admin.setQuota(QuotaSettingsFactory.throttleTable(TABLE_NAME, 
ThrottleType.READ_NUMBER, 20,<a name="line.138"></a>
+<span class="sourceLineNo">139</span>      TimeUnit.HOURS, 
QuotaScope.CLUSTER));<a name="line.139"></a>
+<span class="sourceLineNo">140</span>    triggerTableCacheRefresh(TEST_UTIL, 
false, TABLE_NAME);<a name="line.140"></a>
+<span class="sourceLineNo">141</span>    for (RegionServerThread rst : 
TEST_UTIL.getMiniHBaseCluster().getRegionServerThreads()) {<a 
name="line.141"></a>
+<span class="sourceLineNo">142</span>      for (TableName tableName : 
rst.getRegionServer().getOnlineTables()) {<a name="line.142"></a>
+<span class="sourceLineNo">143</span>        if 
(tableName.getNameAsString().equals(TABLE_NAME.getNameAsString())) {<a 
name="line.143"></a>
+<span class="sourceLineNo">144</span>          int rsRegionNum = 
rst.getRegionServer().getRegions(tableName).size();<a name="line.144"></a>
+<span class="sourceLineNo">145</span>          if (rsRegionNum == 0) {<a 
name="line.145"></a>
+<span class="sourceLineNo">146</span>            // If rs has 0 region, the 
machine limiter is 0 (20 * 0 / 2)<a name="line.146"></a>
+<span class="sourceLineNo">147</span>            break;<a name="line.147"></a>
+<span class="sourceLineNo">148</span>          } else if (rsRegionNum == 1) 
{<a name="line.148"></a>
+<span class="sourceLineNo">149</span>            // If rs has 1 region, the 
machine limiter is 10 (20 * 1 / 2)<a name="line.149"></a>
+<span class="sourceLineNo">150</span>            // Read rows from 1 region, 
so can read 10 first time and 0 second time<a name="line.150"></a>
+<span class="sourceLineNo">151</span>            long count = doGets(20, 
table);<a name="line.151"></a>
+<span class="sourceLineNo">152</span>            assertTrue(count == 0 || 
count == 10);<a name="line.152"></a>
+<span class="sourceLineNo">153</span>          } else if (rsRegionNum == 2) 
{<a name="line.153"></a>
+<span class="sourceLineNo">154</span>            // If rs has 2 regions, the 
machine limiter is 20 (20 * 2 / 2)<a name="line.154"></a>
+<span class="sourceLineNo">155</span>            assertEquals(20, doGets(20, 
table));<a name="line.155"></a>
+<span class="sourceLineNo">156</span>          }<a name="line.156"></a>
+<span class="sourceLineNo">157</span>          break;<a name="line.157"></a>
+<span class="sourceLineNo">158</span>        }<a name="line.158"></a>
+<span class="sourceLineNo">159</span>      }<a name="line.159"></a>
+<span class="sourceLineNo">160</span>    }<a name="line.160"></a>
+<span class="sourceLineNo">161</span>    
admin.setQuota(QuotaSettingsFactory.unthrottleTable(TABLE_NAME));<a 
name="line.161"></a>
+<span class="sourceLineNo">162</span>    triggerTableCacheRefresh(TEST_UTIL, 
true, TABLE_NAME);<a name="line.162"></a>
+<span class="sourceLineNo">163</span>  }<a name="line.163"></a>
+<span class="sourceLineNo">164</span><a name="line.164"></a>
+<span class="sourceLineNo">165</span>  @Test<a name="line.165"></a>
+<span class="sourceLineNo">166</span>  public void testUserClusterScopeQuota() 
throws Exception {<a name="line.166"></a>
+<span class="sourceLineNo">167</span>    final Admin admin = 
TEST_UTIL.getAdmin();<a name="line.167"></a>
+<span class="sourceLineNo">168</span>    final String userName = 
User.getCurrent().getShortName();<a name="line.168"></a>
+<span class="sourceLineNo">169</span><a name="line.169"></a>
+<span class="sourceLineNo">170</span>    // Add 6req/min limit for read 
request in cluster scope<a name="line.170"></a>
+<span class="sourceLineNo">171</span>    
admin.setQuota(QuotaSettingsFactory.throttleUser(userName, 
ThrottleType.READ_NUMBER, 6,<a name="line.171"></a>
+<span class="sourceLineNo">172</span>      TimeUnit.MINUTES, 
QuotaScope.CLUSTER));<a name="line.172"></a>
+<span class="sourceLineNo">173</span>    // Add 6req/min limit for write 
request in machine scope<a name="line.173"></a>
+<span class="sourceLineNo">174</span>    admin.setQuota(<a name="line.174"></a>
+<span class="sourceLineNo">175</span>      
QuotaSettingsFactory.throttleUser(userName, ThrottleType.WRITE_NUMBER, 6, 
TimeUnit.MINUTES));<a name="line.175"></a>
+<span class="sourceLineNo">176</span>    triggerUserCacheRefresh(TEST_UTIL, 
false, TABLE_NAMES);<a name="line.176"></a>
+<span class="sourceLineNo">177</span>    // should execute at max 6 read 
requests and at max 3 write write requests<a name="line.177"></a>
+<span class="sourceLineNo">178</span>    assertEquals(6, doPuts(10, FAMILY, 
QUALIFIER, tables[0]));<a name="line.178"></a>
+<span class="sourceLineNo">179</span>    assertEquals(3, doGets(10, 
tables[0]));<a name="line.179"></a>
+<span class="sourceLineNo">180</span>    // Remove all the limits<a 
name="line.180"></a>
+<span class="sourceLineNo">181</span>    
admin.setQuota(QuotaSettingsFactory.unthrottleUser(userName));<a 
name="line.181"></a>
+<span class="sourceLineNo">182</span>    triggerUserCacheRefresh(TEST_UTIL, 
true, TABLE_NAMES);<a name="line.182"></a>
+<span class="sourceLineNo">183</span>  }<a name="line.183"></a>
+<span class="sourceLineNo">184</span><a name="line.184"></a>
+<span class="sourceLineNo">185</span>  @Test // Spews the log w/ triggering of 
scheduler? HBASE-24035<a name="line.185"></a>
+<span class="sourceLineNo">186</span>  public void 
testUserNamespaceClusterScopeQuota() throws Exception {<a name="line.186"></a>
+<span class="sourceLineNo">187</span>    final Admin admin = 
TEST_UTIL.getAdmin();<a name="line.187"></a>
+<span class="sourceLineNo">188</span>    final String userName = 
User.getCurrent().getShortName();<a name="line.188"></a>
+<span class="sourceLineNo">189</span>    final String namespace = 
TABLE_NAMES[0].getNamespaceAsString();<a name="line.189"></a>
+<span class="sourceLineNo">190</span><a name="line.190"></a>
+<span class="sourceLineNo">191</span>    // Add 10req/min limit for read 
request in cluster scope<a name="line.191"></a>
+<span class="sourceLineNo">192</span>    
admin.setQuota(QuotaSettingsFactory.throttleUser(userName, namespace, 
ThrottleType.READ_NUMBER,<a name="line.192"></a>
+<span class="sourceLineNo">193</span>      10, TimeUnit.MINUTES, 
QuotaScope.CLUSTER));<a name="line.193"></a>
+<span class="sourceLineNo">194</span>    // Add 6req/min limit for write 
request in machine scope<a name="line.194"></a>
+<span class="sourceLineNo">195</span>    
admin.setQuota(QuotaSettingsFactory.throttleUser(userName, namespace, 
ThrottleType.WRITE_NUMBER,<a name="line.195"></a>
+<span class="sourceLineNo">196</span>      6, TimeUnit.MINUTES));<a 
name="line.196"></a>
+<span class="sourceLineNo">197</span>    triggerUserCacheRefresh(TEST_UTIL, 
false, TABLE_NAMES[0]);<a name="line.197"></a>
+<span class="sourceLineNo">198</span>    // should execute at max 5 read 
requests and at max 6 write requests<a name="line.198"></a>
+<span class="sourceLineNo">199</span>    assertEquals(5, doGets(10, 
tables[0]));<a name="line.199"></a>
+<span class="sourceLineNo">200</span>    assertEquals(6, doPuts(10, FAMILY, 
QUALIFIER, tables[0]));<a name="line.200"></a>
+<span class="sourceLineNo">201</span><a name="line.201"></a>
+<span class="sourceLineNo">202</span>    // Remove all the limits<a 
name="line.202"></a>
+<span class="sourceLineNo">203</span>    
admin.setQuota(QuotaSettingsFactory.unthrottleUser(userName, namespace));<a 
name="line.203"></a>
+<span class="sourceLineNo">204</span>    triggerUserCacheRefresh(TEST_UTIL, 
true, TABLE_NAMES[0]);<a name="line.204"></a>
+<span class="sourceLineNo">205</span>  }<a name="line.205"></a>
+<span class="sourceLineNo">206</span><a name="line.206"></a>
+<span class="sourceLineNo">207</span>  @Test<a name="line.207"></a>
+<span class="sourceLineNo">208</span>  public void 
testUserTableClusterScopeQuota() throws Exception {<a name="line.208"></a>
+<span class="sourceLineNo">209</span>    final Admin admin = 
TEST_UTIL.getAdmin();<a name="line.209"></a>
+<span class="sourceLineNo">210</span>    final String userName = 
User.getCurrent().getShortName();<a name="line.210"></a>
+<span class="sourceLineNo">211</span>    
admin.setQuota(QuotaSettingsFactory.throttleUser(userName, TABLE_NAME, 
ThrottleType.READ_NUMBER,<a name="line.211"></a>
+<span class="sourceLineNo">212</span>      20, TimeUnit.HOURS, 
QuotaScope.CLUSTER));<a name="line.212"></a>
+<span class="sourceLineNo">213</span>    triggerUserCacheRefresh(TEST_UTIL, 
false, TABLE_NAME);<a name="line.213"></a>
+<span class="sourceLineNo">214</span>    for (RegionServerThread rst : 
TEST_UTIL.getMiniHBaseCluster().getRegionServerThreads()) {<a 
name="line.214"></a>
+<span class="sourceLineNo">215</span>      for (TableName tableName : 
rst.getRegionServer().getOnlineTables()) {<a name="line.215"></a>
+<span class="sourceLineNo">216</span>        if 
(tableName.getNameAsString().equals(TABLE_NAME.getNameAsString())) {<a 
name="line.216"></a>
+<span class="sourceLineNo">217</span>          int rsRegionNum = 
rst.getRegionServer().getRegions(tableName).size();<a name="line.217"></a>
+<span class="sourceLineNo">218</span>          if (rsRegionNum == 0) {<a 
name="line.218"></a>
+<span class="sourceLineNo">219</span>            // If rs has 0 region, the 
machine limiter is 0 (20 * 0 / 2)<a name="line.219"></a>
+<span class="sourceLineNo">220</span>            break;<a name="line.220"></a>
+<span class="sourceLineNo">221</span>          } else if (rsRegionNum == 1) 
{<a name="line.221"></a>
+<span class="sourceLineNo">222</span>            // If rs has 1 region, the 
machine limiter is 10 (20 * 1 / 2)<a name="line.222"></a>
+<span class="sourceLineNo">223</span>            // Read rows from 1 region, 
so can read 10 first time and 0 second time<a name="line.223"></a>
+<span class="sourceLineNo">224</span>            long count = doGets(20, 
table);<a name="line.224"></a>
+<span class="sourceLineNo">225</span>            assertTrue(count == 0 || 
count == 10);<a name="line.225"></a>
+<span class="sourceLineNo">226</span>          } else if (rsRegionNum == 2) 
{<a name="line.226"></a>
+<span class="sourceLineNo">227</span>            // If rs has 2 regions, the 
machine limiter is 20 (20 * 2 / 2)<a name="line.227"></a>
+<span class="sourceLineNo">228</span>            assertEquals(20, doGets(20, 
table));<a name="line.228"></a>
+<span class="sourceLineNo">229</span>          }<a name="line.229"></a>
+<span class="sourceLineNo">230</span>          break;<a name="line.230"></a>
+<span class="sourceLineNo">231</span>        }<a name="line.231"></a>
+<span class="sourceLineNo">232</span>      }<a name="line.232"></a>
+<span class="sourceLineNo">233</span>    }<a name="line.233"></a>
+<span class="sourceLineNo">234</span>    
admin.setQuota(QuotaSettingsFactory.unthrottleUser(userName));<a 
name="line.234"></a>
+<span class="sourceLineNo">235</span>    triggerUserCacheRefresh(TEST_UTIL, 
true, TABLE_NAME);<a name="line.235"></a>
+<span class="sourceLineNo">236</span>  }<a name="line.236"></a>
+<span class="sourceLineNo">237</span>}<a name="line.237"></a>
 
 
 

Reply via email to