Published site at 0fd4243fcd59f3a36c8325bd05a63a5c66cc1c23.
authorjenkins <builds@apache.org>
Tue, 15 Jan 2019 14:48:06 +0000 (14:48 +0000)
committerjenkins <builds@apache.org>
Tue, 15 Jan 2019 14:48:06 +0000 (14:48 +0000)
72 files changed:
acid-semantics.html
apache_hbase_reference_guide.pdf
book.html
bulk-loads.html
checkstyle-aggregate.html
coc.html
dependencies.html
dependency-convergence.html
dependency-info.html
dependency-management.html
devapidocs/constant-values.html
devapidocs/index-all.html
devapidocs/org/apache/hadoop/hbase/backup/package-tree.html
devapidocs/org/apache/hadoop/hbase/client/package-tree.html
devapidocs/org/apache/hadoop/hbase/executor/package-tree.html
devapidocs/org/apache/hadoop/hbase/filter/package-tree.html
devapidocs/org/apache/hadoop/hbase/io/hfile/package-tree.html
devapidocs/org/apache/hadoop/hbase/ipc/package-tree.html
devapidocs/org/apache/hadoop/hbase/mapreduce/package-tree.html
devapidocs/org/apache/hadoop/hbase/master/balancer/package-tree.html
devapidocs/org/apache/hadoop/hbase/master/package-tree.html
devapidocs/org/apache/hadoop/hbase/master/procedure/package-tree.html
devapidocs/org/apache/hadoop/hbase/package-tree.html
devapidocs/org/apache/hadoop/hbase/procedure2/package-tree.html
devapidocs/org/apache/hadoop/hbase/quotas/GlobalQuotaSettingsImpl.html
devapidocs/org/apache/hadoop/hbase/quotas/SpaceLimitSettings.html
devapidocs/org/apache/hadoop/hbase/quotas/package-tree.html
devapidocs/org/apache/hadoop/hbase/regionserver/package-tree.html
devapidocs/org/apache/hadoop/hbase/regionserver/querymatcher/package-tree.html
devapidocs/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.WalProps.html
devapidocs/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html
devapidocs/org/apache/hadoop/hbase/regionserver/wal/SequenceIdAccounting.html
devapidocs/org/apache/hadoop/hbase/replication/package-tree.html
devapidocs/org/apache/hadoop/hbase/replication/regionserver/package-tree.html
devapidocs/org/apache/hadoop/hbase/rest/model/package-tree.html
devapidocs/org/apache/hadoop/hbase/rsgroup/RSGroupBasedLoadBalancer.html
devapidocs/org/apache/hadoop/hbase/security/access/package-tree.html
devapidocs/org/apache/hadoop/hbase/util/package-tree.html
devapidocs/org/apache/hadoop/hbase/wal/package-tree.html
devapidocs/src-html/org/apache/hadoop/hbase/Version.html
devapidocs/src-html/org/apache/hadoop/hbase/quotas/GlobalQuotaSettingsImpl.html
devapidocs/src-html/org/apache/hadoop/hbase/quotas/SpaceLimitSettings.html
devapidocs/src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.WalProps.html
devapidocs/src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html
devapidocs/src-html/org/apache/hadoop/hbase/regionserver/wal/SequenceIdAccounting.html
devapidocs/src-html/org/apache/hadoop/hbase/rsgroup/RSGroupBasedLoadBalancer.html
downloads.html
export_control.html
index.html
integration.html
issue-tracking.html
license.html
mail-lists.html
metrics.html
old_news.html
plugin-management.html
plugins.html
poweredbyhbase.html
project-info.html
project-reports.html
project-summary.html
pseudo-distributed.html
replication.html
resources.html
source-repository.html
sponsors.html
supportingprojects.html
team-list.html
testdevapidocs/org/apache/hadoop/hbase/quotas/TestMasterQuotasObserver.html
testdevapidocs/org/apache/hadoop/hbase/regionserver/wal/TestSequenceIdAccounting.html
testdevapidocs/src-html/org/apache/hadoop/hbase/quotas/TestMasterQuotasObserver.html
testdevapidocs/src-html/org/apache/hadoop/hbase/regionserver/wal/TestSequenceIdAccounting.html

index c444b58..5a42a16 100644 (file)
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20190114" />
+    <meta name="Date-Revision-yyyymmdd" content="20190115" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013;  
       Apache HBase (TM) ACID Properties
@@ -611,7 +611,7 @@ under the License. -->
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2019-01-14</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2019-01-15</li>
             </p>
                 </div>
 
index acc2c12..69c4117 100644 (file)
@@ -5,8 +5,8 @@
 /Author (Apache HBase Team)
 /Creator (Asciidoctor PDF 1.5.0.alpha.15, based on Prawn 2.2.2)
 /Producer (Apache HBase Team)
-/ModDate (D:20190114142938+00'00')
-/CreationDate (D:20190114144425+00'00')
+/ModDate (D:20190115142936+00'00')
+/CreationDate (D:20190115144425+00'00')
 >>
 endobj
 2 0 obj
index 04bc06b..d955782 100644 (file)
--- a/book.html
+++ b/book.html
@@ -41428,7 +41428,7 @@ org/apache/hadoop/hbase/security/access/AccessControlClient.revoke:(Lorg/apache/
 <div id="footer">
 <div id="footer-text">
 Version 3.0.0-SNAPSHOT<br>
-Last updated 2019-01-14 14:29:38 UTC
+Last updated 2019-01-15 14:29:36 UTC
 </div>
 </div>
 </body>
index 5827cde..86e3482 100644 (file)
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20190114" />
+    <meta name="Date-Revision-yyyymmdd" content="20190115" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013;  
       Bulk Loads in Apache HBase (TM)
@@ -316,7 +316,7 @@ under the License. -->
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2019-01-14</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2019-01-15</li>
             </p>
                 </div>
 
index dfdf9f0..4c5a038 100644 (file)
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20190114" />
+    <meta name="Date-Revision-yyyymmdd" content="20190115" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Checkstyle Results</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.4-HBase.min.css" />
 <td><a class="externalLink" href="http://checkstyle.sourceforge.net/config_javadoc.html#JavadocTagContinuationIndentation">JavadocTagContinuationIndentation</a>
 <ul>
 <li>offset: <tt>&quot;2&quot;</tt></li></ul></td>
-<td>726</td>
+<td>727</td>
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td></tr>
 <tr class="b">
 <td></td>
 <td><a class="externalLink" href="http://checkstyle.sourceforge.net/config_javadoc.html#NonEmptyAtclauseDescription">NonEmptyAtclauseDescription</a></td>
-<td>3407</td>
+<td>3406</td>
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td></tr>
 <tr class="a">
 <td>misc</td>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
-<td>NonEmptyAtclauseDescription</td>
+<td>JavadocTagContinuationIndentation</td>
 <td>Javadoc comment at column 0 has parse error. Details: no viable alternative at input '   *' while parsing JAVADOC_TAG</td>
 <td>117</td></tr>
 <tr class="a">
 <td>whitespace</td>
 <td>ParenPad</td>
 <td>'(' is followed by whitespace.</td>
-<td>261</td></tr></table></div>
+<td>264</td></tr></table></div>
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.quotas.NamespaceQuotaSnapshotStore.java">org/apache/hadoop/hbase/quotas/NamespaceQuotaSnapshotStore.java</h3>
 <table border="0" class="table table-striped">
 <td>design</td>
 <td>VisibilityModifier</td>
 <td>Variable 'encodedName2HighestSequenceId' must be private and have accessor methods.</td>
-<td>246</td></tr>
+<td>255</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
-<td>862</td></tr>
+<td>904</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
-<td>863</td></tr>
+<td>905</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
-<td>864</td></tr>
+<td>906</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
-<td>865</td></tr></table></div>
+<td>907</td></tr></table></div>
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.regionserver.wal.AbstractProtobufLogWriter.java">org/apache/hadoop/hbase/regionserver/wal/AbstractProtobufLogWriter.java</h3>
 <table border="0" class="table table-striped">
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
-<td>112</td></tr>
+<td>113</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>JavadocTagContinuationIndentation</td>
 <td>Line continuation have incorrect indentation level, expected level should be 2.</td>
-<td>114</td></tr>
+<td>115</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
-<td>127</td></tr>
+<td>128</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
-<td>128</td></tr>
+<td>129</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>JavadocTagContinuationIndentation</td>
 <td>Line continuation have incorrect indentation level, expected level should be 2.</td>
-<td>157</td></tr>
+<td>158</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
-<td>169</td></tr>
+<td>170</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
-<td>170</td></tr>
+<td>171</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
-<td>171</td></tr>
+<td>172</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
-<td>243</td></tr>
+<td>244</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>JavadocTagContinuationIndentation</td>
 <td>Line continuation have incorrect indentation level, expected level should be 2.</td>
-<td>265</td></tr>
+<td>266</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>JavadocTagContinuationIndentation</td>
 <td>Line continuation have incorrect indentation level, expected level should be 2.</td>
-<td>266</td></tr>
+<td>267</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>JavadocTagContinuationIndentation</td>
 <td>Line continuation have incorrect indentation level, expected level should be 2.</td>
-<td>267</td></tr>
+<td>268</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>javadoc</td>
 <td>JavadocTagContinuationIndentation</td>
 <td>Line continuation have incorrect indentation level, expected level should be 2.</td>
-<td>268</td></tr></table></div>
+<td>269</td></tr></table></div>
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.regionserver.wal.TestLogRolling.java">org/apache/hadoop/hbase/regionserver/wal/TestLogRolling.java</h3>
 <table border="0" class="table table-striped">
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2019-01-14</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2019-01-15</li>
             </p>
                 </div>
 
index 19dec13..235ffd5 100644 (file)
--- a/coc.html
+++ b/coc.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20190114" />
+    <meta name="Date-Revision-yyyymmdd" content="20190115" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; 
       Code of Conduct Policy
@@ -385,7 +385,7 @@ email to <a class="externalLink" href="mailto:private@hbase.apache.org">the priv
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2019-01-14</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2019-01-15</li>
             </p>
                 </div>
 
index 38e102c..168ae76 100644 (file)
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20190114" />
+    <meta name="Date-Revision-yyyymmdd" content="20190115" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Project Dependencies</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.4-HBase.min.css" />
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2019-01-14</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2019-01-15</li>
             </p>
                 </div>
 
index c037621..72b9f16 100644 (file)
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20190114" />
+    <meta name="Date-Revision-yyyymmdd" content="20190115" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Reactor Dependency Convergence</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.4-HBase.min.css" />
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2019-01-14</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2019-01-15</li>
             </p>
                 </div>
 
index ba11fff..3d06b6c 100644 (file)
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20190114" />
+    <meta name="Date-Revision-yyyymmdd" content="20190115" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Dependency Information</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.4-HBase.min.css" />
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2019-01-14</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2019-01-15</li>
             </p>
                 </div>
 
index f5ae4be..50e2f52 100644 (file)
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20190114" />
+    <meta name="Date-Revision-yyyymmdd" content="20190115" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Project Dependency Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.4-HBase.min.css" />
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2019-01-14</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2019-01-15</li>
             </p>
                 </div>
 
index 05febef..59ecaaf 100644 (file)
 <!--   -->
 </a><code>public&nbsp;static&nbsp;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></code></td>
 <td><code><a href="org/apache/hadoop/hbase/Version.html#date">date</a></code></td>
-<td class="colLast"><code>"Mon Jan 14 14:38:58 UTC 2019"</code></td>
+<td class="colLast"><code>"Tue Jan 15 14:39:12 UTC 2019"</code></td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><a name="org.apache.hadoop.hbase.Version.revision">
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
 <td><code><a href="org/apache/hadoop/hbase/Version.html#srcChecksum">srcChecksum</a></code></td>
-<td class="colLast"><code>"6cc88325ceec613e143514ae8aff5140"</code></td>
+<td class="colLast"><code>"ed506af884e2c5b1d19bcf69c5fb40d0"</code></td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><a name="org.apache.hadoop.hbase.Version.url">
 <td><code><a href="org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#DEFAULT_WAL_SYNC_TIMEOUT_MS">DEFAULT_WAL_SYNC_TIMEOUT_MS</a></code></td>
 <td class="colLast"><code>300000</code></td>
 </tr>
+<tr class="altColor">
+<td class="colFirst"><a name="org.apache.hadoop.hbase.regionserver.wal.AbstractFSWAL.SURVIVED_TOO_LONG_SEC_DEFAULT">
+<!--   -->
+</a><code>private&nbsp;static&nbsp;final&nbsp;int</code></td>
+<td><code><a href="org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#SURVIVED_TOO_LONG_SEC_DEFAULT">SURVIVED_TOO_LONG_SEC_DEFAULT</a></code></td>
+<td class="colLast"><code>900</code></td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a name="org.apache.hadoop.hbase.regionserver.wal.AbstractFSWAL.SURVIVED_TOO_LONG_SEC_KEY">
+<!--   -->
+</a><code>private&nbsp;static&nbsp;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></code></td>
+<td><code><a href="org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#SURVIVED_TOO_LONG_SEC_KEY">SURVIVED_TOO_LONG_SEC_KEY</a></code></td>
+<td class="colLast"><code>"hbase.regionserver.wal.too.old.sec"</code></td>
+</tr>
 </tbody>
 </table>
 </li>
index b532e79..775ccd7 100644 (file)
              Use <a href="org/apache/hadoop/hbase/client/RegionInfo.html#areAdjacent-org.apache.hadoop.hbase.client.RegionInfo-org.apache.hadoop.hbase.client.RegionInfo-"><code>RegionInfo.areAdjacent(RegionInfo, RegionInfo)</code></a>.</span></div>
 </div>
 </dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/wal/SequenceIdAccounting.html#areAllLower-java.util.Map-">areAllLower(Map&lt;byte[], Long&gt;)</a></span> - Method in class org.apache.hadoop.hbase.regionserver.wal.<a href="org/apache/hadoop/hbase/regionserver/wal/SequenceIdAccounting.html" title="class in org.apache.hadoop.hbase.regionserver.wal">SequenceIdAccounting</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/wal/SequenceIdAccounting.html#areAllLower-java.util.Map-java.util.Collection-">areAllLower(Map&lt;byte[], Long&gt;, Collection&lt;byte[]&gt;)</a></span> - Method in class org.apache.hadoop.hbase.regionserver.wal.<a href="org/apache/hadoop/hbase/regionserver/wal/SequenceIdAccounting.html" title="class in org.apache.hadoop.hbase.regionserver.wal">SequenceIdAccounting</a></dt>
 <dd>
 <div class="block">See if passed <code>sequenceids</code> are lower -- i.e.</div>
 </dd>
 <dd>
 <div class="block">Remove the currently archived tables.</div>
 </dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/quotas/GlobalQuotaSettingsImpl.html#clearThrottleBuilder-org.apache.hadoop.hbase.shaded.protobuf.generated.QuotaProtos.Throttle.Builder-">clearThrottleBuilder(QuotaProtos.Throttle.Builder)</a></span> - Method in class org.apache.hadoop.hbase.quotas.<a href="org/apache/hadoop/hbase/quotas/GlobalQuotaSettingsImpl.html" title="class in org.apache.hadoop.hbase.quotas">GlobalQuotaSettingsImpl</a></dt>
-<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/zookeeper/MetricsZooKeeperSourceImpl.html#clearZKExceptionMetrics--">clearZKExceptionMetrics()</a></span> - Method in class org.apache.hadoop.hbase.zookeeper.<a href="org/apache/hadoop/hbase/zookeeper/MetricsZooKeeperSourceImpl.html" title="class in org.apache.hadoop.hbase.zookeeper">MetricsZooKeeperSourceImpl</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/procedure/ZKProcedureUtil.html#clearZNodes-java.lang.String-">clearZNodes(String)</a></span> - Method in class org.apache.hadoop.hbase.procedure.<a href="org/apache/hadoop/hbase/procedure/ZKProcedureUtil.html" title="class in org.apache.hadoop.hbase.procedure">ZKProcedureUtil</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/io/encoding/RowIndexSeekerV1.SeekerState.html#nextKvOffset">nextKvOffset</a></span> - Variable in class org.apache.hadoop.hbase.io.encoding.<a href="org/apache/hadoop/hbase/io/encoding/RowIndexSeekerV1.SeekerState.html" title="class in org.apache.hadoop.hbase.io.encoding">RowIndexSeekerV1.SeekerState</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#nextLogTooOldNs">nextLogTooOldNs</a></span> - Variable in class org.apache.hadoop.hbase.regionserver.wal.<a href="org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html" title="class in org.apache.hadoop.hbase.regionserver.wal">AbstractFSWAL</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/util/Random64.html#nextLong--">nextLong()</a></span> - Method in class org.apache.hadoop.hbase.util.<a href="org/apache/hadoop/hbase/util/Random64.html" title="class in org.apache.hadoop.hbase.util">Random64</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutput.html#nextPacketOffsetInBlock">nextPacketOffsetInBlock</a></span> - Variable in class org.apache.hadoop.hbase.io.asyncfs.<a href="org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutput.html" title="class in org.apache.hadoop.hbase.io.asyncfs">FanOutOneBlockAsyncDFSOutput</a></dt>
@@ -97943,6 +97943,10 @@ service.</div>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/procedure2/store/wal/WALProcedureStore.html#rollThreshold">rollThreshold</a></span> - Variable in class org.apache.hadoop.hbase.procedure2.store.wal.<a href="org/apache/hadoop/hbase/procedure2/store/wal/WALProcedureStore.html" title="class in org.apache.hadoop.hbase.procedure2.store.wal">WALProcedureStore</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.WalProps.html#rollTimeNs">rollTimeNs</a></span> - Variable in class org.apache.hadoop.hbase.regionserver.wal.<a href="org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.WalProps.html" title="class in org.apache.hadoop.hbase.regionserver.wal">AbstractFSWAL.WalProps</a></dt>
+<dd>
+<div class="block">The nanoTime of the log rolling, used to determine the time interval that has passed since.</div>
+</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/Admin.html#rollWALWriter-org.apache.hadoop.hbase.ServerName-">rollWALWriter(ServerName)</a></span> - Method in interface org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/Admin.html" title="interface in org.apache.hadoop.hbase.client">Admin</a></dt>
 <dd>
 <div class="block">Roll the log writer.</div>
@@ -113585,6 +113589,14 @@ service.</div>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/ShutdownHook.html#suppressHdfsShutdownHook-org.apache.hadoop.fs.FileSystem-">suppressHdfsShutdownHook(FileSystem)</a></span> - Static method in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/ShutdownHook.html" title="class in org.apache.hadoop.hbase.regionserver">ShutdownHook</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#SURVIVED_TOO_LONG_LOG_INTERVAL_NS">SURVIVED_TOO_LONG_LOG_INTERVAL_NS</a></span> - Static variable in class org.apache.hadoop.hbase.regionserver.wal.<a href="org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html" title="class in org.apache.hadoop.hbase.regionserver.wal">AbstractFSWAL</a></dt>
+<dd>
+<div class="block">Don't log blocking regions more frequently than this.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#SURVIVED_TOO_LONG_SEC_DEFAULT">SURVIVED_TOO_LONG_SEC_DEFAULT</a></span> - Static variable in class org.apache.hadoop.hbase.regionserver.wal.<a href="org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html" title="class in org.apache.hadoop.hbase.regionserver.wal">AbstractFSWAL</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#SURVIVED_TOO_LONG_SEC_KEY">SURVIVED_TOO_LONG_SEC_KEY</a></span> - Static variable in class org.apache.hadoop.hbase.regionserver.wal.<a href="org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html" title="class in org.apache.hadoop.hbase.regionserver.wal">AbstractFSWAL</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/AdvancedScanResultConsumer.ScanController.html#suspend--">suspend()</a></span> - Method in interface org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/AdvancedScanResultConsumer.ScanController.html" title="interface in org.apache.hadoop.hbase.client">AdvancedScanResultConsumer.ScanController</a></dt>
 <dd>
 <div class="block">Suspend the scan.</div>
@@ -122080,6 +122092,8 @@ service.</div>
 <dd>
 <div class="block">Verifies root directory path is a valid URI with a scheme</div>
 </dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/quotas/SpaceLimitSettings.html#validateSizeLimit-long-">validateSizeLimit(long)</a></span> - Method in class org.apache.hadoop.hbase.quotas.<a href="org/apache/hadoop/hbase/quotas/SpaceLimitSettings.html" title="class in org.apache.hadoop.hbase.quotas">SpaceLimitSettings</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/HStore.html#validateStoreFile-org.apache.hadoop.fs.Path-">validateStoreFile(Path)</a></span> - Method in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/HStore.html" title="class in org.apache.hadoop.hbase.regionserver">HStore</a></dt>
 <dd>
 <div class="block">Validates a store file by opening and closing it.</div>
@@ -125221,6 +125235,8 @@ the order they are declared.</div>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/backup/impl/IncrementalTableBackupClient.html#walToHFiles-java.util.List-java.util.List-">walToHFiles(List&lt;String&gt;, List&lt;String&gt;)</a></span> - Method in class org.apache.hadoop.hbase.backup.impl.<a href="org/apache/hadoop/hbase/backup/impl/IncrementalTableBackupClient.html" title="class in org.apache.hadoop.hbase.backup.impl">IncrementalTableBackupClient</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#walTooOldNs">walTooOldNs</a></span> - Variable in class org.apache.hadoop.hbase.regionserver.wal.<a href="org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html" title="class in org.apache.hadoop.hbase.regionserver.wal">AbstractFSWAL</a></dt>
+<dd>&nbsp;</dd>
 <dt><a href="org/apache/hadoop/hbase/regionserver/wal/WALUtil.html" title="class in org.apache.hadoop.hbase.regionserver.wal"><span class="typeNameLink">WALUtil</span></a> - Class in <a href="org/apache/hadoop/hbase/regionserver/wal/package-summary.html">org.apache.hadoop.hbase.regionserver.wal</a></dt>
 <dd>
 <div class="block">Helper methods to ease Region Server integration with the Write Ahead Log (WAL).</div>
index 4a1c416..e8802e0 100644 (file)
 <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" title="class or interface in java.io">Serializable</a>)
 <ul>
-<li type="circle">org.apache.hadoop.hbase.backup.<a href="../../../../../org/apache/hadoop/hbase/backup/BackupType.html" title="enum in org.apache.hadoop.hbase.backup"><span class="typeNameLink">BackupType</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.backup.<a href="../../../../../org/apache/hadoop/hbase/backup/BackupInfo.BackupState.html" title="enum in org.apache.hadoop.hbase.backup"><span class="typeNameLink">BackupInfo.BackupState</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.backup.<a href="../../../../../org/apache/hadoop/hbase/backup/BackupInfo.BackupPhase.html" title="enum in org.apache.hadoop.hbase.backup"><span class="typeNameLink">BackupInfo.BackupPhase</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.backup.<a href="../../../../../org/apache/hadoop/hbase/backup/BackupInfo.BackupState.html" title="enum in org.apache.hadoop.hbase.backup"><span class="typeNameLink">BackupInfo.BackupState</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.backup.<a href="../../../../../org/apache/hadoop/hbase/backup/BackupType.html" title="enum in org.apache.hadoop.hbase.backup"><span class="typeNameLink">BackupType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.backup.<a href="../../../../../org/apache/hadoop/hbase/backup/BackupRestoreConstants.BackupCommand.html" title="enum in org.apache.hadoop.hbase.backup"><span class="typeNameLink">BackupRestoreConstants.BackupCommand</span></a></li>
 </ul>
 </li>
index b49cc30..7f420d0 100644 (file)
 <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" title="class or interface in java.io">Serializable</a>)
 <ul>
+<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/CompactType.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">CompactType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/ScannerCallable.MoreResults.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">ScannerCallable.MoreResults</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/RegionLocateType.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">RegionLocateType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/MobCompactPartitionPolicy.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">MobCompactPartitionPolicy</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/AbstractResponse.ResponseType.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">AbstractResponse.ResponseType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/MasterSwitchType.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">MasterSwitchType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/AsyncRequestFutureImpl.Retry.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">AsyncRequestFutureImpl.Retry</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/AsyncProcessTask.SubmittedRows.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">AsyncProcessTask.SubmittedRows</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/Consistency.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">Consistency</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/AsyncScanSingleRegionRpcRetryingCaller.ScanControllerState.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">AsyncScanSingleRegionRpcRetryingCaller.ScanControllerState</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/SnapshotType.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">SnapshotType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/RequestController.ReturnCode.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">RequestController.ReturnCode</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/AsyncProcessTask.SubmittedRows.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">AsyncProcessTask.SubmittedRows</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/Scan.ReadType.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">Scan.ReadType</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/Durability.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">Durability</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/CompactionState.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">CompactionState</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/AbstractResponse.ResponseType.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">AbstractResponse.ResponseType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/TableState.State.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">TableState.State</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/AsyncScanSingleRegionRpcRetryingCaller.ScanControllerState.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">AsyncScanSingleRegionRpcRetryingCaller.ScanControllerState</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/IsolationLevel.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">IsolationLevel</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/AsyncScanSingleRegionRpcRetryingCaller.ScanResumerState.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">AsyncScanSingleRegionRpcRetryingCaller.ScanResumerState</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/CompactType.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">CompactType</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/RequestController.ReturnCode.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">RequestController.ReturnCode</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/TableState.State.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">TableState.State</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/MasterSwitchType.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">MasterSwitchType</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/RegionLocateType.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">RegionLocateType</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/ScannerCallable.MoreResults.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">ScannerCallable.MoreResults</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/MobCompactPartitionPolicy.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">MobCompactPartitionPolicy</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/Consistency.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">Consistency</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/Durability.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">Durability</span></a></li>
 </ul>
 </li>
 </ul>
index 531254c..127caa7 100644 (file)
 <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" title="class or interface in java.io">Serializable</a>)
 <ul>
-<li type="circle">org.apache.hadoop.hbase.executor.<a href="../../../../../org/apache/hadoop/hbase/executor/ExecutorType.html" title="enum in org.apache.hadoop.hbase.executor"><span class="typeNameLink">ExecutorType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.executor.<a href="../../../../../org/apache/hadoop/hbase/executor/EventType.html" title="enum in org.apache.hadoop.hbase.executor"><span class="typeNameLink">EventType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.executor.<a href="../../../../../org/apache/hadoop/hbase/executor/ExecutorType.html" title="enum in org.apache.hadoop.hbase.executor"><span class="typeNameLink">ExecutorType</span></a></li>
 </ul>
 </li>
 </ul>
index f1029aa..31eff65 100644 (file)
 <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" title="class or interface in java.io">Serializable</a>)
 <ul>
-<li type="circle">org.apache.hadoop.hbase.filter.<a href="../../../../../org/apache/hadoop/hbase/filter/FuzzyRowFilter.SatisfiesCode.html" title="enum in org.apache.hadoop.hbase.filter"><span class="typeNameLink">FuzzyRowFilter.SatisfiesCode</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.filter.<a href="../../../../../org/apache/hadoop/hbase/filter/CompareFilter.CompareOp.html" title="enum in org.apache.hadoop.hbase.filter"><span class="typeNameLink">CompareFilter.CompareOp</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.filter.<a href="../../../../../org/apache/hadoop/hbase/filter/FilterWrapper.FilterRowRetCode.html" title="enum in org.apache.hadoop.hbase.filter"><span class="typeNameLink">FilterWrapper.FilterRowRetCode</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.filter.<a href="../../../../../org/apache/hadoop/hbase/filter/RegexStringComparator.EngineType.html" title="enum in org.apache.hadoop.hbase.filter"><span class="typeNameLink">RegexStringComparator.EngineType</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.filter.<a href="../../../../../org/apache/hadoop/hbase/filter/Filter.ReturnCode.html" title="enum in org.apache.hadoop.hbase.filter"><span class="typeNameLink">Filter.ReturnCode</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.filter.<a href="../../../../../org/apache/hadoop/hbase/filter/FilterList.Operator.html" title="enum in org.apache.hadoop.hbase.filter"><span class="typeNameLink">FilterList.Operator</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.filter.<a href="../../../../../org/apache/hadoop/hbase/filter/FuzzyRowFilter.Order.html" title="enum in org.apache.hadoop.hbase.filter"><span class="typeNameLink">FuzzyRowFilter.Order</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.filter.<a href="../../../../../org/apache/hadoop/hbase/filter/FilterList.Operator.html" title="enum in org.apache.hadoop.hbase.filter"><span class="typeNameLink">FilterList.Operator</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.filter.<a href="../../../../../org/apache/hadoop/hbase/filter/Filter.ReturnCode.html" title="enum in org.apache.hadoop.hbase.filter"><span class="typeNameLink">Filter.ReturnCode</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.filter.<a href="../../../../../org/apache/hadoop/hbase/filter/BitComparator.BitwiseOp.html" title="enum in org.apache.hadoop.hbase.filter"><span class="typeNameLink">BitComparator.BitwiseOp</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.filter.<a href="../../../../../org/apache/hadoop/hbase/filter/RegexStringComparator.EngineType.html" title="enum in org.apache.hadoop.hbase.filter"><span class="typeNameLink">RegexStringComparator.EngineType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.filter.<a href="../../../../../org/apache/hadoop/hbase/filter/CompareFilter.CompareOp.html" title="enum in org.apache.hadoop.hbase.filter"><span class="typeNameLink">CompareFilter.CompareOp</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.filter.<a href="../../../../../org/apache/hadoop/hbase/filter/FuzzyRowFilter.SatisfiesCode.html" title="enum in org.apache.hadoop.hbase.filter"><span class="typeNameLink">FuzzyRowFilter.SatisfiesCode</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.filter.<a href="../../../../../org/apache/hadoop/hbase/filter/FilterWrapper.FilterRowRetCode.html" title="enum in org.apache.hadoop.hbase.filter"><span class="typeNameLink">FilterWrapper.FilterRowRetCode</span></a></li>
 </ul>
 </li>
 </ul>
index 62fd5cc..fe1d21e 100644 (file)
 <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" title="class or interface in java.io">Serializable</a>)
 <ul>
+<li type="circle">org.apache.hadoop.hbase.io.hfile.<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockPriority.html" title="enum in org.apache.hadoop.hbase.io.hfile"><span class="typeNameLink">BlockPriority</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.io.hfile.<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockType.BlockCategory.html" title="enum in org.apache.hadoop.hbase.io.hfile"><span class="typeNameLink">BlockType.BlockCategory</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.io.hfile.<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCacheFactory.ExternalBlockCaches.html" title="enum in org.apache.hadoop.hbase.io.hfile"><span class="typeNameLink">BlockCacheFactory.ExternalBlockCaches</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.io.hfile.<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/Cacheable.MemoryType.html" title="enum in org.apache.hadoop.hbase.io.hfile"><span class="typeNameLink">Cacheable.MemoryType</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.io.hfile.<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockPriority.html" title="enum in org.apache.hadoop.hbase.io.hfile"><span class="typeNameLink">BlockPriority</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.io.hfile.<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockType.html" title="enum in org.apache.hadoop.hbase.io.hfile"><span class="typeNameLink">BlockType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.io.hfile.<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlock.Writer.State.html" title="enum in org.apache.hadoop.hbase.io.hfile"><span class="typeNameLink">HFileBlock.Writer.State</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.io.hfile.<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockType.html" title="enum in org.apache.hadoop.hbase.io.hfile"><span class="typeNameLink">BlockType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.io.hfile.<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCacheFactory.ExternalBlockCaches.html" title="enum in org.apache.hadoop.hbase.io.hfile"><span class="typeNameLink">BlockCacheFactory.ExternalBlockCaches</span></a></li>
 </ul>
 </li>
 </ul>
index d288952..53b29e4 100644 (file)
 <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" title="class or interface in java.io">Serializable</a>)
 <ul>
+<li type="circle">org.apache.hadoop.hbase.ipc.<a href="../../../../../org/apache/hadoop/hbase/ipc/MetricsHBaseServerSourceFactoryImpl.SourceStorage.html" title="enum in org.apache.hadoop.hbase.ipc"><span class="typeNameLink">MetricsHBaseServerSourceFactoryImpl.SourceStorage</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.ipc.<a href="../../../../../org/apache/hadoop/hbase/ipc/CallEvent.Type.html" title="enum in org.apache.hadoop.hbase.ipc"><span class="typeNameLink">CallEvent.Type</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.ipc.<a href="../../../../../org/apache/hadoop/hbase/ipc/BufferCallBeforeInitHandler.BufferCallAction.html" title="enum in org.apache.hadoop.hbase.ipc"><span class="typeNameLink">BufferCallBeforeInitHandler.BufferCallAction</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.ipc.<a href="../../../../../org/apache/hadoop/hbase/ipc/MetricsHBaseServerSourceFactoryImpl.SourceStorage.html" title="enum in org.apache.hadoop.hbase.ipc"><span class="typeNameLink">MetricsHBaseServerSourceFactoryImpl.SourceStorage</span></a></li>
 </ul>
 </li>
 </ul>
index 39263ee..5ed9b3c 100644 (file)
 <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" title="class or interface in java.io">Serializable</a>)
 <ul>
-<li type="circle">org.apache.hadoop.hbase.mapreduce.<a href="../../../../../org/apache/hadoop/hbase/mapreduce/SyncTable.SyncMapper.Counter.html" title="enum in org.apache.hadoop.hbase.mapreduce"><span class="typeNameLink">SyncTable.SyncMapper.Counter</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.mapreduce.<a href="../../../../../org/apache/hadoop/hbase/mapreduce/TableSplit.Version.html" title="enum in org.apache.hadoop.hbase.mapreduce"><span class="typeNameLink">TableSplit.Version</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.mapreduce.<a href="../../../../../org/apache/hadoop/hbase/mapreduce/CellCounter.CellCounterMapper.Counters.html" title="enum in org.apache.hadoop.hbase.mapreduce"><span class="typeNameLink">CellCounter.CellCounterMapper.Counters</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.mapreduce.<a href="../../../../../org/apache/hadoop/hbase/mapreduce/SyncTable.SyncMapper.Counter.html" title="enum in org.apache.hadoop.hbase.mapreduce"><span class="typeNameLink">SyncTable.SyncMapper.Counter</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.mapreduce.<a href="../../../../../org/apache/hadoop/hbase/mapreduce/RowCounter.RowCounterMapper.Counters.html" title="enum in org.apache.hadoop.hbase.mapreduce"><span class="typeNameLink">RowCounter.RowCounterMapper.Counters</span></a></li>
 </ul>
 </li>
index c49c655..848d41f 100644 (file)
 <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" title="class or interface in java.io">Serializable</a>)
 <ul>
-<li type="circle">org.apache.hadoop.hbase.master.balancer.<a href="../../../../../../org/apache/hadoop/hbase/master/balancer/BaseLoadBalancer.Cluster.LocalityType.html" title="enum in org.apache.hadoop.hbase.master.balancer"><span class="typeNameLink">BaseLoadBalancer.Cluster.LocalityType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.master.balancer.<a href="../../../../../../org/apache/hadoop/hbase/master/balancer/BaseLoadBalancer.Cluster.Action.Type.html" title="enum in org.apache.hadoop.hbase.master.balancer"><span class="typeNameLink">BaseLoadBalancer.Cluster.Action.Type</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.master.balancer.<a href="../../../../../../org/apache/hadoop/hbase/master/balancer/BaseLoadBalancer.Cluster.LocalityType.html" title="enum in org.apache.hadoop.hbase.master.balancer"><span class="typeNameLink">BaseLoadBalancer.Cluster.LocalityType</span></a></li>
 </ul>
 </li>
 </ul>
index df0c609..5b4173f 100644 (file)
 <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" title="class or interface in java.io">Serializable</a>)
 <ul>
-<li type="circle">org.apache.hadoop.hbase.master.<a href="../../../../../org/apache/hadoop/hbase/master/SplitLogManager.TerminationStatus.html" title="enum in org.apache.hadoop.hbase.master"><span class="typeNameLink">SplitLogManager.TerminationStatus</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.master.<a href="../../../../../org/apache/hadoop/hbase/master/SplitLogManager.ResubmitDirective.html" title="enum in org.apache.hadoop.hbase.master"><span class="typeNameLink">SplitLogManager.ResubmitDirective</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.master.<a href="../../../../../org/apache/hadoop/hbase/master/MetricsMasterSourceFactoryImpl.FactoryStorage.html" title="enum in org.apache.hadoop.hbase.master"><span class="typeNameLink">MetricsMasterSourceFactoryImpl.FactoryStorage</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.master.<a href="../../../../../org/apache/hadoop/hbase/master/MasterRpcServices.BalanceSwitchMode.html" title="enum in org.apache.hadoop.hbase.master"><span class="typeNameLink">MasterRpcServices.BalanceSwitchMode</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.master.<a href="../../../../../org/apache/hadoop/hbase/master/RegionState.State.html" title="enum in org.apache.hadoop.hbase.master"><span class="typeNameLink">RegionState.State</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.master.<a href="../../../../../org/apache/hadoop/hbase/master/SplitLogManager.TerminationStatus.html" title="enum in org.apache.hadoop.hbase.master"><span class="typeNameLink">SplitLogManager.TerminationStatus</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.master.<a href="../../../../../org/apache/hadoop/hbase/master/SplitLogManager.ResubmitDirective.html" title="enum in org.apache.hadoop.hbase.master"><span class="typeNameLink">SplitLogManager.ResubmitDirective</span></a></li>
 </ul>
 </li>
 </ul>
index 9c87906..42ba37b 100644 (file)
 <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" title="class or interface in java.io">Serializable</a>)
 <ul>
+<li type="circle">org.apache.hadoop.hbase.master.procedure.<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/ServerProcedureInterface.ServerOperationType.html" title="enum in org.apache.hadoop.hbase.master.procedure"><span class="typeNameLink">ServerProcedureInterface.ServerOperationType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.master.procedure.<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MetaProcedureInterface.MetaOperationType.html" title="enum in org.apache.hadoop.hbase.master.procedure"><span class="typeNameLink">MetaProcedureInterface.MetaOperationType</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.master.procedure.<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/TableProcedureInterface.TableOperationType.html" title="enum in org.apache.hadoop.hbase.master.procedure"><span class="typeNameLink">TableProcedureInterface.TableOperationType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.master.procedure.<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/PeerProcedureInterface.PeerOperationType.html" title="enum in org.apache.hadoop.hbase.master.procedure"><span class="typeNameLink">PeerProcedureInterface.PeerOperationType</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.master.procedure.<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/ServerProcedureInterface.ServerOperationType.html" title="enum in org.apache.hadoop.hbase.master.procedure"><span class="typeNameLink">ServerProcedureInterface.ServerOperationType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.master.procedure.<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/TableProcedureInterface.TableOperationType.html" title="enum in org.apache.hadoop.hbase.master.procedure"><span class="typeNameLink">TableProcedureInterface.TableOperationType</span></a></li>
 </ul>
 </li>
 </ul>
index 412cb7e..52ce2ae 100644 (file)
 <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" title="class or interface in java.io">Serializable</a>)
 <ul>
-<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/ClusterMetrics.Option.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">ClusterMetrics.Option</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/KeepDeletedCells.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">KeepDeletedCells</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/CompatibilitySingletonFactory.SingletonStorage.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">CompatibilitySingletonFactory.SingletonStorage</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/HConstants.OperationStatusCode.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">HConstants.OperationStatusCode</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/Size.Unit.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">Size.Unit</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/HealthChecker.HealthCheckerExitStatus.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">HealthChecker.HealthCheckerExitStatus</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/KeyValue.Type.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">KeyValue.Type</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/Cell.Type.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">Cell.Type</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/Size.Unit.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">Size.Unit</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/CellBuilderType.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">CellBuilderType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/KeepDeletedCells.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">KeepDeletedCells</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/Coprocessor.State.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">Coprocessor.State</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/HConstants.OperationStatusCode.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">HConstants.OperationStatusCode</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/CompareOperator.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">CompareOperator</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/ClusterMetrics.Option.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">ClusterMetrics.Option</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/CompatibilitySingletonFactory.SingletonStorage.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">CompatibilitySingletonFactory.SingletonStorage</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/MetaTableAccessor.QueryType.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">MetaTableAccessor.QueryType</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/Coprocessor.State.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">Coprocessor.State</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/MemoryCompactionPolicy.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">MemoryCompactionPolicy</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/KeyValue.Type.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">KeyValue.Type</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/CellBuilderType.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">CellBuilderType</span></a></li>
 </ul>
 </li>
 </ul>
index a77b719..3613612 100644 (file)
 <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" title="class or interface in java.io">Serializable</a>)
 <ul>
-<li type="circle">org.apache.hadoop.hbase.procedure2.<a href="../../../../../org/apache/hadoop/hbase/procedure2/RootProcedureState.State.html" title="enum in org.apache.hadoop.hbase.procedure2"><span class="typeNameLink">RootProcedureState.State</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.procedure2.<a href="../../../../../org/apache/hadoop/hbase/procedure2/LockedResourceType.html" title="enum in org.apache.hadoop.hbase.procedure2"><span class="typeNameLink">LockedResourceType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.procedure2.<a href="../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.Flow.html" title="enum in org.apache.hadoop.hbase.procedure2"><span class="typeNameLink">StateMachineProcedure.Flow</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.procedure2.<a href="../../../../../org/apache/hadoop/hbase/procedure2/LockedResourceType.html" title="enum in org.apache.hadoop.hbase.procedure2"><span class="typeNameLink">LockedResourceType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.procedure2.<a href="../../../../../org/apache/hadoop/hbase/procedure2/RootProcedureState.State.html" title="enum in org.apache.hadoop.hbase.procedure2"><span class="typeNameLink">RootProcedureState.State</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.procedure2.<a href="../../../../../org/apache/hadoop/hbase/procedure2/LockType.html" title="enum in org.apache.hadoop.hbase.procedure2"><span class="typeNameLink">LockType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.procedure2.<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.LockState.html" title="enum in org.apache.hadoop.hbase.procedure2"><span class="typeNameLink">Procedure.LockState</span></a></li>
 </ul>
index cbb1d94..9fa35d0 100644 (file)
@@ -18,7 +18,7 @@
     catch(err) {
     }
 //-->
-var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10};
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10};
 var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
 var altColor = "altColor";
 var rowColor = "rowColor";
@@ -204,46 +204,42 @@ extends <a href="../../../../../org/apache/hadoop/hbase/quotas/GlobalQuotaSettin
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/GlobalQuotaSettingsImpl.html#buildThrottleQuotas-org.apache.hadoop.hbase.shaded.protobuf.generated.QuotaProtos.Throttle-">buildThrottleQuotas</a></span>(org.apache.hadoop.hbase.shaded.protobuf.generated.QuotaProtos.Throttle&nbsp;proto)</code>&nbsp;</td>
 </tr>
 <tr id="i1" class="rowColor">
-<td class="colFirst"><code>private void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/GlobalQuotaSettingsImpl.html#clearThrottleBuilder-org.apache.hadoop.hbase.shaded.protobuf.generated.QuotaProtos.Throttle.Builder-">clearThrottleBuilder</a></span>(org.apache.hadoop.hbase.shaded.protobuf.generated.QuotaProtos.Throttle.Builder&nbsp;builder)</code>&nbsp;</td>
-</tr>
-<tr id="i2" class="altColor">
 <td class="colFirst"><code>protected <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/GlobalQuotaSettingsImpl.html#getBypassGlobals--">getBypassGlobals</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i3" class="rowColor">
+<tr id="i2" class="altColor">
 <td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/quotas/QuotaSettings.html" title="class in org.apache.hadoop.hbase.quotas">QuotaSettings</a>&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/GlobalQuotaSettingsImpl.html#getQuotaSettings--">getQuotaSettings</a></span>()</code>
 <div class="block">Computes a list of QuotaSettings that present the complete quota state of the combination of
  this user, table, and/or namespace.</div>
 </td>
 </tr>
-<tr id="i4" class="altColor">
+<tr id="i3" class="rowColor">
 <td class="colFirst"><code>protected org.apache.hadoop.hbase.shaded.protobuf.generated.QuotaProtos.SpaceQuota</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/GlobalQuotaSettingsImpl.html#getSpaceProto--">getSpaceProto</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i5" class="rowColor">
+<tr id="i4" class="altColor">
 <td class="colFirst"><code>protected org.apache.hadoop.hbase.shaded.protobuf.generated.QuotaProtos.Throttle</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/GlobalQuotaSettingsImpl.html#getThrottleProto--">getThrottleProto</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i6" class="altColor">
+<tr id="i5" class="rowColor">
 <td class="colFirst"><code>protected <a href="../../../../../org/apache/hadoop/hbase/quotas/GlobalQuotaSettingsImpl.html" title="class in org.apache.hadoop.hbase.quotas">GlobalQuotaSettingsImpl</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/GlobalQuotaSettingsImpl.html#merge-org.apache.hadoop.hbase.quotas.QuotaSettings-">merge</a></span>(<a href="../../../../../org/apache/hadoop/hbase/quotas/QuotaSettings.html" title="class in org.apache.hadoop.hbase.quotas">QuotaSettings</a>&nbsp;other)</code>
 <div class="block">Merges the provided settings with <code>this</code> and returns a new settings
  object to the caller if the merged settings differ from the original.</div>
 </td>
 </tr>
-<tr id="i7" class="rowColor">
+<tr id="i6" class="altColor">
 <td class="colFirst"><code>protected org.apache.hadoop.hbase.shaded.protobuf.generated.QuotaProtos.Quotas</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/GlobalQuotaSettingsImpl.html#toQuotas--">toQuotas</a></span>()</code>
 <div class="block">Constructs a new <code>QuotaProtos.Quotas</code> message from <code>this</code>.</div>
 </td>
 </tr>
-<tr id="i8" class="altColor">
+<tr id="i7" class="rowColor">
 <td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/GlobalQuotaSettingsImpl.html#toString--">toString</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i9" class="rowColor">
+<tr id="i8" class="altColor">
 <td class="colFirst"><code>private void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/GlobalQuotaSettingsImpl.html#validateTimedQuota-org.apache.hadoop.hbase.shaded.protobuf.generated.QuotaProtos.TimedQuota-">validateTimedQuota</a></span>(org.apache.hadoop.hbase.shaded.protobuf.generated.QuotaProtos.TimedQuota&nbsp;timedQuota)</code>&nbsp;</td>
 </tr>
@@ -435,7 +431,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/quotas/GlobalQuotaSettin
 <ul class="blockList">
 <li class="blockList">
 <h4>validateTimedQuota</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/GlobalQuotaSettingsImpl.html#line.215">validateTimedQuota</a>(org.apache.hadoop.hbase.shaded.protobuf.generated.QuotaProtos.TimedQuota&nbsp;timedQuota)
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/GlobalQuotaSettingsImpl.html#line.218">validateTimedQuota</a>(org.apache.hadoop.hbase.shaded.protobuf.generated.QuotaProtos.TimedQuota&nbsp;timedQuota)
                          throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -449,7 +445,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/quotas/GlobalQuotaSettin
 <ul class="blockList">
 <li class="blockList">
 <h4>toString</h4>
-<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/GlobalQuotaSettingsImpl.html#line.223">toString</a>()</pre>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/GlobalQuotaSettingsImpl.html#line.226">toString</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
 <dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></dd>
@@ -459,19 +455,10 @@ extends <a href="../../../../../org/apache/hadoop/hbase/quotas/GlobalQuotaSettin
 <a name="buildThrottleQuotas-org.apache.hadoop.hbase.shaded.protobuf.generated.QuotaProtos.Throttle-">
 <!--   -->
 </a>
-<ul class="blockList">
-<li class="blockList">
-<h4>buildThrottleQuotas</h4>
-<pre>private&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottleType.html" title="enum in org.apache.hadoop.hbase.quotas">ThrottleType</a>,org.apache.hadoop.hbase.shaded.protobuf.generated.QuotaProtos.TimedQuota&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/GlobalQuotaSettingsImpl.html#line.287">buildThrottleQuotas</a>(org.apache.hadoop.hbase.shaded.protobuf.generated.QuotaProtos.Throttle&nbsp;proto)</pre>
-</li>
-</ul>
-<a name="clearThrottleBuilder-org.apache.hadoop.hbase.shaded.protobuf.generated.QuotaProtos.Throttle.Builder-">
-<!--   -->
-</a>
 <ul class="blockListLast">
 <li class="blockList">
-<h4>clearThrottleBuilder</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/GlobalQuotaSettingsImpl.html#line.319">clearThrottleBuilder</a>(org.apache.hadoop.hbase.shaded.protobuf.generated.QuotaProtos.Throttle.Builder&nbsp;builder)</pre>
+<h4>buildThrottleQuotas</h4>
+<pre>private&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottleType.html" title="enum in org.apache.hadoop.hbase.quotas">ThrottleType</a>,org.apache.hadoop.hbase.shaded.protobuf.generated.QuotaProtos.TimedQuota&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/GlobalQuotaSettingsImpl.html#line.290">buildThrottleQuotas</a>(org.apache.hadoop.hbase.shaded.protobuf.generated.QuotaProtos.Throttle&nbsp;proto)</pre>
 </li>
 </ul>
 </li>
index c98e1e4..26d0d55 100644 (file)
@@ -18,7 +18,7 @@
     catch(err) {
     }
 //-->
-var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":9,"i5":9,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":9};
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":9,"i5":9,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":9,"i13":10};
 var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
 var altColor = "altColor";
 var rowColor = "rowColor";
@@ -272,6 +272,10 @@ extends <a href="../../../../../org/apache/hadoop/hbase/quotas/QuotaSettings.htm
  a <a href="../../../../../org/apache/hadoop/hbase/quotas/SpaceLimitSettings.html" title="class in org.apache.hadoop.hbase.quotas"><code>SpaceLimitSettings</code></a>.</div>
 </td>
 </tr>
+<tr id="i13" class="rowColor">
+<td class="colFirst"><code>private void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/quotas/SpaceLimitSettings.html#validateSizeLimit-long-">validateSizeLimit</a></span>(long&nbsp;sizeLimit)</code>&nbsp;</td>
+</tr>
 </table>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.org.apache.hadoop.hbase.quotas.QuotaSettings">
@@ -335,7 +339,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/quotas/QuotaSettings.htm
 <ul class="blockList">
 <li class="blockList">
 <h4>SpaceLimitSettings</h4>
-<pre><a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/SpaceLimitSettings.html#line.50">SpaceLimitSettings</a>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</pre>
+<pre><a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/SpaceLimitSettings.html#line.48">SpaceLimitSettings</a>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</pre>
 <div class="block">Constructs a <code>SpaceLimitSettings</code> to remove a space quota on the given <code>tableName</code>.</div>
 </li>
 </ul>
@@ -345,7 +349,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/quotas/QuotaSettings.htm
 <ul class="blockList">
 <li class="blockList">
 <h4>SpaceLimitSettings</h4>
-<pre><a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/SpaceLimitSettings.html#line.55">SpaceLimitSettings</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;namespace,
+<pre><a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/SpaceLimitSettings.html#line.53">SpaceLimitSettings</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;namespace,
                    long&nbsp;sizeLimit,
                    <a href="../../../../../org/apache/hadoop/hbase/quotas/SpaceViolationPolicy.html" title="enum in org.apache.hadoop.hbase.quotas">SpaceViolationPolicy</a>&nbsp;violationPolicy)</pre>
 </li>
@@ -356,7 +360,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/quotas/QuotaSettings.htm
 <ul class="blockList">
 <li class="blockList">
 <h4>SpaceLimitSettings</h4>
-<pre><a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/SpaceLimitSettings.html#line.66">SpaceLimitSettings</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;namespace)</pre>
+<pre><a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/SpaceLimitSettings.html#line.62">SpaceLimitSettings</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;namespace)</pre>
 <div class="block">Constructs a <code>SpaceLimitSettings</code> to remove a space quota on the given <code>namespace</code>.</div>
 </li>
 </ul>
@@ -366,7 +370,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/quotas/QuotaSettings.htm
 <ul class="blockListLast">
 <li class="blockList">
 <h4>SpaceLimitSettings</h4>
-<pre><a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/SpaceLimitSettings.html#line.71">SpaceLimitSettings</a>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
+<pre><a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/SpaceLimitSettings.html#line.67">SpaceLimitSettings</a>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
                    <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;namespace,
                    org.apache.hadoop.hbase.shaded.protobuf.generated.QuotaProtos.SpaceLimitRequest&nbsp;req)</pre>
 </li>
@@ -385,7 +389,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/quotas/QuotaSettings.htm
 <ul class="blockList">
 <li class="blockList">
 <h4>buildProtoFromQuota</h4>
-<pre>private&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.QuotaProtos.SpaceLimitRequest&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/SpaceLimitSettings.html#line.82">buildProtoFromQuota</a>(org.apache.hadoop.hbase.shaded.protobuf.generated.QuotaProtos.SpaceQuota&nbsp;protoQuota)</pre>
+<pre>private&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.QuotaProtos.SpaceLimitRequest&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/SpaceLimitSettings.html#line.78">buildProtoFromQuota</a>(org.apache.hadoop.hbase.shaded.protobuf.generated.QuotaProtos.SpaceQuota&nbsp;protoQuota)</pre>
 <div class="block">Build a <code>QuotaProtos.SpaceLimitRequest</code> protobuf object from the given <code>QuotaProtos.SpaceQuota</code>.</div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
@@ -401,7 +405,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/quotas/QuotaSettings.htm
 <ul class="blockList">
 <li class="blockList">
 <h4>buildProtoAddQuota</h4>
-<pre>private&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.QuotaProtos.SpaceLimitRequest&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/SpaceLimitSettings.html#line.93">buildProtoAddQuota</a>(long&nbsp;sizeLimit,
+<pre>private&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.QuotaProtos.SpaceLimitRequest&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/SpaceLimitSettings.html#line.89">buildProtoAddQuota</a>(long&nbsp;sizeLimit,
                                                                                                            <a href="../../../../../org/apache/hadoop/hbase/quotas/SpaceViolationPolicy.html" title="enum in org.apache.hadoop.hbase.quotas">SpaceViolationPolicy</a>&nbsp;violationPolicy)</pre>
 <div class="block">Builds a <code>QuotaProtos.SpaceQuota</code> protobuf object given the arguments.</div>
 <dl>
@@ -419,7 +423,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/quotas/QuotaSettings.htm
 <ul class="blockList">
 <li class="blockList">
 <h4>buildProtoRemoveQuota</h4>
-<pre>private&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.QuotaProtos.SpaceLimitRequest&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/SpaceLimitSettings.html#line.106">buildProtoRemoveQuota</a>()</pre>
+<pre>private&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.QuotaProtos.SpaceLimitRequest&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/SpaceLimitSettings.html#line.102">buildProtoRemoveQuota</a>()</pre>
 <div class="block">Builds a <code>QuotaProtos.SpaceQuota</code> protobuf object to remove a quota.</div>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
@@ -433,7 +437,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/quotas/QuotaSettings.htm
 <ul class="blockList">
 <li class="blockList">
 <h4>getProto</h4>
-<pre>org.apache.hadoop.hbase.shaded.protobuf.generated.QuotaProtos.SpaceLimitRequest&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/SpaceLimitSettings.html#line.117">getProto</a>()</pre>
+<pre>org.apache.hadoop.hbase.shaded.protobuf.generated.QuotaProtos.SpaceLimitRequest&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/SpaceLimitSettings.html#line.113">getProto</a>()</pre>
 <div class="block">Returns a copy of the internal state of <code>this</code></div>
 </li>
 </ul>
@@ -443,7 +447,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/quotas/QuotaSettings.htm
 <ul class="blockList">
 <li class="blockList">
 <h4>getQuotaType</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/quotas/QuotaType.html" title="enum in org.apache.hadoop.hbase.quotas">QuotaType</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/SpaceLimitSettings.html#line.122">getQuotaType</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/quotas/QuotaType.html" title="enum in org.apache.hadoop.hbase.quotas">QuotaType</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/SpaceLimitSettings.html#line.118">getQuotaType</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/quotas/QuotaSettings.html#getQuotaType--">getQuotaType</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/quotas/QuotaSettings.html" title="class in org.apache.hadoop.hbase.quotas">QuotaSettings</a></code></dd>
@@ -456,7 +460,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/quotas/QuotaSettings.htm
 <ul class="blockList">
 <li class="blockList">
 <h4>setupSetQuotaRequest</h4>
-<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/SpaceLimitSettings.html#line.127">setupSetQuotaRequest</a>(org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SetQuotaRequest.Builder&nbsp;builder)</pre>
+<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/SpaceLimitSettings.html#line.123">setupSetQuotaRequest</a>(org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SetQuotaRequest.Builder&nbsp;builder)</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/quotas/QuotaSettings.html#setupSetQuotaRequest-org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.SetQuotaRequest.Builder-">QuotaSettings</a></code></span></div>
 <div class="block">Called by toSetQuotaRequestProto()
  the subclass should implement this method to set the specific SetQuotaRequest
@@ -473,7 +477,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/quotas/QuotaSettings.htm
 <ul class="blockList">
 <li class="blockList">
 <h4>fromSpaceQuota</h4>
-<pre>static&nbsp;<a href="../../../../../org/apache/hadoop/hbase/quotas/SpaceLimitSettings.html" title="class in org.apache.hadoop.hbase.quotas">SpaceLimitSettings</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/SpaceLimitSettings.html#line.139">fromSpaceQuota</a>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
+<pre>static&nbsp;<a href="../../../../../org/apache/hadoop/hbase/quotas/SpaceLimitSettings.html" title="class in org.apache.hadoop.hbase.quotas">SpaceLimitSettings</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/SpaceLimitSettings.html#line.135">fromSpaceQuota</a>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
                                          org.apache.hadoop.hbase.shaded.protobuf.generated.QuotaProtos.SpaceQuota&nbsp;proto)</pre>
 <div class="block">Constructs a <a href="../../../../../org/apache/hadoop/hbase/quotas/SpaceLimitSettings.html" title="class in org.apache.hadoop.hbase.quotas"><code>SpaceLimitSettings</code></a> from the provided protobuf message and tablename.</div>
 <dl>
@@ -491,7 +495,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/quotas/QuotaSettings.htm
 <ul class="blockList">
 <li class="blockList">
 <h4>fromSpaceQuota</h4>
-<pre>static&nbsp;<a href="../../../../../org/apache/hadoop/hbase/quotas/SpaceLimitSettings.html" title="class in org.apache.hadoop.hbase.quotas">SpaceLimitSettings</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/SpaceLimitSettings.html#line.153">fromSpaceQuota</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;namespace,
+<pre>static&nbsp;<a href="../../../../../org/apache/hadoop/hbase/quotas/SpaceLimitSettings.html" title="class in org.apache.hadoop.hbase.quotas">SpaceLimitSettings</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/SpaceLimitSettings.html#line.149">fromSpaceQuota</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;namespace,
                                          org.apache.hadoop.hbase.shaded.protobuf.generated.QuotaProtos.SpaceQuota&nbsp;proto)</pre>
 <div class="block">Constructs a <a href="../../../../../org/apache/hadoop/hbase/quotas/SpaceLimitSettings.html" title="class in org.apache.hadoop.hbase.quotas"><code>SpaceLimitSettings</code></a> from the provided protobuf message and namespace.</div>
 <dl>
@@ -509,7 +513,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/quotas/QuotaSettings.htm
 <ul class="blockList">
 <li class="blockList">
 <h4>validateProtoArguments</h4>
-<pre>static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/SpaceLimitSettings.html#line.166">validateProtoArguments</a>(org.apache.hadoop.hbase.shaded.protobuf.generated.QuotaProtos.SpaceQuota&nbsp;proto)</pre>
+<pre>static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/SpaceLimitSettings.html#line.162">validateProtoArguments</a>(org.apache.hadoop.hbase.shaded.protobuf.generated.QuotaProtos.SpaceQuota&nbsp;proto)</pre>
 <div class="block">Validates that the provided protobuf SpaceQuota has the necessary information to construct
  a <a href="../../../../../org/apache/hadoop/hbase/quotas/SpaceLimitSettings.html" title="class in org.apache.hadoop.hbase.quotas"><code>SpaceLimitSettings</code></a>.</div>
 <dl>
@@ -524,7 +528,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/quotas/QuotaSettings.htm
 <ul class="blockList">
 <li class="blockList">
 <h4>hashCode</h4>
-<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/SpaceLimitSettings.html#line.176">hashCode</a>()</pre>
+<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/SpaceLimitSettings.html#line.172">hashCode</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
 <dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a></code>&nbsp;in class&nbsp;<code><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></code></dd>
@@ -537,7 +541,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/quotas/QuotaSettings.htm
 <ul class="blockList">
 <li class="blockList">
 <h4>equals</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/SpaceLimitSettings.html#line.181">equals</a>(<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>&nbsp;o)</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/SpaceLimitSettings.html#line.177">equals</a>(<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>&nbsp;o)</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
 <dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a></code>&nbsp;in class&nbsp;<code><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></code></dd>
@@ -550,7 +554,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/quotas/QuotaSettings.htm
 <ul class="blockList">
 <li class="blockList">
 <h4>toString</h4>
-<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/SpaceLimitSettings.html#line.196">toString</a>()</pre>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/SpaceLimitSettings.html#line.192">toString</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
 <dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></dd>
@@ -560,10 +564,10 @@ extends <a href="../../../../../org/apache/hadoop/hbase/quotas/QuotaSettings.htm
 <a name="merge-org.apache.hadoop.hbase.quotas.QuotaSettings-">
 <!--   -->
 </a>
-<ul class="blockListLast">
+<ul class="blockList">
 <li class="blockList">
 <h4>merge</h4>
-<pre>protected&nbsp;<a href="../../../../../org/apache/hadoop/hbase/quotas/QuotaSettings.html" title="class in org.apache.hadoop.hbase.quotas">QuotaSettings</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/SpaceLimitSettings.html#line.215">merge</a>(<a href="../../../../../org/apache/hadoop/hbase/quotas/QuotaSettings.html" title="class in org.apache.hadoop.hbase.quotas">QuotaSettings</a>&nbsp;newSettings)</pre>
+<pre>protected&nbsp;<a href="../../../../../org/apache/hadoop/hbase/quotas/QuotaSettings.html" title="class in org.apache.hadoop.hbase.quotas">QuotaSettings</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/SpaceLimitSettings.html#line.211">merge</a>(<a href="../../../../../org/apache/hadoop/hbase/quotas/QuotaSettings.html" title="class in org.apache.hadoop.hbase.quotas">QuotaSettings</a>&nbsp;newSettings)</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/quotas/QuotaSettings.html#merge-org.apache.hadoop.hbase.quotas.QuotaSettings-">QuotaSettings</a></code></span></div>
 <div class="block">Merges the provided settings with <code>this</code> and returns a new settings
  object to the caller if the merged settings differ from the original.</div>
@@ -577,6 +581,15 @@ extends <a href="../../../../../org/apache/hadoop/hbase/quotas/QuotaSettings.htm
 </dl>
 </li>
 </ul>
+<a name="validateSizeLimit-long-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>validateSizeLimit</h4>
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/quotas/SpaceLimitSettings.html#line.241">validateSizeLimit</a>(long&nbsp;sizeLimit)</pre>
+</li>
+</ul>
 </li>
 </ul>
 </li>
index 3b62ce7..6754bc1 100644 (file)
 <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" title="class or interface in java.io">Serializable</a>)
 <ul>
-<li type="circle">org.apache.hadoop.hbase.quotas.<a href="../../../../../org/apache/hadoop/hbase/quotas/OperationQuota.OperationType.html" title="enum in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">OperationQuota.OperationType</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.quotas.<a href="../../../../../org/apache/hadoop/hbase/quotas/QuotaType.html" title="enum in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">QuotaType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.quotas.<a href="../../../../../org/apache/hadoop/hbase/quotas/QuotaScope.html" title="enum in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">QuotaScope</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.quotas.<a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottleType.html" title="enum in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">ThrottleType</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.quotas.<a href="../../../../../org/apache/hadoop/hbase/quotas/SpaceViolationPolicy.html" title="enum in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">SpaceViolationPolicy</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.quotas.<a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">ThrottlingException.Type</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.quotas.<a href="../../../../../org/apache/hadoop/hbase/quotas/OperationQuota.OperationType.html" title="enum in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">OperationQuota.OperationType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.quotas.<a href="../../../../../org/apache/hadoop/hbase/quotas/QuotaType.html" title="enum in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">QuotaType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.quotas.<a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">RpcThrottlingException.Type</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.quotas.<a href="../../../../../org/apache/hadoop/hbase/quotas/SpaceViolationPolicy.html" title="enum in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">SpaceViolationPolicy</span></a></li>
 </ul>
 </li>
 </ul>
index c3a2598..9371a00 100644 (file)
 <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" title="class or interface in java.io">Serializable</a>)
 <ul>
-<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreCompactionStrategy.Action.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">MemStoreCompactionStrategy.Action</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/BloomType.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">BloomType</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/ChunkCreator.ChunkType.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">ChunkCreator.ChunkType</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/SplitLogWorker.TaskExecutor.Status.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">SplitLogWorker.TaskExecutor.Status</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/ScannerContext.LimitScope.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">ScannerContext.LimitScope</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/TimeRangeTracker.Type.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">TimeRangeTracker.Type</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/CompactingMemStore.IndexType.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">CompactingMemStore.IndexType</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/FlushType.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">FlushType</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/ScanType.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">ScanType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/DefaultHeapMemoryTuner.StepDirection.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">DefaultHeapMemoryTuner.StepDirection</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/FlushType.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">FlushType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/Region.Operation.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">Region.Operation</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/SplitLogWorker.TaskExecutor.Status.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">SplitLogWorker.TaskExecutor.Status</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/BloomType.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">BloomType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/TimeRangeTracker.Type.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">TimeRangeTracker.Type</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/ScannerContext.NextState.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">ScannerContext.NextState</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreCompactionStrategy.Action.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">MemStoreCompactionStrategy.Action</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.FlushResult.Result.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">HRegion.FlushResult.Result</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/Region.Operation.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">Region.Operation</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/ScannerContext.LimitScope.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">ScannerContext.LimitScope</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/ChunkCreator.ChunkType.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">ChunkCreator.ChunkType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/ScanType.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">ScanType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceFactoryImpl.FactoryStorage.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">MetricsRegionServerSourceFactoryImpl.FactoryStorage</span></a></li>
 </ul>
 </li>
index 45a338f..03a894e 100644 (file)
 <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" title="class or interface in java.io">Serializable</a>)
 <ul>
-<li type="circle">org.apache.hadoop.hbase.regionserver.querymatcher.<a href="../../../../../../org/apache/hadoop/hbase/regionserver/querymatcher/ScanQueryMatcher.MatchCode.html" title="enum in org.apache.hadoop.hbase.regionserver.querymatcher"><span class="typeNameLink">ScanQueryMatcher.MatchCode</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.regionserver.querymatcher.<a href="../../../../../../org/apache/hadoop/hbase/regionserver/querymatcher/StripeCompactionScanQueryMatcher.DropDeletesInOutput.html" title="enum in org.apache.hadoop.hbase.regionserver.querymatcher"><span class="typeNameLink">StripeCompactionScanQueryMatcher.DropDeletesInOutput</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.regionserver.querymatcher.<a href="../../../../../../org/apache/hadoop/hbase/regionserver/querymatcher/DeleteTracker.DeleteResult.html" title="enum in org.apache.hadoop.hbase.regionserver.querymatcher"><span class="typeNameLink">DeleteTracker.DeleteResult</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.regionserver.querymatcher.<a href="../../../../../../org/apache/hadoop/hbase/regionserver/querymatcher/ScanQueryMatcher.MatchCode.html" title="enum in org.apache.hadoop.hbase.regionserver.querymatcher"><span class="typeNameLink">ScanQueryMatcher.MatchCode</span></a></li>
 </ul>
 </li>
 </ul>
index 95d4113..29979c1 100644 (file)
 </dl>
 <hr>
 <br>
-<pre>private static final class <a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.240">AbstractFSWAL.WalProps</a>
+<pre>private static final class <a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.249">AbstractFSWAL.WalProps</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>
@@ -139,6 +139,12 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <div class="block">The log file size.</div>
 </td>
 </tr>
+<tr class="altColor">
+<td class="colFirst"><code>long</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.WalProps.html#rollTimeNs">rollTimeNs</a></span></code>
+<div class="block">The nanoTime of the log rolling, used to determine the time interval that has passed since.</div>
+</td>
+</tr>
 </table>
 </li>
 </ul>
@@ -193,7 +199,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>encodedName2HighestSequenceId</h4>
-<pre>public final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;byte[],<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Long.html?is-external=true" title="class or interface in java.lang">Long</a>&gt; <a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.WalProps.html#line.246">encodedName2HighestSequenceId</a></pre>
+<pre>public final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;byte[],<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Long.html?is-external=true" title="class or interface in java.lang">Long</a>&gt; <a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.WalProps.html#line.255">encodedName2HighestSequenceId</a></pre>
 <div class="block">Map the encoded region name to the highest sequence id. Contain all the regions it has
  entries of</div>
 </li>
@@ -201,14 +207,24 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <a name="logSize">
 <!--   -->
 </a>
-<ul class="blockListLast">
+<ul class="blockList">
 <li class="blockList">
 <h4>logSize</h4>
-<pre>public final&nbsp;long <a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.WalProps.html#line.252">logSize</a></pre>
+<pre>public final&nbsp;long <a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.WalProps.html#line.261">logSize</a></pre>
 <div class="block">The log file size. Notice that the size may not be accurate if we do asynchronous close in
  sub classes.</div>
 </li>
 </ul>
+<a name="rollTimeNs">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>rollTimeNs</h4>
+<pre>public final&nbsp;long <a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.WalProps.html#line.266">rollTimeNs</a></pre>
+<div class="block">The nanoTime of the log rolling, used to determine the time interval that has passed since.</div>
+</li>
+</ul>
 </li>
 </ul>
 <!-- ========= CONSTRUCTOR DETAIL ======== -->
@@ -223,7 +239,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockListLast">
 <li class="blockList">
 <h4>WalProps</h4>
-<pre>public&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.WalProps.html#line.254">WalProps</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;byte[],<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Long.html?is-external=true" title="class or interface in java.lang">Long</a>&gt;&nbsp;encodedName2HighestSequenceId,
+<pre>public&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.WalProps.html#line.268">WalProps</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;byte[],<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Long.html?is-external=true" title="class or interface in java.lang">Long</a>&gt;&nbsp;encodedName2HighestSequenceId,
                 long&nbsp;logSize)</pre>
 </li>
 </ul>
index 7b81039..7389fe9 100644 (file)
@@ -280,41 +280,59 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/wal/WAL.html" titl
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#maxLogs">maxLogs</a></span></code>&nbsp;</td>
 </tr>
 <tr class="altColor">
+<td class="colFirst"><code>private long</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#nextLogTooOldNs">nextLogTooOldNs</a></span></code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
 <td class="colFirst"><code>protected <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/atomic/AtomicInteger.html?is-external=true" title="class or interface in java.util.concurrent.atomic">AtomicInteger</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#numEntries">numEntries</a></span></code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>protected org.apache.hadoop.fs.PathFilter</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#ourFiles">ourFiles</a></span></code>
 <div class="block">Matches just those wal files that belong to this wal instance.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>protected <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#prefixPathStr">prefixPathStr</a></span></code>
 <div class="block">Prefix used when checking for wal membership.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>protected <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/locks/ReentrantLock.html?is-external=true" title="class or interface in java.util.concurrent.locks">ReentrantLock</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#rollWriterLock">rollWriterLock</a></span></code>
 <div class="block">This lock makes sure only one log roll runs at a time.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>protected <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/SequenceIdAccounting.html" title="class in org.apache.hadoop.hbase.regionserver.wal">SequenceIdAccounting</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#sequenceIdAccounting">sequenceIdAccounting</a></span></code>
 <div class="block">Class that does accounting of sequenceids in WAL subsystem.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>protected <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/atomic/AtomicBoolean.html?is-external=true" title="class or interface in java.util.concurrent.atomic">AtomicBoolean</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#shutdown">shutdown</a></span></code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>protected long</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#slowSyncNs">slowSyncNs</a></span></code>&nbsp;</td>
 </tr>
+<tr class="altColor">
+<td class="colFirst"><code>private static long</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#SURVIVED_TOO_LONG_LOG_INTERVAL_NS">SURVIVED_TOO_LONG_LOG_INTERVAL_NS</a></span></code>
+<div class="block">Don't log blocking regions more frequently than this.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>private static int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#SURVIVED_TOO_LONG_SEC_DEFAULT">SURVIVED_TOO_LONG_SEC_DEFAULT</a></span></code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>private static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#SURVIVED_TOO_LONG_SEC_KEY">SURVIVED_TOO_LONG_SEC_KEY</a></span></code>&nbsp;</td>
+</tr>
 <tr class="rowColor">
 <td class="colFirst"><code>protected <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/atomic/AtomicLong.html?is-external=true" title="class or interface in java.util.concurrent.atomic">AtomicLong</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#totalLogSize">totalLogSize</a></span></code>
@@ -356,6 +374,10 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/wal/WAL.html" titl
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#walSyncTimeoutNs">walSyncTimeoutNs</a></span></code>&nbsp;</td>
 </tr>
 <tr class="altColor">
+<td class="colFirst"><code>private long</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#walTooOldNs">walTooOldNs</a></span></code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
 <td class="colFirst"><code>(package private) <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html" title="type parameter in AbstractFSWAL">W</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#writer">writer</a></span></code>
 <div class="block">Current log file.</div>
@@ -782,7 +804,43 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/wal/WAL.html" titl
 <ul class="blockList">
 <li class="blockList">
 <h4>LOG</h4>
-<pre>private static final&nbsp;org.slf4j.Logger <a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.113">LOG</a></pre>
+<pre>private static final&nbsp;org.slf4j.Logger <a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.112">LOG</a></pre>
+</li>
+</ul>
+<a name="SURVIVED_TOO_LONG_SEC_KEY">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>SURVIVED_TOO_LONG_SEC_KEY</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/regionserver/wal/AbstractFSWAL.html#line.114">SURVIVED_TOO_LONG_SEC_KEY</a></pre>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../../../constant-values.html#org.apache.hadoop.hbase.regionserver.wal.AbstractFSWAL.SURVIVED_TOO_LONG_SEC_KEY">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+<a name="SURVIVED_TOO_LONG_SEC_DEFAULT">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>SURVIVED_TOO_LONG_SEC_DEFAULT</h4>
+<pre>private static final&nbsp;int <a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.115">SURVIVED_TOO_LONG_SEC_DEFAULT</a></pre>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../../../constant-values.html#org.apache.hadoop.hbase.regionserver.wal.AbstractFSWAL.SURVIVED_TOO_LONG_SEC_DEFAULT">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+<a name="SURVIVED_TOO_LONG_LOG_INTERVAL_NS">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>SURVIVED_TOO_LONG_LOG_INTERVAL_NS</h4>
+<pre>private static final&nbsp;long <a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.117">SURVIVED_TOO_LONG_LOG_INTERVAL_NS</a></pre>
+<div class="block">Don't log blocking regions more frequently than this.</div>
 </li>
 </ul>
 <a name="DEFAULT_SLOW_SYNC_TIME_MS">
@@ -791,7 +849,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/wal/WAL.html" titl
 <ul class="blockList">
 <li class="blockList">
 <h4>DEFAULT_SLOW_SYNC_TIME_MS</h4>
-<pre>protected static final&nbsp;int <a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.115">DEFAULT_SLOW_SYNC_TIME_MS</a></pre>
+<pre>protected static final&nbsp;int <a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.119">DEFAULT_SLOW_SYNC_TIME_MS</a></pre>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
 <dd><a href="../../../../../../constant-values.html#org.apache.hadoop.hbase.regionserver.wal.AbstractFSWAL.DEFAULT_SLOW_SYNC_TIME_MS">Constant Field Values</a></dd>
@@ -804,7 +862,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/wal/WAL.html" titl
 <ul class="blockList">
 <li class="blockList">
 <h4>DEFAULT_WAL_SYNC_TIMEOUT_MS</h4>
-<pre>private static final&nbsp;int <a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.117">DEFAULT_WAL_SYNC_TIMEOUT_MS</a></pre>
+<pre>private static final&nbsp;int <a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.121">DEFAULT_WAL_SYNC_TIMEOUT_MS</a></pre>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
 <dd><a href="../../../../../../constant-values.html#org.apache.hadoop.hbase.regionserver.wal.AbstractFSWAL.DEFAULT_WAL_SYNC_TIMEOUT_MS">Constant Field Values</a></dd>
@@ -817,7 +875,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/wal/WAL.html" titl
 <ul class="blockList">
 <li class="blockList">
 <h4>fs</h4>
-<pre>protected final&nbsp;org.apache.hadoop.fs.FileSystem <a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.122">fs</a></pre>
+<pre>protected final&nbsp;org.apache.hadoop.fs.FileSystem <a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.126">fs</a></pre>
 <div class="block">file system instance</div>
 </li>
 </ul>
@@ -827,7 +885,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/wal/WAL.html" titl
 <ul class="blockList">
 <li class="blockList">
 <h4>walDir</h4>
-<pre>protected final&nbsp;org.apache.hadoop.fs.Path <a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.127">walDir</a></pre>
+<pre>protected final&nbsp;org.apache.hadoop.fs.Path <a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.131">walDir</a></pre>
 <div class="block">WAL directory, where all WAL files would be placed.</div>
 </li>
 </ul>
@@ -837,7 +895,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/wal/WAL.html" titl
 <ul class="blockList">
 <li class="blockList">
 <h4>walArchiveDir</h4>
-<pre>protected final&nbsp;org.apache.hadoop.fs.Path <a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.132">walArchiveDir</a></pre>
+<pre>protected final&nbsp;org.apache.hadoop.fs.Path <a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.136">walArchiveDir</a></pre>
 <div class="block">dir path where old logs are kept.</div>
 </li>
 </ul>
@@ -847,7 +905,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/wal/WAL.html" titl
 <ul class="blockList">
 <li class="blockList">
 <h4>ourFiles</h4>
-<pre>protected final&nbsp;org.apache.hadoop.fs.PathFilter <a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.137">ourFiles</a></pre>
+<pre>protected final&nbsp;org.apache.hadoop.fs.PathFilter <a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.141">ourFiles</a></pre>
 <div class="block">Matches just those wal files that belong to this wal instance.</div>
 </li>
 </ul>
@@ -857,7 +915,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/wal/WAL.html" titl
 <ul class="blockList">
 <li class="blockList">
 <h4>walFilePrefix</h4>
-<pre>protected 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/regionserver/wal/AbstractFSWAL.html#line.142">walFilePrefix</a></pre>
+<pre>protected 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/regionserver/wal/AbstractFSWAL.html#line.146">walFilePrefix</a></pre>
 <div class="block">Prefix of a WAL file, usually the region server name it is hosted on.</div>
 </li>
 </ul>
@@ -867,7 +925,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/wal/WAL.html" titl
 <ul class="blockList">
 <li class="blockList">
 <h4>walFileSuffix</h4>
-<pre>protected 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/regionserver/wal/AbstractFSWAL.html#line.147">walFileSuffix</a></pre>
+<pre>protected 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/regionserver/wal/AbstractFSWAL.html#line.151">walFileSuffix</a></pre>
 <div class="block">Suffix included on generated wal file names</div>
 </li>
 </ul>
@@ -877,7 +935,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/wal/WAL.html" titl
 <ul class="blockList">
 <li class="blockList">
 <h4>prefixPathStr</h4>
-<pre>protected 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/regionserver/wal/AbstractFSWAL.html#line.152">prefixPathStr</a></pre>
+<pre>protected 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/regionserver/wal/AbstractFSWAL.html#line.156">prefixPathStr</a></pre>
 <div class="block">Prefix used when checking for wal membership.</div>
 </li>
 </ul>
@@ -887,7 +945,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/wal/WAL.html" titl
 <ul class="blockList">
 <li class="blockList">
 <h4>coprocessorHost</h4>
-<pre>protected final&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/WALCoprocessorHost.html" title="class in org.apache.hadoop.hbase.regionserver.wal">WALCoprocessorHost</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.154">coprocessorHost</a></pre>
+<pre>protected final&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/WALCoprocessorHost.html" title="class in org.apache.hadoop.hbase.regionserver.wal">WALCoprocessorHost</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.158">coprocessorHost</a></pre>
 </li>
 </ul>
 <a name="conf">
@@ -896,7 +954,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/wal/WAL.html" titl
 <ul class="blockList">
 <li class="blockList">
 <h4>conf</h4>
-<pre>protected final&nbsp;org.apache.hadoop.conf.Configuration <a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.159">conf</a></pre>
+<pre>protected final&nbsp;org.apache.hadoop.conf.Configuration <a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.163">conf</a></pre>
 <div class="block">conf object</div>
 </li>
 </ul>
@@ -906,7 +964,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/wal/WAL.html" titl
 <ul class="blockList">
 <li class="blockList">
 <h4>listeners</h4>
-<pre>protected final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/WALActionsListener.html" title="interface in org.apache.hadoop.hbase.regionserver.wal">WALActionsListener</a>&gt; <a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.162">listeners</a></pre>
+<pre>protected final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/WALActionsListener.html" title="interface in org.apache.hadoop.hbase.regionserver.wal">WALActionsListener</a>&gt; <a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.166">listeners</a></pre>
 <div class="block">Listeners that are called on WAL events.</div>
 </li>
 </ul>
@@ -916,7 +974,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/wal/WAL.html" titl
 <ul class="blockList">
 <li class="blockList">
 <h4>sequenceIdAccounting</h4>
-<pre>protected final&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/SequenceIdAccounting.html" title="class in org.apache.hadoop.hbase.regionserver.wal">SequenceIdAccounting</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.169">sequenceIdAccounting</a></pre>
+<pre>protected final&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/SequenceIdAccounting.html" title="class in org.apache.hadoop.hbase.regionserver.wal">SequenceIdAccounting</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.173">sequenceIdAccounting</a></pre>
 <div class="block">Class that does accounting of sequenceids in WAL subsystem. Holds oldest outstanding sequence
  id as yet not flushed as well as the most recent edit sequence id appended to the WAL. Has
  facility for answering questions such as "Is it safe to GC a WAL?".</div>
@@ -928,7 +986,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/wal/WAL.html" titl
 <ul class="blockList">
 <li class="blockList">
 <h4>slowSyncNs</h4>
-<pre>protected final&nbsp;long <a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.171">slowSyncNs</a></pre>
+<pre>protected final&nbsp;long <a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.175">slowSyncNs</a></pre>
 </li>
 </ul>
 <a name="walSyncTimeoutNs">
@@ -937,7 +995,16 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/wal/WAL.html" titl
 <ul class="blockList">
 <li class="blockList">
 <h4>walSyncTimeoutNs</h4>
-<pre>private final&nbsp;long <a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.173">walSyncTimeoutNs</a></pre>
+<pre>private final&nbsp;long <a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.177">walSyncTimeoutNs</a></pre>
+</li>
+</ul>
+<a name="walTooOldNs">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>walTooOldNs</h4>
+<pre>private final&nbsp;long <a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.179">walTooOldNs</a></pre>
 </li>
 </ul>
 <a name="logrollsize">
@@ -946,7 +1013,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/wal/WAL.html" titl
 <ul class="blockList">
 <li class="blockList">
 <h4>logrollsize</h4>
-<pre>protected final&nbsp;long <a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.176">logrollsize</a></pre>
+<pre>protected final&nbsp;long <a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.182">logrollsize</a></pre>
 </li>
 </ul>
 <a name="blocksize">
@@ -955,7 +1022,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/wal/WAL.html" titl
 <ul class="blockList">
 <li class="blockList">
 <h4>blocksize</h4>
-<pre>protected final&nbsp;long <a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.181">blocksize</a></pre>
+<pre>protected final&nbsp;long <a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.187">blocksize</a></pre>
 <div class="block">Block size to use writing files.</div>
 </li>
 </ul>
@@ -965,7 +1032,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/wal/WAL.html" titl
 <ul class="blockList">
 <li class="blockList">
 <h4>maxLogs</h4>
-<pre>protected final&nbsp;int <a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.187">maxLogs</a></pre>
+<pre>protected final&nbsp;int <a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.193">maxLogs</a></pre>
 </li>
 </ul>
 <a name="rollWriterLock">
@@ -974,7 +1041,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/wal/WAL.html" titl
 <ul class="blockList">
 <li class="blockList">
 <h4>rollWriterLock</h4>
-<pre>protected final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/locks/ReentrantLock.html?is-external=true" title="class or interface in java.util.concurrent.locks">ReentrantLock</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.196">rollWriterLock</a></pre>
+<pre>protected final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/locks/ReentrantLock.html?is-external=true" title="class or interface in java.util.concurrent.locks">ReentrantLock</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.202">rollWriterLock</a></pre>
 <div class="block">This lock makes sure only one log roll runs at a time. Should not be taken while any other lock
  is held. We don't just use synchronized because that results in bogus and tedious findbugs
  warning when it thinks synchronized controls writer thread safety. It is held when we are
@@ -988,7 +1055,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/wal/WAL.html" titl
 <ul class="blockList">
 <li class="blockList">
 <h4>filenum</h4>
-<pre>protected final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/atomic/AtomicLong.html?is-external=true" title="class or interface in java.util.concurrent.atomic">AtomicLong</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.199">filenum</a></pre>
+<pre>protected final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/atomic/AtomicLong.html?is-external=true" title="class or interface in java.util.concurrent.atomic">AtomicLong</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.205">filenum</a></pre>
 </li>
 </ul>
 <a name="numEntries">
@@ -997,7 +1064,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/wal/WAL.html" titl
 <ul class="blockList">
 <li class="blockList">
 <h4>numEntries</h4>
-<pre>protected final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/atomic/AtomicInteger.html?is-external=true" title="class or interface in java.util.concurrent.atomic">AtomicInteger</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.202">numEntries</a></pre>
+<pre>protected final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/atomic/AtomicInteger.html?is-external=true" title="class or interface in java.util.concurrent.atomic">AtomicInteger</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.208">numEntries</a></pre>
 </li>
 </ul>
 <a name="highestUnsyncedTxid">
@@ -1006,7 +1073,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/wal/WAL.html" titl
 <ul class="blockList">
 <li class="blockList">
 <h4>highestUnsyncedTxid</h4>
-<pre>protected volatile&nbsp;long <a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.209">highestUnsyncedTxid</a></pre>
+<pre>protected volatile&nbsp;long <a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.215">highestUnsyncedTxid</a></pre>
 <div class="block">The highest known outstanding unsync'd WALEdit transaction id. Usually, we use a queue to pass
  WALEdit to background consumer thread, and the transaction id is the sequence number of the
  corresponding entry in queue.</div>
@@ -1018,7 +1085,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/wal/WAL.html" titl
 <ul class="blockList">
 <li class="blockList">
 <h4>highestSyncedTxid</h4>
-<pre>protected final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/atomic/AtomicLong.html?is-external=true" title="class or interface in java.util.concurrent.atomic">AtomicLong</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.216">highestSyncedTxid</a></pre>
+<pre>protected final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/atomic/AtomicLong.html?is-external=true" title="class or interface in java.util.concurrent.atomic">AtomicLong</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.222">highestSyncedTxid</a></pre>
 <div class="block">Updated to the transaction id of the last successful sync call. This can be less than
  <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#highestUnsyncedTxid"><code>highestUnsyncedTxid</code></a> for case where we have an append where a sync has not yet come in
  for it.</div>
@@ -1030,7 +1097,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/wal/WAL.html" titl
 <ul class="blockList">
 <li class="blockList">
 <h4>totalLogSize</h4>
-<pre>protected final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/atomic/AtomicLong.html?is-external=true" title="class or interface in java.util.concurrent.atomic">AtomicLong</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.221">totalLogSize</a></pre>
+<pre>protected final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/atomic/AtomicLong.html?is-external=true" title="class or interface in java.util.concurrent.atomic">AtomicLong</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.227">totalLogSize</a></pre>
 <div class="block">The total size of wal</div>
 </li>
 </ul>
@@ -1040,7 +1107,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/wal/WAL.html" titl
 <ul class="blockList">
 <li class="blockList">
 <h4>writer</h4>
-<pre>volatile&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html" title="type parameter in AbstractFSWAL">W</a> extends <a href="../../../../../../org/apache/hadoop/hbase/wal/WALProvider.WriterBase.html" title="interface in org.apache.hadoop.hbase.wal">WALProvider.WriterBase</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.225">writer</a></pre>
+<pre>volatile&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html" title="type parameter in AbstractFSWAL">W</a> extends <a href="../../../../../../org/apache/hadoop/hbase/wal/WALProvider.WriterBase.html" title="interface in org.apache.hadoop.hbase.wal">WALProvider.WriterBase</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.231">writer</a></pre>
 <div class="block">Current log file.</div>
 </li>
 </ul>
@@ -1050,7 +1117,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/wal/WAL.html" titl
 <ul class="blockList">
 <li class="blockList">
 <h4>lastTimeCheckLowReplication</h4>
-<pre>private&nbsp;long <a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.228">lastTimeCheckLowReplication</a></pre>
+<pre>private&nbsp;long <a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.234">lastTimeCheckLowReplication</a></pre>
 </li>
 </ul>
 <a name="closed">
@@ -1059,7 +1126,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/wal/WAL.html" titl
 <ul class="blockList">
 <li class="blockList">
 <h4>closed</h4>
-<pre>protected volatile&nbsp;boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.230">closed</a></pre>
+<pre>protected volatile&nbsp;boolean <a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.236">closed</a></pre>
 </li>
 </ul>
 <a name="shutdown">
@@ -1068,7 +1135,16 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/wal/WAL.html" titl
 <ul class="blockList">
 <li class="blockList">
 <h4>shutdown</h4>
-<pre>protected final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/atomic/AtomicBoolean.html?is-external=true" title="class or interface in java.util.concurrent.atomic">AtomicBoolean</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.232">shutdown</a></pre>
+<pre>protected final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/atomic/AtomicBoolean.html?is-external=true" title="class or interface in java.util.concurrent.atomic">AtomicBoolean</a> <a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.238">shutdown</a></pre>
+</li>
+</ul>
+<a name="nextLogTooOldNs">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>nextLogTooOldNs</h4>
+<pre>private&nbsp;long <a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.240">nextLogTooOldNs</a></pre>
 </li>
 </ul>
 <a name="LOG_NAME_COMPARATOR">
@@ -1077,7 +1153,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/wal/WAL.html" titl
 <ul class="blockList">
 <li class="blockList">
 <h4>LOG_NAME_COMPARATOR</h4>
-<pre>final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Comparator.html?is-external=true" title="class or interface in java.util">Comparator</a>&lt;org.apache.hadoop.fs.Path&gt; <a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.237">LOG_NAME_COMPARATOR</a></pre>
+<pre>final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Comparator.html?is-external=true" title="class or interface in java.util">Comparator</a>&lt;org.apache.hadoop.fs.Path&gt; <a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.246">LOG_NAME_COMPARATOR</a></pre>
 <div class="block">WAL Comparator; it compares the timestamp (log filenum), present in the log file name. Throws
  an IllegalArgumentException if used to compare paths from different wals.</div>
 </li>
@@ -1088,7 +1164,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/wal/WAL.html" titl
 <ul class="blockList">
 <li class="blockList">
 <h4>walFile2Props</h4>
-<pre>protected&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ConcurrentNavigableMap.html?is-external=true" title="class or interface in java.util.concurrent">ConcurrentNavigableMap</a>&lt;org.apache.hadoop.fs.Path,<a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.WalProps.html" title="class in org.apache.hadoop.hbase.regionserver.wal">AbstractFSWAL.WalProps</a>&gt; <a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.264">walFile2Props</a></pre>
+<pre>protected&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ConcurrentNavigableMap.html?is-external=true" title="class or interface in java.util.concurrent">ConcurrentNavigableMap</a>&lt;org.apache.hadoop.fs.Path,<a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.WalProps.html" title="class in org.apache.hadoop.hbase.regionserver.wal">AbstractFSWAL.WalProps</a>&gt; <a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.279">walFile2Props</a></pre>
 <div class="block">Map of WAL log file to properties. The map is sorted by the log file creation timestamp
  (contained in the log file name).</div>
 </li>
@@ -1099,7 +1175,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/wal/WAL.html" titl
 <ul class="blockList">
 <li class="blockList">
 <h4>cachedSyncFutures</h4>
-<pre>private final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/ThreadLocal.html?is-external=true" title="class or interface in java.lang">ThreadLocal</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/SyncFuture.html" title="class in org.apache.hadoop.hbase.regionserver.wal">SyncFuture</a>&gt; <a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.272">cachedSyncFutures</a></pre>
+<pre>private final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/ThreadLocal.html?is-external=true" title="class or interface in java.lang">ThreadLocal</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/SyncFuture.html" title="class in org.apache.hadoop.hbase.regionserver.wal">SyncFuture</a>&gt; <a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.287">cachedSyncFutures</a></pre>
 <div class="block">Map of <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/SyncFuture.html" title="class in org.apache.hadoop.hbase.regionserver.wal"><code>SyncFuture</code></a>s owned by Thread objects. Used so we reuse SyncFutures.
  Thread local is used so JVM can GC the terminated thread for us. See HBASE-21228
  <p></div>
@@ -1111,7 +1187,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/wal/WAL.html" titl
 <ul class="blockListLast">
 <li class="blockList">
 <h4>implClassName</h4>
-<pre>protected 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/regionserver/wal/AbstractFSWAL.html#line.281">implClassName</a></pre>
+<pre>protected 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/regionserver/wal/AbstractFSWAL.html#line.296">implClassName</a></pre>
 <div class="block">The class name of the runtime implementation, used as prefix for logging/tracing.
  <p>
  Performance testing shows getClass().getSimpleName() might be a bottleneck so we store it here,
@@ -1133,7 +1209,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/wal/WAL.html" titl
 <ul class="blockListLast">
 <li class="blockList">
 <h4>AbstractFSWAL</h4>
-<pre>protected&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.331">AbstractFSWAL</a>(org.apache.hadoop.fs.FileSystem&nbsp;fs,
+<pre>protected&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.346">AbstractFSWAL</a>(org.apache.hadoop.fs.FileSystem&nbsp;fs,
                         org.apache.hadoop.fs.Path&nbsp;rootDir,
                         <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;logDir,
                         <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;archiveDir,
@@ -1165,7 +1241,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/wal/WAL.html" titl
 <ul class="blockList">
 <li class="blockList">
 <h4>getFilenum</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.283">getFilenum</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.298">getFilenum</a>()</pre>
 </li>
 </ul>
 <a name="getFileNumFromFileName-org.apache.hadoop.fs.Path-">
@@ -1174,7 +1250,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/wal/WAL.html" titl
 <ul class="blockList">
 <li class="blockList">
 <h4>getFileNumFromFileName</h4>
-<pre>protected&nbsp;long&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.293">getFileNumFromFileName</a>(org.apache.hadoop.fs.Path&nbsp;fileName)</pre>
+<pre>protected&nbsp;long&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.308">getFileNumFromFileName</a>(org.apache.hadoop.fs.Path&nbsp;fileName)</pre>
 <div class="block">A log file has a creation timestamp (in ms) in its file name (<a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#filenum"><code>filenum</code></a>. This helper
  method returns the creation timestamp from a given log file. It extracts the timestamp assuming
  the filename is created with the <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#computeFilename-long-"><code>computeFilename(long filenum)</code></a> method.</div>
@@ -1190,7 +1266,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/wal/WAL.html" titl
 <ul class="blockList">
 <li class="blockList">
 <h4>calculateMaxLogFiles</h4>
-<pre>private&nbsp;int&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.305">calculateMaxLogFiles</a>(org.apache.hadoop.conf.Configuration&nbsp;conf,
+<pre>private&nbsp;int&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.320">calculateMaxLogFiles</a>(org.apache.hadoop.conf.Configuration&nbsp;conf,
                                  long&nbsp;logRollSize)</pre>
 </li>
 </ul>
@@ -1200,7 +1276,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/wal/WAL.html" titl
 <ul class="blockList">
 <li class="blockList">
 <h4>getPreallocatedEventCount</h4>
-<pre>protected final&nbsp;int&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.311">getPreallocatedEventCount</a>()</pre>
+<pre>protected final&nbsp;int&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.326">getPreallocatedEventCount</a>()</pre>
 </li>
 </ul>
 <a name="init--">
@@ -1209,7 +1285,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/wal/WAL.html" titl
 <ul class="blockList">
 <li class="blockList">
 <h4>init</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.433">init</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.450">init</a>()
           throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block">Used to initialize the WAL. Usually just call rollWriter to create the first log writer.</div>
 <dl>
@@ -1224,7 +1300,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/wal/WAL.html" titl
 <ul class="blockList">
 <li class="blockList">
 <h4>registerWALActionsListener</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.438">registerWALActionsListener</a>(<a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/WALActionsListener.html" title="interface in org.apache.hadoop.hbase.regionserver.wal">WALActionsListener</a>&nbsp;listener)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.455">registerWALActionsListener</a>(<a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/WALActionsListener.html" title="interface in org.apache.hadoop.hbase.regionserver.wal">WALActionsListener</a>&nbsp;listener)</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/wal/WAL.html#registerWALActionsListener-org.apache.hadoop.hbase.regionserver.wal.WALActionsListener-">WAL</a></code></span></div>
 <div class="block">Registers WALActionsListener</div>
 <dl>
@@ -1239,7 +1315,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/wal/WAL.html" titl
 <ul class="blockList">
 <li class="blockList">
 <h4>unregisterWALActionsListener</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.443">unregisterWALActionsListener</a>(<a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/WALActionsListener.html" title="interface in org.apache.hadoop.hbase.regionserver.wal">WALActionsListener</a>&nbsp;listener)</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.460">unregisterWALActionsListener</a>(<a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/WALActionsListener.html" title="interface in org.apache.hadoop.hbase.regionserver.wal">WALActionsListener</a>&nbsp;listener)</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/wal/WAL.html#unregisterWALActionsListener-org.apache.hadoop.hbase.regionserver.wal.WALActionsListener-">WAL</a></code></span></div>
 <div class="block">Unregisters WALActionsListener</div>
 <dl>
@@ -1254,7 +1330,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/wal/WAL.html" titl
 <ul class="blockList">
 <li class="blockList">
 <h4>getCoprocessorHost</h4>
-<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/WALCoprocessorHost.html" title="class in org.apache.hadoop.hbase.regionserver.wal">WALCoprocessorHost</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.448">getCoprocessorHost</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/WALCoprocessorHost.html" title="class in org.apache.hadoop.hbase.regionserver.wal">WALCoprocessorHost</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.465">getCoprocessorHost</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../../org/apache/hadoop/hbase/wal/WAL.html#getCoprocessorHost--">getCoprocessorHost</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/wal/WAL.html" title="interface in org.apache.hadoop.hbase.wal">WAL</a></code></dd>
@@ -1269,7 +1345,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/wal/WAL.html" titl
 <ul class="blockList">
 <li class="blockList">
 <h4>startCacheFlush</h4>
-<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Long.html?is-external=true" title="class or interface in java.lang">Long</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.453">startCacheFlush</a>(byte[]&nbsp;encodedRegionName,
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Long.html?is-external=true" title="class or interface in java.lang">Long</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.470">startCacheFlush</a>(byte[]&nbsp;encodedRegionName,
                             <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;byte[]&gt;&nbsp;families)</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/wal/WAL.html#startCacheFlush-byte:A-java.util.Set-">WAL</a></code></span></div>
 <div class="block">WAL keeps track of the sequence numbers that are as yet not flushed im memstores
@@ -1301,7 +1377,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/wal/WAL.html" titl
 <ul class="blockList">
 <li class="blockList">
 <h4>startCacheFlush</h4>
-<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Long.html?is-external=true" title="class or interface in java.lang">Long</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.458">startCacheFlush</a>(byte[]&nbsp;encodedRegionName,
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Long.html?is-external=true" title="class or interface in java.lang">Long</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.475">startCacheFlush</a>(byte[]&nbsp;encodedRegionName,
                             <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;byte[],<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Long.html?is-external=true" title="class or interface in java.lang">Long</a>&gt;&nbsp;familyToSeq)</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
@@ -1315,7 +1391,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/wal/WAL.html" titl
 <ul class="blockList">
 <li class="blockList">
 <h4>completeCacheFlush</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.463">completeCacheFlush</a>(byte[]&nbsp;encodedRegionName)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.480">completeCacheFlush</a>(byte[]&nbsp;encodedRegionName)</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/wal/WAL.html#completeCacheFlush-byte:A-">WAL</a></code></span></div>
 <div class="block">Complete the cache flush.</div>
 <dl>
@@ -1335,7 +1411,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/wal/WAL.html" titl
 <ul class="blockList">
 <li class="blockList">
 <h4>abortCacheFlush</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.468">abortCacheFlush</a>(byte[]&nbsp;encodedRegionName)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.485">abortCacheFlush</a>(byte[]&nbsp;encodedRegionName)</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/wal/WAL.html#abortCacheFlush-byte:A-">WAL</a></code></span></div>
 <div class="block">Abort a cache flush. Call if the flush fails. Note that the only recovery
  for an aborted flush currently is a restart of the regionserver so the
@@ -1354,7 +1430,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/wal/WAL.html" titl
 <ul class="blockList">
 <li class="blockList">
 <h4>getEarliestMemStoreSeqNum</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.473">getEarliestMemStoreSeqNum</a>(byte[]&nbsp;encodedRegionName)</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.490">getEarliestMemStoreSeqNum</a>(byte[]&nbsp;encodedRegionName)</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/wal/WAL.html#getEarliestMemStoreSeqNum-byte:A-">WAL</a></code></span></div>
 <div class="block">Gets the earliest unflushed sequence id in the memstore for the region.</div>
 <dl>
@@ -1373,7 +1449,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/wal/WAL.html" titl
 <ul class="blockList">
 <li class="blockList">
 <h4>getEarliestMemStoreSeqNum</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.479">getEarliestMemStoreSeqNum</a>(byte[]&nbsp;encodedRegionName,
+<pre>public&nbsp;long&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.496">getEarliestMemStoreSeqNum</a>(byte[]&nbsp;encodedRegionName,
                                       byte[]&nbsp;familyName)</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/wal/WAL.html#getEarliestMemStoreSeqNum-byte:A-byte:A-">WAL</a></code></span></div>
 <div class="block">Gets the earliest unflushed sequence id in the memstore for the store.</div>
@@ -1394,7 +1470,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/wal/WAL.html" titl
 <ul class="blockList">
 <li class="blockList">
 <h4>rollWriter</h4>
-<pre>public&nbsp;byte[][]&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.492">rollWriter</a>()
+<pre>public&nbsp;byte[][]&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.509">rollWriter</a>()
                     throws <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/FailedLogCloseException.html" title="class in org.apache.hadoop.hbase.regionserver.wal">FailedLogCloseException</a>,
                            <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/wal/WAL.html#rollWriter--">WAL</a></code></span></div>
@@ -1422,7 +1498,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/wal/WAL.html" titl
 <ul class="blockList">
 <li class="blockList">
 <h4>computeFilename</h4>
-<pre>protected&nbsp;org.apache.hadoop.fs.Path&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.501">computeFilename</a>(long&nbsp;filenum)</pre>
+<pre>protected&nbsp;org.apache.hadoop.fs.Path&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.518">computeFilename</a>(long&nbsp;filenum)</pre>
 <div class="block">This is a convenience method that computes a new filename with a given file-number.</div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
@@ -1438,7 +1514,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/wal/WAL.html" titl
 <ul class="blockList">
 <li class="blockList">
 <h4>getCurrentFileName</h4>
-<pre>public&nbsp;org.apache.hadoop.fs.Path&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.514">getCurrentFileName</a>()</pre>
+<pre>public&nbsp;org.apache.hadoop.fs.Path&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.531">getCurrentFileName</a>()</pre>
 <div class="block">This is a convenience method that computes a new filename with a given using the current WAL
  file-number</div>
 <dl>
@@ -1453,7 +1529,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/wal/WAL.html" titl
 <ul class="blockList">
 <li class="blockList">
 <h4>getNewPath</h4>
-<pre>private&nbsp;org.apache.hadoop.fs.Path&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.521">getNewPath</a>()
+<pre>private&nbsp;org.apache.hadoop.fs.Path&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.538">getNewPath</a>()
                                       throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block">retrieve the next path to use for writing. Increments the internal filenum.</div>
 <dl>
@@ -1468,7 +1544,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/wal/WAL.html" titl
 <ul class="blockList">
 <li class="blockList">
 <h4>getOldPath</h4>
-<pre>org.apache.hadoop.fs.Path&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.532">getOldPath</a>()</pre>
+<pre>org.apache.hadoop.fs.Path&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.549">getOldPath</a>()</pre>
 </li>
 </ul>
 <a name="tellListenersAboutPreLogRoll-org.apache.hadoop.fs.Path-org.apache.hadoop.fs.Path-">
@@ -1477,7 +1553,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/wal/WAL.html" titl
 <ul class="blockList">
 <li class="blockList">
 <h4>tellListenersAboutPreLogRoll</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.545">tellListenersAboutPreLogRoll</a>(org.apache.hadoop.fs.Path&nbsp;oldPath,
+<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.562">tellListenersAboutPreLogRoll</a>(org.apache.hadoop.fs.Path&nbsp;oldPath,
                                           org.apache.hadoop.fs.Path&nbsp;newPath)
                                    throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block">Tell listeners about pre log roll.</div>
@@ -1493,7 +1569,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/wal/WAL.html" titl
 <ul class="blockList">
 <li class="blockList">
 <h4>tellListenersAboutPostLogRoll</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.559">tellListenersAboutPostLogRoll</a>(org.apache.hadoop.fs.Path&nbsp;oldPath,
+<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.576">tellListenersAboutPostLogRoll</a>(org.apache.hadoop.fs.Path&nbsp;oldPath,
                                            org.apache.hadoop.fs.Path&nbsp;newPath)
                                     throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block">Tell listeners about post log roll.</div>
@@ -1509,7 +1585,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/wal/WAL.html" titl
 <ul class="blockList">
 <li class="blockList">
 <h4>getNumRolledLogFiles</h4>
-<pre>public&nbsp;int&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.572">getNumRolledLogFiles</a>()</pre>
+<pre>public&nbsp;int&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.589">getNumRolledLogFiles</a>()</pre>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>the number of rolled log files</dd>
@@ -1522,7 +1598,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/wal/WAL.html" titl
 <ul class="blockList">
 <li class="blockList">
 <h4>getNumLogFiles</h4>
-<pre>public&nbsp;int&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.578">getNumLogFiles</a>()</pre>
+<pre>public&nbsp;int&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.595">getNumLogFiles</a>()</pre>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>the number of log files in use</dd>
@@ -1535,7 +1611,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/wal/WAL.html" titl
 <ul class="blockList">
 <li class="blockList">
 <h4>findRegionsToForceFlush</h4>
-<pre>byte[][]&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.589">findRegionsToForceFlush</a>()
+<pre>byte[][]&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.606">findRegionsToForceFlush</a>()
                           throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block">If the number of un-archived WAL files is greater than maximum allowed, check the first
  (oldest) WAL file, and returns those regions which should be flushed so that it can be
@@ -1554,7 +1630,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/wal/WAL.html" titl
 <ul class="blockList">
 <li class="blockList">
 <h4>cleanOldLogs</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.614">cleanOldLogs</a>()
+<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.631">cleanOldLogs</a>()
                    throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block">Archive old logs. A WAL is eligible for archiving if all its WALEdits have been flushed.</div>
 <dl>
@@ -1569,7 +1645,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/wal/WAL.html" titl
 <ul class="blockList">
 <li class="blockList">
 <h4>getWALArchivePath</h4>
-<pre>public static&nbsp;org.apache.hadoop.fs.Path&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.644">getWALArchivePath</a>(org.apache.hadoop.fs.Path&nbsp;archiveDir,
+<pre>public static&nbsp;org.apache.hadoop.fs.Path&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.686">getWALArchivePath</a>(org.apache.hadoop.fs.Path&nbsp;archiveDir,
                                                           org.apache.hadoop.fs.Path&nbsp;p)</pre>
 </li>
 </ul>
@@ -1579,7 +1655,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/wal/WAL.html" titl
 <ul class="blockList">
 <li class="blockList">
 <h4>archiveLogFile</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.648">archiveLogFile</a>(org.apache.hadoop.fs.Path&nbsp;p)
+<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.690">archiveLogFile</a>(org.apache.hadoop.fs.Path&nbsp;p)
                      throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -1593,7 +1669,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/wal/WAL.html" titl
 <ul class="blockList">
 <li class="blockList">
 <h4>logRollAndSetupWalProps</h4>
-<pre>protected final&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.668">logRollAndSetupWalProps</a>(org.apache.hadoop.fs.Path&nbsp;oldPath,
+<pre>protected final&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.710">logRollAndSetupWalProps</a>(org.apache.hadoop.fs.Path&nbsp;oldPath,
                                              org.apache.hadoop.fs.Path&nbsp;newPath,
                                              long&nbsp;oldFileLen)</pre>
 </li>
@@ -1606,7 +1682,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/wal/WAL.html" titl
 <ul class="blockList">
 <li class="blockList">
 <h4>replaceWriter</h4>
-<pre>org.apache.hadoop.fs.Path&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.704">replaceWriter</a>(org.apache.hadoop.fs.Path&nbsp;oldPath,
+<pre>org.apache.hadoop.fs.Path&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.746">replaceWriter</a>(org.apache.hadoop.fs.Path&nbsp;oldPath,
                                         org.apache.hadoop.fs.Path&nbsp;newPath,
                                         <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html" title="type parameter in AbstractFSWAL">W</a>&nbsp;nextWriter)
                                  throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
@@ -1641,7 +1717,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/wal/WAL.html" titl
 <ul class="blockList">
 <li class="blockList">
 <h4>blockOnSync</h4>
-<pre>protected final&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.711">blockOnSync</a>(<a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/SyncFuture.html" title="class in org.apache.hadoop.hbase.regionserver.wal">SyncFuture</a>&nbsp;syncFuture)
+<pre>protected final&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.753">blockOnSync</a>(<a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/SyncFuture.html" title="class in org.apache.hadoop.hbase.regionserver.wal">SyncFuture</a>&nbsp;syncFuture)
                           throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -1655,7 +1731,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/wal/WAL.html" titl
 <ul class="blockList">
 <li class="blockList">
 <h4>ensureIOException</h4>
-<pre>private static&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.735">ensureIOException</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;t)</pre>
+<pre>private static&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.777">ensureIOException</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;t)</pre>
 </li>
 </ul>
 <a name="convertInterruptedExceptionToIOException-java.lang.InterruptedException-">
@@ -1664,7 +1740,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/wal/WAL.html" titl
 <ul class="blockList">
 <li class="blockList">
 <h4>convertInterruptedExceptionToIOException</h4>
-<pre>private&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.739">convertInterruptedExceptionToIOException</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/InterruptedException.html?is-external=true" title="class or interface in java.lang">InterruptedException</a>&nbsp;ie)</pre>
+<pre>private&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.781">convertInterruptedExceptionToIOException</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/InterruptedException.html?is-external=true" title="class or interface in java.lang">InterruptedException</a>&nbsp;ie)</pre>
 </li>
 </ul>
 <a name="rollWriter-boolean-">
@@ -1673,7 +1749,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/wal/WAL.html" titl
 <ul class="blockList">
 <li class="blockList">
 <h4>rollWriter</h4>
-<pre>public&nbsp;byte[][]&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.747">rollWriter</a>(boolean&nbsp;force)
+<pre>public&nbsp;byte[][]&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.789">rollWriter</a>(boolean&nbsp;force)
                     throws <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/FailedLogCloseException.html" title="class in org.apache.hadoop.hbase.regionserver.wal">FailedLogCloseException</a>,
                            <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/wal/WAL.html#rollWriter-boolean-">WAL</a></code></span></div>
@@ -1704,7 +1780,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/wal/WAL.html" titl
 <ul class="blockList">
 <li class="blockList">
 <h4>getLogFileSize</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.791">getLogFileSize</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.833">getLogFileSize</a>()</pre>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>the size of log files in use</dd>
@@ -1717,7 +1793,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/wal/WAL.html" titl
 <ul class="blockList">
 <li class="blockList">
 <h4>requestLogRoll</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.796">requestLogRoll</a>()</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.838">requestLogRoll</a>()</pre>
 </li>
 </ul>
 <a name="getFiles--">
@@ -1726,7 +1802,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/wal/WAL.html" titl
 <ul class="blockList">
 <li class="blockList">
 <h4>getFiles</h4>
-<pre>org.apache.hadoop.fs.FileStatus[]&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.805">getFiles</a>()
+<pre>org.apache.hadoop.fs.FileStatus[]&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.847">getFiles</a>()
                                     throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block">Get the backing files associated with this WAL.</div>
 <dl>
@@ -1743,7 +1819,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/wal/WAL.html" titl
 <ul class="blockList">
 <li class="blockList">
 <h4>shutdown</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.810">shutdown</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.852">shutdown</a>()
               throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/wal/WAL.html#shutdown--">WAL</a></code></span></div>
 <div class="block">Stop accepting new writes. If we have unsynced writes still in buffer, sync them.
@@ -1762,7 +1838,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/wal/WAL.html" titl
 <ul class="blockList">
 <li class="blockList">
 <h4>close</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.830">close</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.872">close</a>()
            throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/wal/WAL.html#close--">WAL</a></code></span></div>
 <div class="block">Caller no longer needs any edits from this WAL. Implementers are free to reclaim
@@ -1786,7 +1862,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/wal/WAL.html" titl
 <ul class="blockList">
 <li class="blockList">
 <h4>updateStore</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.868">updateStore</a>(byte[]&nbsp;encodedRegionName,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.910">updateStore</a>(byte[]&nbsp;encodedRegionName,
                         byte[]&nbsp;familyName,
                         <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Long.html?is-external=true" title="class or interface in java.lang">Long</a>&nbsp;sequenceid,
                         boolean&nbsp;onlyIfGreater)</pre>
@@ -1809,7 +1885,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/wal/WAL.html" titl
 <ul class="blockList">
 <li class="blockList">
 <h4>getSyncFuture</h4>
-<pre>protected final&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/SyncFuture.html" title="class in org.apache.hadoop.hbase.regionserver.wal">SyncFuture</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.873">getSyncFuture</a>(long&nbsp;sequence)</pre>
+<pre>protected final&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/SyncFuture.html" title="class in org.apache.hadoop.hbase.regionserver.wal">SyncFuture</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.915">getSyncFuture</a>(long&nbsp;sequence)</pre>
 </li>
 </ul>
 <a name="requestLogRoll-boolean-">
@@ -1818,7 +1894,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/wal/WAL.html" titl
 <ul class="blockList">
 <li class="blockList">
 <h4>requestLogRoll</h4>
-<pre>protected final&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.877">requestLogRoll</a>(boolean&nbsp;tooFewReplicas)</pre>
+<pre>protected final&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.919">requestLogRoll</a>(boolean&nbsp;tooFewReplicas)</pre>
 </li>
 </ul>
 <a name="getUnflushedEntriesCount--">
@@ -1827,7 +1903,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/wal/WAL.html" titl
 <ul class="blockList">
 <li class="blockList">
 <h4>getUnflushedEntriesCount</h4>
-<pre>long&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.885">getUnflushedEntriesCount</a>()</pre>
+<pre>long&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.927">getUnflushedEntriesCount</a>()</pre>
 </li>
 </ul>
 <a name="isUnflushedEntries--">
@@ -1836,7 +1912,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/wal/WAL.html" titl
 <ul class="blockList">
 <li class="blockList">
 <h4>isUnflushedEntries</h4>
-<pre>boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.891">isUnflushedEntries</a>()</pre>
+<pre>boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.933">isUnflushedEntries</a>()</pre>
 </li>
 </ul>
 <a name="atHeadOfRingBufferEventHandlerAppend--">
@@ -1845,7 +1921,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/wal/WAL.html" titl
 <ul class="blockList">
 <li class="blockList">
 <h4>atHeadOfRingBufferEventHandlerAppend</h4>
-<pre>void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.899">atHeadOfRingBufferEventHandlerAppend</a>()</pre>
+<pre>void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.941">atHeadOfRingBufferEventHandlerAppend</a>()</pre>
 <div class="block">Exposed for testing only. Use to tricks like halt the ring buffer appending.</div>
 </li>
 </ul>
@@ -1857,7 +1933,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/wal/WAL.html" titl
 <ul class="blockList">
 <li class="blockList">
 <h4>append</h4>
-<pre>protected final&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.903">append</a>(<a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html" title="type parameter in AbstractFSWAL">W</a>&nbsp;writer,
+<pre>protected final&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.945">append</a>(<a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html" title="type parameter in AbstractFSWAL">W</a>&nbsp;writer,
                                <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/FSWALEntry.html" title="class in org.apache.hadoop.hbase.regionserver.wal">FSWALEntry</a>&nbsp;entry)
                         throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
@@ -1872,7 +1948,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/wal/WAL.html" titl
 <ul class="blockList">
 <li class="blockList">
 <h4>postAppend</h4>
-<pre>private&nbsp;long&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.936">postAppend</a>(<a href="../../../../../../org/apache/hadoop/hbase/wal/WAL.Entry.html" title="class in org.apache.hadoop.hbase.wal">WAL.Entry</a>&nbsp;e,
+<pre>private&nbsp;long&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.978">postAppend</a>(<a href="../../../../../../org/apache/hadoop/hbase/wal/WAL.Entry.html" title="class in org.apache.hadoop.hbase.wal">WAL.Entry</a>&nbsp;e,
                         long&nbsp;elapsedTime)
                  throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
@@ -1887,7 +1963,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/wal/WAL.html" titl
 <ul class="blockList">
 <li class="blockList">
 <h4>postSync</h4>
-<pre>protected final&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.949">postSync</a>(long&nbsp;timeInNanos,
+<pre>protected final&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.991">postSync</a>(long&nbsp;timeInNanos,
                               int&nbsp;handlerSyncs)</pre>
 </li>
 </ul>
@@ -1897,7 +1973,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/wal/WAL.html" titl
 <ul class="blockList">
 <li class="blockList">
 <h4>stampSequenceIdAndPublishToRingBuffer</h4>
-<pre>protected final&nbsp;long&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.963">stampSequenceIdAndPublishToRingBuffer</a>(<a href="../../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&nbsp;hri,
+<pre>protected final&nbsp;long&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.1005">stampSequenceIdAndPublishToRingBuffer</a>(<a href="../../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&nbsp;hri,
                                                            <a href="../../../../../../org/apache/hadoop/hbase/wal/WALKeyImpl.html" title="class in org.apache.hadoop.hbase.wal">WALKeyImpl</a>&nbsp;key,
                                                            <a href="../../../../../../org/apache/hadoop/hbase/wal/WALEdit.html" title="class in org.apache.hadoop.hbase.wal">WALEdit</a>&nbsp;edits,
                                                            boolean&nbsp;inMemstore,
@@ -1915,7 +1991,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/wal/WAL.html" titl
 <ul class="blockList">
 <li class="blockList">
 <h4>toString</h4>
-<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.986">toString</a>()</pre>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.1028">toString</a>()</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../../org/apache/hadoop/hbase/wal/WAL.html#toString--">WAL</a></code></span></div>
 <div class="block">Human readable identifying information about the state of this WAL.
  Implementors are encouraged to include information appropriate for debugging.
@@ -1935,7 +2011,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/wal/WAL.html" titl
 <ul class="blockList">
 <li class="blockList">
 <h4>getLogFileSizeIfBeingWritten</h4>
-<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/OptionalLong.html?is-external=true" title="class or interface in java.util">OptionalLong</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.997">getLogFileSizeIfBeingWritten</a>(org.apache.hadoop.fs.Path&nbsp;path)</pre>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/OptionalLong.html?is-external=true" title="class or interface in java.util">OptionalLong</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.1039">getLogFileSizeIfBeingWritten</a>(org.apache.hadoop.fs.Path&nbsp;path)</pre>
 <div class="block">if the given <code>path</code> is being written currently, then return its length.
  <p>
  This is used by replication to prevent replicating unacked log entries. See
@@ -1952,7 +2028,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/wal/WAL.html" titl
 <ul class="blockList">
 <li class="blockList">
 <h4>append</h4>
-<pre>public abstract&nbsp;long&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.1025">append</a>(<a href="../../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&nbsp;info,
+<pre>public abstract&nbsp;long&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.1067">append</a>(<a href="../../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&nbsp;info,
                             <a href="../../../../../../org/apache/hadoop/hbase/wal/WALKeyImpl.html" title="class in org.apache.hadoop.hbase.wal">WALKeyImpl</a>&nbsp;key,
                             <a href="../../../../../../org/apache/hadoop/hbase/wal/WALEdit.html" title="class in org.apache.hadoop.hbase.wal">WALEdit</a>&nbsp;edits,
                             boolean&nbsp;inMemstore)
@@ -1994,7 +2070,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/wal/WAL.html" titl
 <ul class="blockList">
 <li class="blockList">
 <h4>doAppend</h4>
-<pre>protected abstract&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.1028">doAppend</a>(<a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html" title="type parameter in AbstractFSWAL">W</a>&nbsp;writer,
+<pre>protected abstract&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.1070">doAppend</a>(<a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html" title="type parameter in AbstractFSWAL">W</a>&nbsp;writer,
                                  <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/FSWALEntry.html" title="class in org.apache.hadoop.hbase.regionserver.wal">FSWALEntry</a>&nbsp;entry)
                           throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
@@ -2009,7 +2085,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/wal/WAL.html" titl
 <ul class="blockList">
 <li class="blockList">
 <h4>createWriterInstance</h4>
-<pre>protected abstract&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html" title="type parameter in AbstractFSWAL">W</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.1030">createWriterInstance</a>(org.apache.hadoop.fs.Path&nbsp;path)
+<pre>protected abstract&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html" title="type parameter in AbstractFSWAL">W</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.1072">createWriterInstance</a>(org.apache.hadoop.fs.Path&nbsp;path)
                                    throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a>,
                                           <a href="../../../../../../org/apache/hadoop/hbase/util/CommonFSUtils.StreamLacksCapabilityException.html" title="class in org.apache.hadoop.hbase.util">CommonFSUtils.StreamLacksCapabilityException</a></pre>
 <dl>
@@ -2027,7 +2103,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/wal/WAL.html" titl
 <ul class="blockList">
 <li class="blockList">
 <h4>doReplaceWriter</h4>
-<pre>protected abstract&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.1033">doReplaceWriter</a>(org.apache.hadoop.fs.Path&nbsp;oldPath,
+<pre>protected abstract&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.1075">doReplaceWriter</a>(org.apache.hadoop.fs.Path&nbsp;oldPath,
                                         org.apache.hadoop.fs.Path&nbsp;newPath,
                                         <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html" title="type parameter in AbstractFSWAL">W</a>&nbsp;nextWriter)
                                  throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
@@ -2043,7 +2119,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/wal/WAL.html" titl
 <ul class="blockList">
 <li class="blockList">
 <h4>doShutdown</h4>
-<pre>protected abstract&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.1036">doShutdown</a>()
+<pre>protected abstract&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.1078">doShutdown</a>()
                             throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -2057,7 +2133,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/wal/WAL.html" titl
 <ul class="blockList">
 <li class="blockList">
 <h4>doCheckLogLowReplication</h4>
-<pre>protected abstract&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.1038">doCheckLogLowReplication</a>()</pre>
+<pre>protected abstract&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.1080">doCheckLogLowReplication</a>()</pre>
 </li>
 </ul>
 <a name="checkLogLowReplication-long-">
@@ -2066,7 +2142,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/wal/WAL.html" titl
 <ul class="blockList">
 <li class="blockList">
 <h4>checkLogLowReplication</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.1040">checkLogLowReplication</a>(long&nbsp;checkInterval)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.1082">checkLogLowReplication</a>(long&nbsp;checkInterval)</pre>
 </li>
 </ul>
 <a name="getPipeline--">
@@ -2075,7 +2151,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/wal/WAL.html" titl
 <ul class="blockList">
 <li class="blockList">
 <h4>getPipeline</h4>
-<pre>abstract&nbsp;org.apache.hadoop.hdfs.protocol.DatanodeInfo[]&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.1063">getPipeline</a>()</pre>
+<pre>abstract&nbsp;org.apache.hadoop.hdfs.protocol.DatanodeInfo[]&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.1105">getPipeline</a>()</pre>
 <div class="block">This method gets the pipeline for the current WAL.</div>
 </li>
 </ul>
@@ -2085,7 +2161,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/wal/WAL.html" titl
 <ul class="blockList">
 <li class="blockList">
 <h4>getLogReplication</h4>
-<pre>abstract&nbsp;int&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.1069">getLogReplication</a>()</pre>
+<pre>abstract&nbsp;int&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.1111">getLogReplication</a>()</pre>
 <div class="block">This method gets the datanode replication count for the current WAL.</div>
 </li>
 </ul>
@@ -2095,7 +2171,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/wal/WAL.html" titl
 <ul class="blockList">
 <li class="blockList">
 <h4>split</h4>
-<pre>private static&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.1071">split</a>(org.apache.hadoop.conf.Configuration&nbsp;conf,
+<pre>private static&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.1113">split</a>(org.apache.hadoop.conf.Configuration&nbsp;conf,
                           org.apache.hadoop.fs.Path&nbsp;p)
                    throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
@@ -2110,7 +2186,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/wal/WAL.html" titl
 <ul class="blockList">
 <li class="blockList">
 <h4>usage</h4>
-<pre>private static&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.1089">usage</a>()</pre>
+<pre>private static&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.1131">usage</a>()</pre>
 </li>
 </ul>
 <a name="main-java.lang.String:A-">
@@ -2119,7 +2195,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/wal/WAL.html" titl
 <ul class="blockListLast">
 <li class="blockList">
 <h4>main</h4>
-<pre>public static&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.1104">main</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[]&nbsp;args)
+<pre>public static&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.html#line.1146">main</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[]&nbsp;args)
                  throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block">Pass one or more log file names and it will either dump out a text version on
  <code>stdout</code> or split the specified log files.</div>
index 0df099b..2fb8bba 100644 (file)
@@ -110,7 +110,7 @@ var activeTableTab = "activeTableTab";
 <hr>
 <br>
 <pre>@InterfaceAudience.Private
-class <a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/SequenceIdAccounting.html#line.54">SequenceIdAccounting</a>
+class <a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/SequenceIdAccounting.html#line.55">SequenceIdAccounting</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>
 <div class="block"><p>
  Accounting of sequence ids per region and then by column family. So we can our accounting
@@ -211,7 +211,8 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 </tr>
 <tr id="i1" class="rowColor">
 <td class="colFirst"><code>(package private) boolean</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/SequenceIdAccounting.html#areAllLower-java.util.Map-">areAllLower</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;byte[],<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Long.html?is-external=true" title="class or interface in java.lang">Long</a>&gt;&nbsp;sequenceids)</code>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/SequenceIdAccounting.html#areAllLower-java.util.Map-java.util.Collection-">areAllLower</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;byte[],<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Long.html?is-external=true" title="class or interface in java.lang">Long</a>&gt;&nbsp;sequenceids,
+           <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;byte[]&gt;&nbsp;keysBlocking)</code>
 <div class="block">See if passed <code>sequenceids</code> are lower -- i.e.</div>
 </td>
 </tr>
@@ -311,7 +312,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>LOG</h4>
-<pre>private static final&nbsp;org.slf4j.Logger <a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/SequenceIdAccounting.html#line.56">LOG</a></pre>
+<pre>private static final&nbsp;org.slf4j.Logger <a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/SequenceIdAccounting.html#line.57">LOG</a></pre>
 </li>
 </ul>
 <a name="tieLock">
@@ -320,7 +321,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>tieLock</h4>
-<pre>private final&nbsp;<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> <a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/SequenceIdAccounting.html#line.73">tieLock</a></pre>
+<pre>private final&nbsp;<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> <a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/SequenceIdAccounting.html#line.74">tieLock</a></pre>
 <div class="block">This lock ties all operations on <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/SequenceIdAccounting.html#flushingSequenceIds"><code>flushingSequenceIds</code></a> and
  <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/SequenceIdAccounting.html#lowestUnflushedSequenceIds"><code>lowestUnflushedSequenceIds</code></a> Maps. <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/SequenceIdAccounting.html#lowestUnflushedSequenceIds"><code>lowestUnflushedSequenceIds</code></a> has the
  lowest outstanding sequence ids EXCEPT when flushing. When we flush, the current
@@ -343,7 +344,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>lowestUnflushedSequenceIds</h4>
-<pre>private final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ConcurrentMap.html?is-external=true" title="class or interface in java.util.concurrent">ConcurrentMap</a>&lt;byte[],<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ConcurrentMap.html?is-external=true" title="class or interface in java.util.concurrent">ConcurrentMap</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/util/ImmutableByteArray.html" title="class in org.apache.hadoop.hbase.util">ImmutableByteArray</a>,<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Long.html?is-external=true" title="class or interface in java.lang">Long</a>&gt;&gt; <a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/SequenceIdAccounting.html#line.87">lowestUnflushedSequenceIds</a></pre>
+<pre>private final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ConcurrentMap.html?is-external=true" title="class or interface in java.util.concurrent">ConcurrentMap</a>&lt;byte[],<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ConcurrentMap.html?is-external=true" title="class or interface in java.util.concurrent">ConcurrentMap</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/util/ImmutableByteArray.html" title="class in org.apache.hadoop.hbase.util">ImmutableByteArray</a>,<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Long.html?is-external=true" title="class or interface in java.lang">Long</a>&gt;&gt; <a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/SequenceIdAccounting.html#line.88">lowestUnflushedSequenceIds</a></pre>
 <div class="block">Map of encoded region names and family names to their OLDEST -- i.e. their first,
  the longest-lived, their 'earliest', the 'lowest' -- sequence id.
 
@@ -361,7 +362,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>flushingSequenceIds</h4>
-<pre>private final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;byte[],<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/util/ImmutableByteArray.html" title="class in org.apache.hadoop.hbase.util">ImmutableByteArray</a>,<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Long.html?is-external=true" title="class or interface in java.lang">Long</a>&gt;&gt; <a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/SequenceIdAccounting.html#line.95">flushingSequenceIds</a></pre>
+<pre>private final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;byte[],<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/util/ImmutableByteArray.html" title="class in org.apache.hadoop.hbase.util">ImmutableByteArray</a>,<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Long.html?is-external=true" title="class or interface in java.lang">Long</a>&gt;&gt; <a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/SequenceIdAccounting.html#line.96">flushingSequenceIds</a></pre>
 <div class="block">Map of encoded region names and family names to their lowest or OLDEST sequence/edit id
  currently being flushed out to hfiles. Entries are moved here from
  <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/SequenceIdAccounting.html#lowestUnflushedSequenceIds"><code>lowestUnflushedSequenceIds</code></a> while the lock <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/SequenceIdAccounting.html#tieLock"><code>tieLock</code></a> is held
@@ -374,7 +375,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockListLast">
 <li class="blockList">
 <h4>highestSequenceIds</h4>
-<pre>private&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;byte[],<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Long.html?is-external=true" title="class or interface in java.lang">Long</a>&gt; <a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/SequenceIdAccounting.html#line.108">highestSequenceIds</a></pre>
+<pre>private&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;byte[],<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Long.html?is-external=true" title="class or interface in java.lang">Long</a>&gt; <a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/SequenceIdAccounting.html#line.109">highestSequenceIds</a></pre>
 <div class="block"><p>
  Map of region encoded names to the latest/highest region sequence id. Updated on each call to
  append.
@@ -400,7 +401,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockListLast">
 <li class="blockList">
 <h4>SequenceIdAccounting</h4>
-<pre><a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/SequenceIdAccounting.html#line.54">SequenceIdAccounting</a>()</pre>
+<pre><a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/SequenceIdAccounting.html#line.55">SequenceIdAccounting</a>()</pre>
 </li>
 </ul>
 </li>
@@ -417,7 +418,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>getLowestSequenceId</h4>
-<pre>long&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/SequenceIdAccounting.html#line.116">getLowestSequenceId</a>(byte[]&nbsp;encodedRegionName)</pre>
+<pre>long&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/SequenceIdAccounting.html#line.117">getLowestSequenceId</a>(byte[]&nbsp;encodedRegionName)</pre>
 <div class="block">Returns the lowest unflushed sequence id for the region.</div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
@@ -434,7 +435,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>getLowestSequenceId</h4>
-<pre>long&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/SequenceIdAccounting.html#line.133">getLowestSequenceId</a>(byte[]&nbsp;encodedRegionName,
+<pre>long&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/SequenceIdAccounting.html#line.134">getLowestSequenceId</a>(byte[]&nbsp;encodedRegionName,
                          byte[]&nbsp;familyName)</pre>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
@@ -453,7 +454,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>resetHighest</h4>
-<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;byte[],<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Long.html?is-external=true" title="class or interface in java.lang">Long</a>&gt;&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/SequenceIdAccounting.html#line.159">resetHighest</a>()</pre>
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;byte[],<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Long.html?is-external=true" title="class or interface in java.lang">Long</a>&gt;&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/SequenceIdAccounting.html#line.160">resetHighest</a>()</pre>
 <div class="block">Reset the accounting of highest sequenceid by regionname.</div>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
@@ -468,7 +469,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>update</h4>
-<pre>void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/SequenceIdAccounting.html#line.174">update</a>(byte[]&nbsp;encodedRegionName,
+<pre>void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/SequenceIdAccounting.html#line.175">update</a>(byte[]&nbsp;encodedRegionName,
             <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;byte[]&gt;&nbsp;families,
             long&nbsp;sequenceid,
             boolean&nbsp;lowest)</pre>
@@ -490,7 +491,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>updateStore</h4>
-<pre>void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/SequenceIdAccounting.html#line.189">updateStore</a>(byte[]&nbsp;encodedRegionName,
+<pre>void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/SequenceIdAccounting.html#line.190">updateStore</a>(byte[]&nbsp;encodedRegionName,
                  byte[]&nbsp;familyName,
                  <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Long.html?is-external=true" title="class or interface in java.lang">Long</a>&nbsp;sequenceId,
                  boolean&nbsp;onlyIfGreater)</pre>
@@ -503,7 +504,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>getOrCreateLowestSequenceIds</h4>
-<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ConcurrentMap.html?is-external=true" title="class or interface in java.util.concurrent">ConcurrentMap</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/util/ImmutableByteArray.html" title="class in org.apache.hadoop.hbase.util">ImmutableByteArray</a>,<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Long.html?is-external=true" title="class or interface in java.lang">Long</a>&gt;&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/SequenceIdAccounting.html#line.222">getOrCreateLowestSequenceIds</a>(byte[]&nbsp;encodedRegionName)</pre>
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ConcurrentMap.html?is-external=true" title="class or interface in java.util.concurrent">ConcurrentMap</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/util/ImmutableByteArray.html" title="class in org.apache.hadoop.hbase.util">ImmutableByteArray</a>,<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Long.html?is-external=true" title="class or interface in java.lang">Long</a>&gt;&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/SequenceIdAccounting.html#line.223">getOrCreateLowestSequenceIds</a>(byte[]&nbsp;encodedRegionName)</pre>
 </li>
 </ul>
 <a name="getLowestSequenceId-java.util.Map-">
@@ -512,7 +513,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>getLowestSequenceId</h4>
-<pre>private static&nbsp;long&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/SequenceIdAccounting.html#line.232">getLowestSequenceId</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;?,<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Long.html?is-external=true" title="class or interface in java.lang">Long</a>&gt;&nbsp;sequenceids)</pre>
+<pre>private static&nbsp;long&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/SequenceIdAccounting.html#line.233">getLowestSequenceId</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;?,<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Long.html?is-external=true" title="class or interface in java.lang">Long</a>&gt;&nbsp;sequenceids)</pre>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
 <dd><code>sequenceids</code> - Map to search for lowest value.</dd>
@@ -527,7 +528,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>flattenToLowestSequenceId</h4>
-<pre>private&nbsp;&lt;T extends <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;?,<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Long.html?is-external=true" title="class or interface in java.lang">Long</a>&gt;&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;byte[],<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Long.html?is-external=true" title="class or interface in java.lang">Long</a>&gt;&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/SequenceIdAccounting.html#line.247">flattenToLowestSequenceId</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;byte[],T&gt;&nbsp;src)</pre>
+<pre>private&nbsp;&lt;T extends <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;?,<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Long.html?is-external=true" title="class or interface in java.lang">Long</a>&gt;&gt;&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;byte[],<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Long.html?is-external=true" title="class or interface in java.lang">Long</a>&gt;&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/SequenceIdAccounting.html#line.248">flattenToLowestSequenceId</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;byte[],T&gt;&nbsp;src)</pre>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
 <dd><code>src</code> - </dd>
@@ -543,7 +544,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>startCacheFlush</h4>
-<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Long.html?is-external=true" title="class or interface in java.lang">Long</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/SequenceIdAccounting.html#line.270">startCacheFlush</a>(byte[]&nbsp;encodedRegionName,
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Long.html?is-external=true" title="class or interface in java.lang">Long</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/SequenceIdAccounting.html#line.271">startCacheFlush</a>(byte[]&nbsp;encodedRegionName,
                      <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;byte[]&gt;&nbsp;families)</pre>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
@@ -564,7 +565,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>startCacheFlush</h4>
-<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Long.html?is-external=true" title="class or interface in java.lang">Long</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/SequenceIdAccounting.html#line.278">startCacheFlush</a>(byte[]&nbsp;encodedRegionName,
+<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Long.html?is-external=true" title="class or interface in java.lang">Long</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/SequenceIdAccounting.html#line.279">startCacheFlush</a>(byte[]&nbsp;encodedRegionName,
                      <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;byte[],<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Long.html?is-external=true" title="class or interface in java.lang">Long</a>&gt;&nbsp;familyToSeq)</pre>
 </li>
 </ul>
@@ -574,7 +575,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>completeCacheFlush</h4>
-<pre>void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/SequenceIdAccounting.html#line.333">completeCacheFlush</a>(byte[]&nbsp;encodedRegionName)</pre>
+<pre>void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/SequenceIdAccounting.html#line.334">completeCacheFlush</a>(byte[]&nbsp;encodedRegionName)</pre>
 </li>
 </ul>
 <a name="abortCacheFlush-byte:A-">
@@ -583,22 +584,25 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>abortCacheFlush</h4>
-<pre>void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/SequenceIdAccounting.html#line.339">abortCacheFlush</a>(byte[]&nbsp;encodedRegionName)</pre>
+<pre>void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/SequenceIdAccounting.html#line.340">abortCacheFlush</a>(byte[]&nbsp;encodedRegionName)</pre>
 </li>
 </ul>
-<a name="areAllLower-java.util.Map-">
+<a name="areAllLower-java.util.Map-java.util.Collection-">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>areAllLower</h4>
-<pre>boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/SequenceIdAccounting.html#line.382">areAllLower</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;byte[],<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Long.html?is-external=true" title="class or interface in java.lang">Long</a>&gt;&nbsp;sequenceids)</pre>
+<pre>boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/SequenceIdAccounting.html#line.385">areAllLower</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;byte[],<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Long.html?is-external=true" title="class or interface in java.lang">Long</a>&gt;&nbsp;sequenceids,
+                    <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;byte[]&gt;&nbsp;keysBlocking)</pre>
 <div class="block">See if passed <code>sequenceids</code> are lower -- i.e. earlier -- than any outstanding
  sequenceids, sequenceids we are holding on to in this accounting instance.</div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
 <dd><code>sequenceids</code> - Keyed by encoded region name. Cannot be null (doesn't make sense for it to
           be null).</dd>
+<dd><code>keysBlocking</code> - An optional collection that is used to return the specific keys that are
+          causing this method to return false.</dd>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>true if all sequenceids are lower, older than, the old sequenceids in this instance.</dd>
 </dl>
@@ -610,7 +614,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockListLast">
 <li class="blockList">
 <h4>findLower</h4>
-<pre>byte[][]&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/SequenceIdAccounting.html#line.416">findLower</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;byte[],<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Long.html?is-external=true" title="class or interface in java.lang">Long</a>&gt;&nbsp;sequenceids)</pre>
+<pre>byte[][]&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/wal/SequenceIdAccounting.html#line.425">findLower</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;byte[],<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Long.html?is-external=true" title="class or interface in java.lang">Long</a>&gt;&nbsp;sequenceids)</pre>
 <div class="block">Iterates over the given Map and compares sequence ids with corresponding entries in
  <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/SequenceIdAccounting.html#lowestUnflushedSequenceIds"><code>lowestUnflushedSequenceIds</code></a>. If a region in
  <a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/SequenceIdAccounting.html#lowestUnflushedSequenceIds"><code>lowestUnflushedSequenceIds</code></a> has a sequence id less than that passed in
index ebf64ee..33b5416 100644 (file)
 <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" title="class or interface in java.io">Serializable</a>)
 <ul>
-<li type="circle">org.apache.hadoop.hbase.replication.<a href="../../../../../org/apache/hadoop/hbase/replication/SyncReplicationState.html" title="enum in org.apache.hadoop.hbase.replication"><span class="typeNameLink">SyncReplicationState</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.replication.<a href="../../../../../org/apache/hadoop/hbase/replication/ReplicationPeer.PeerState.html" title="enum in org.apache.hadoop.hbase.replication"><span class="typeNameLink">ReplicationPeer.PeerState</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.replication.<a href="../../../../../org/apache/hadoop/hbase/replication/SyncReplicationState.html" title="enum in org.apache.hadoop.hbase.replication"><span class="typeNameLink">SyncReplicationState</span></a></li>
 </ul>
 </li>
 </ul>
index 19d2ff4..9a2ed16 100644 (file)
 <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" title="class or interface in java.io">Serializable</a>)
 <ul>
-<li type="circle">org.apache.hadoop.hbase.replication.regionserver.<a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceShipper.WorkerState.html" title="enum in org.apache.hadoop.hbase.replication.regionserver"><span class="typeNameLink">ReplicationSourceShipper.WorkerState</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.replication.regionserver.<a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/MetricsReplicationSourceFactoryImpl.SourceHolder.html" title="enum in org.apache.hadoop.hbase.replication.regionserver"><span class="typeNameLink">MetricsReplicationSourceFactoryImpl.SourceHolder</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.replication.regionserver.<a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceShipper.WorkerState.html" title="enum in org.apache.hadoop.hbase.replication.regionserver"><span class="typeNameLink">ReplicationSourceShipper.WorkerState</span></a></li>
 </ul>
 </li>
 </ul>
index 7d70035..3aa879d 100644 (file)
 <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" title="class or interface in java.io">Serializable</a>)
 <ul>
-<li type="circle">org.apache.hadoop.hbase.rest.model.<a href="../../../../../../org/apache/hadoop/hbase/rest/model/ScannerModel.FilterModel.ByteArrayComparableModel.ComparatorType.html" title="enum in org.apache.hadoop.hbase.rest.model"><span class="typeNameLink">ScannerModel.FilterModel.ByteArrayComparableModel.ComparatorType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.rest.model.<a href="../../../../../../org/apache/hadoop/hbase/rest/model/ScannerModel.FilterModel.FilterType.html" title="enum in org.apache.hadoop.hbase.rest.model"><span class="typeNameLink">ScannerModel.FilterModel.FilterType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.rest.model.<a href="../../../../../../org/apache/hadoop/hbase/rest/model/ScannerModel.FilterModel.ByteArrayComparableModel.ComparatorType.html" title="enum in org.apache.hadoop.hbase.rest.model"><span class="typeNameLink">ScannerModel.FilterModel.ByteArrayComparableModel.ComparatorType</span></a></li>
 </ul>
 </li>
 </ul>
index a7d6087..0a88380 100644 (file)
@@ -593,7 +593,7 @@ public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSG
 <ul class="blockList">
 <li class="blockList">
 <h4>retainAssignment</h4>
-<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>,<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&gt;&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupBasedLoadBalancer.html#line.202">retainAssignment</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>,<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&gt;&nbsp;regions,
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>,<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&gt;&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupBasedLoadBalancer.html#line.200">retainAssignment</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>,<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&gt;&nbsp;regions,
                                                          <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&gt;&nbsp;servers)
                                                   throws <a href="../../../../../org/apache/hadoop/hbase/HBaseIOException.html" title="class in org.apache.hadoop.hbase">HBaseIOException</a></pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/master/LoadBalancer.html#retainAssignment-java.util.Map-java.util.List-">LoadBalancer</a></code></span></div>
@@ -614,7 +614,7 @@ public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSG
 <ul class="blockList">
 <li class="blockList">
 <h4>randomAssignment</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupBasedLoadBalancer.html#line.264">randomAssignment</a>(<a href="../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&nbsp;region,
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupBasedLoadBalancer.html#line.262">randomAssignment</a>(<a href="../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&nbsp;region,
                                    <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&gt;&nbsp;servers)
                             throws <a href="../../../../../org/apache/hadoop/hbase/HBaseIOException.html" title="class in org.apache.hadoop.hbase">HBaseIOException</a></pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/master/LoadBalancer.html#randomAssignment-org.apache.hadoop.hbase.client.RegionInfo-java.util.List-">LoadBalancer</a></code></span></div>
@@ -637,7 +637,7 @@ public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSG
 <ul class="blockList">
 <li class="blockList">
 <h4>generateGroupMaps</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupBasedLoadBalancer.html#line.273">generateGroupMaps</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&gt;&nbsp;regions,
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupBasedLoadBalancer.html#line.271">generateGroupMaps</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&gt;&nbsp;regions,
                                <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&gt;&nbsp;servers,
                                org.apache.hbase.thirdparty.com.google.common.collect.ListMultimap&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&gt;&nbsp;regionMap,
                                org.apache.hbase.thirdparty.com.google.common.collect.ListMultimap&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&gt;&nbsp;serverMap)
@@ -654,7 +654,7 @@ public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSG
 <ul class="blockList">
 <li class="blockList">
 <h4>filterOfflineServers</h4>
-<pre>private&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupBasedLoadBalancer.html#line.299">filterOfflineServers</a>(<a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfo.html" title="class in org.apache.hadoop.hbase.rsgroup">RSGroupInfo</a>&nbsp;RSGroupInfo,
+<pre>private&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupBasedLoadBalancer.html#line.297">filterOfflineServers</a>(<a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfo.html" title="class in org.apache.hadoop.hbase.rsgroup">RSGroupInfo</a>&nbsp;RSGroupInfo,
                                               <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&gt;&nbsp;onlineServers)</pre>
 </li>
 </ul>
@@ -664,7 +664,7 @@ public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSG
 <ul class="blockList">
 <li class="blockList">
 <h4>filterServers</h4>
-<pre>private&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupBasedLoadBalancer.html#line.318">filterServers</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/net/Address.html" title="class in org.apache.hadoop.hbase.net">Address</a>&gt;&nbsp;servers,
+<pre>private&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupBasedLoadBalancer.html#line.316">filterServers</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/net/Address.html" title="class in org.apache.hadoop.hbase.net">Address</a>&gt;&nbsp;servers,
                                        <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&gt;&nbsp;onlineServers)</pre>
 <div class="block">Filter servers based on the online servers.</div>
 <dl>
@@ -682,7 +682,7 @@ public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSG
 <ul class="blockList">
 <li class="blockList">
 <h4>getMisplacedRegions</h4>
-<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupBasedLoadBalancer.html#line.336">getMisplacedRegions</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>,<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&gt;&nbsp;regions)
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupBasedLoadBalancer.html#line.334">getMisplacedRegions</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>,<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&gt;&nbsp;regions)
                                     throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -696,7 +696,7 @@ public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSG
 <ul class="blockList">
 <li class="blockList">
 <h4>correctAssignments</h4>
-<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/util/Pair.html" title="class in org.apache.hadoop.hbase.util">Pair</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>,<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&gt;&gt;,<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/master/RegionPlan.html" title="class in org.apache.hadoop.hbase.master">RegionPlan</a>&gt;&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupBasedLoadBalancer.html#line.368">correctAssignments</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>,<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&gt;&gt;&nbsp;existingAssignments)
+<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/util/Pair.html" title="class in org.apache.hadoop.hbase.util">Pair</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>,<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&gt;&gt;,<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/master/RegionPlan.html" title="class in org.apache.hadoop.hbase.master">RegionPlan</a>&gt;&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupBasedLoadBalancer.html#line.366">correctAssignments</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>,<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&gt;&gt;&nbsp;existingAssignments)
                                                                             throws <a href="../../../../../org/apache/hadoop/hbase/HBaseIOException.html" title="class in org.apache.hadoop.hbase">HBaseIOException</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -710,7 +710,7 @@ public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSG
 <ul class="blockList">
 <li class="blockList">
 <h4>initialize</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupBasedLoadBalancer.html#line.406">initialize</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupBasedLoadBalancer.html#line.404">initialize</a>()
                 throws <a href="../../../../../org/apache/hadoop/hbase/HBaseIOException.html" title="class in org.apache.hadoop.hbase">HBaseIOException</a></pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/master/LoadBalancer.html#initialize--">LoadBalancer</a></code></span></div>
 <div class="block">Initialize the load balancer. Must be called after setters.</div>
@@ -728,7 +728,7 @@ public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSG
 <ul class="blockList">
 <li class="blockList">
 <h4>isOnline</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupBasedLoadBalancer.html#line.440">isOnline</a>()</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupBasedLoadBalancer.html#line.438">isOnline</a>()</pre>
 </li>
 </ul>
 <a name="setClusterLoad-java.util.Map-">
@@ -737,7 +737,7 @@ public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSG
 <ul class="blockList">
 <li class="blockList">
 <h4>setClusterLoad</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupBasedLoadBalancer.html#line.449">setClusterLoad</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>,<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>,<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&gt;&gt;&gt;&nbsp;clusterLoad)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupBasedLoadBalancer.html#line.447">setClusterLoad</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>,<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>,<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&gt;&gt;&gt;&nbsp;clusterLoad)</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/master/LoadBalancer.html#setClusterLoad-java.util.Map-">LoadBalancer</a></code></span></div>
 <div class="block">Pass RegionStates and allow balancer to set the current cluster load.</div>
 <dl>
@@ -752,7 +752,7 @@ public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSG
 <ul class="blockList">
 <li class="blockList">
 <h4>regionOnline</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupBasedLoadBalancer.html#line.453">regionOnline</a>(<a href="../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&nbsp;regionInfo,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupBasedLoadBalancer.html#line.451">regionOnline</a>(<a href="../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&nbsp;regionInfo,
                          <a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;sn)</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/master/LoadBalancer.html#regionOnline-org.apache.hadoop.hbase.client.RegionInfo-org.apache.hadoop.hbase.ServerName-">LoadBalancer</a></code></span></div>
 <div class="block">Marks the region as online at balancer.</div>
@@ -768,7 +768,7 @@ public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSG
 <ul class="blockList">
 <li class="blockList">
 <h4>regionOffline</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupBasedLoadBalancer.html#line.457">regionOffline</a>(<a href="../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&nbsp;regionInfo)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupBasedLoadBalancer.html#line.455">regionOffline</a>(<a href="../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&nbsp;regionInfo)</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/master/LoadBalancer.html#regionOffline-org.apache.hadoop.hbase.client.RegionInfo-">LoadBalancer</a></code></span></div>
 <div class="block">Marks the region as offline at balancer.</div>
 <dl>
@@ -783,7 +783,7 @@ public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSG
 <ul class="blockList">
 <li class="blockList">
 <h4>onConfigurationChange</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupBasedLoadBalancer.html#line.461">onConfigurationChange</a>(org.apache.hadoop.conf.Configuration&nbsp;conf)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupBasedLoadBalancer.html#line.459">onConfigurationChange</a>(org.apache.hadoop.conf.Configuration&nbsp;conf)</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/conf/ConfigurationObserver.html#onConfigurationChange-org.apache.hadoop.conf.Configuration-">ConfigurationObserver</a></code></span></div>
 <div class="block">This method would be called by the <a href="../../../../../org/apache/hadoop/hbase/conf/ConfigurationManager.html" title="class in org.apache.hadoop.hbase.conf"><code>ConfigurationManager</code></a>
  object when the <code>Configuration</code> object is reloaded from disk.</div>
@@ -801,7 +801,7 @@ public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSG
 <ul class="blockList">
 <li class="blockList">
 <h4>stop</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupBasedLoadBalancer.html#line.466">stop</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;why)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupBasedLoadBalancer.html#line.464">stop</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;why)</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/Stoppable.html#stop-java.lang.String-">Stoppable</a></code></span></div>
 <div class="block">Stop this service.
  Implementers should favor logging errors over throwing RuntimeExceptions.</div>
@@ -819,7 +819,7 @@ public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSG
 <ul class="blockList">
 <li class="blockList">
 <h4>isStopped</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupBasedLoadBalancer.html#line.470">isStopped</a>()</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupBasedLoadBalancer.html#line.468">isStopped</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/Stoppable.html#isStopped--">isStopped</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/Stoppable.html" title="interface in org.apache.hadoop.hbase">Stoppable</a></code></dd>
@@ -834,7 +834,7 @@ public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSG
 <ul class="blockList">
 <li class="blockList">
 <h4>setRsGroupInfoManager</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupBasedLoadBalancer.html#line.475">setRsGroupInfoManager</a>(<a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfoManager.html" title="interface in org.apache.hadoop.hbase.rsgroup">RSGroupInfoManager</a>&nbsp;rsGroupInfoManager)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupBasedLoadBalancer.html#line.473">setRsGroupInfoManager</a>(<a href="../../../../../org/apache/hadoop/hbase/rsgroup/RSGroupInfoManager.html" title="interface in org.apache.hadoop.hbase.rsgroup">RSGroupInfoManager</a>&nbsp;rsGroupInfoManager)</pre>
 </li>
 </ul>
 <a name="postMasterStartupInitialize--">
@@ -843,7 +843,7 @@ public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSG
 <ul class="blockList">
 <li class="blockList">
 <h4>postMasterStartupInitialize</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupBasedLoadBalancer.html#line.480">postMasterStartupInitialize</a>()</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupBasedLoadBalancer.html#line.478">postMasterStartupInitialize</a>()</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/master/LoadBalancer.html#postMasterStartupInitialize--">LoadBalancer</a></code></span></div>
 <div class="block">If balancer needs to do initialization after Master has started up, lets do that here.</div>
 <dl>
@@ -858,7 +858,7 @@ public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSG
 <ul class="blockListLast">
 <li class="blockList">
 <h4>updateBalancerStatus</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupBasedLoadBalancer.html#line.484">updateBalancerStatus</a>(boolean&nbsp;status)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/rsgroup/RSGroupBasedLoadBalancer.html#line.482">updateBalancerStatus</a>(boolean&nbsp;status)</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/master/LoadBalancer.html#updateBalancerStatus-boolean-">updateBalancerStatus</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/master/LoadBalancer.html" title="interface in org.apache.hadoop.hbase.master">LoadBalancer</a></code></dd>
index bfdef6a..c70d828 100644 (file)
 <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" title="class or interface in java.io">Serializable</a>)
 <ul>
+<li type="circle">org.apache.hadoop.hbase.security.access.<a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessControlFilter.Strategy.html" title="enum in org.apache.hadoop.hbase.security.access"><span class="typeNameLink">AccessControlFilter.Strategy</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.security.access.<a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.OpType.html" title="enum in org.apache.hadoop.hbase.security.access"><span class="typeNameLink">AccessController.OpType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.security.access.<a href="../../../../../../org/apache/hadoop/hbase/security/access/Permission.Scope.html" title="enum in org.apache.hadoop.hbase.security.access"><span class="typeNameLink">Permission.Scope</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.security.access.<a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessControlFilter.Strategy.html" title="enum in org.apache.hadoop.hbase.security.access"><span class="typeNameLink">AccessControlFilter.Strategy</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.security.access.<a href="../../../../../../org/apache/hadoop/hbase/security/access/Permission.Action.html" title="enum in org.apache.hadoop.hbase.security.access"><span class="typeNameLink">Permission.Action</span></a></li>
 </ul>
 </li>
index be03a64..4359be9 100644 (file)
 <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" title="class or interface in java.io">Serializable</a>)
 <ul>
 <li type="circle">org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/IdReadWriteLock.ReferenceType.html" title="enum in org.apache.hadoop.hbase.util"><span class="typeNameLink">IdReadWriteLock.ReferenceType</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/PrettyPrinter.Unit.html" title="enum in org.apache.hadoop.hbase.util"><span class="typeNameLink">PrettyPrinter.Unit</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/ChecksumType.html" title="enum in org.apache.hadoop.hbase.util"><span class="typeNameLink">ChecksumType</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/PoolMap.PoolType.html" title="enum in org.apache.hadoop.hbase.util"><span class="typeNameLink">PoolMap.PoolType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/Bytes.LexicographicalComparerHolder.PureJavaComparer.html" title="enum in org.apache.hadoop.hbase.util"><span class="typeNameLink">Bytes.LexicographicalComparerHolder.PureJavaComparer</span></a> (implements org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/Bytes.Comparer.html" title="interface in org.apache.hadoop.hbase.util">Bytes.Comparer</a>&lt;T&gt;)</li>
+<li type="circle">org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/ChecksumType.html" title="enum in org.apache.hadoop.hbase.util"><span class="typeNameLink">ChecksumType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/Bytes.LexicographicalComparerHolder.UnsafeComparer.html" title="enum in org.apache.hadoop.hbase.util"><span class="typeNameLink">Bytes.LexicographicalComparerHolder.UnsafeComparer</span></a> (implements org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/Bytes.Comparer.html" title="interface in org.apache.hadoop.hbase.util">Bytes.Comparer</a>&lt;T&gt;)</li>
+<li type="circle">org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/PoolMap.PoolType.html" title="enum in org.apache.hadoop.hbase.util"><span class="typeNameLink">PoolMap.PoolType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/Order.html" title="enum in org.apache.hadoop.hbase.util"><span class="typeNameLink">Order</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.ErrorReporter.ERROR_CODE.html" title="enum in org.apache.hadoop.hbase.util"><span class="typeNameLink">HBaseFsck.ErrorReporter.ERROR_CODE</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/PrettyPrinter.Unit.html" title="enum in org.apache.hadoop.hbase.util"><span class="typeNameLink">PrettyPrinter.Unit</span></a></li>
 </ul>
 </li>
 </ul>
index cb3db44..951fb0c 100644 (file)
 <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" title="class or interface in java.io">Serializable</a>)
 <ul>
-<li type="circle">org.apache.hadoop.hbase.wal.<a href="../../../../../org/apache/hadoop/hbase/wal/RegionGroupingProvider.Strategies.html" title="enum in org.apache.hadoop.hbase.wal"><span class="typeNameLink">RegionGroupingProvider.Strategies</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.wal.<a href="../../../../../org/apache/hadoop/hbase/wal/WALFactory.Providers.html" title="enum in org.apache.hadoop.hbase.wal"><span class="typeNameLink">WALFactory.Providers</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.wal.<a href="../../../../../org/apache/hadoop/hbase/wal/RegionGroupingProvider.Strategies.html" title="enum in org.apache.hadoop.hbase.wal"><span class="typeNameLink">RegionGroupingProvider.Strategies</span></a></li>
 </ul>
 </li>
 </ul>
index c46f5a6..ab2a366 100644 (file)
@@ -18,9 +18,9 @@
 <span class="sourceLineNo">010</span>  public static final String version = "3.0.0-SNAPSHOT";<a name="line.10"></a>
 <span class="sourceLineNo">011</span>  public static final String revision = "";<a name="line.11"></a>
 <span class="sourceLineNo">012</span>  public static final String user = "jenkins";<a name="line.12"></a>
-<span class="sourceLineNo">013</span>  public static final String date = "Mon Jan 14 14:38:58 UTC 2019";<a name="line.13"></a>
+<span class="sourceLineNo">013</span>  public static final String date = "Tue Jan 15 14:39:12 UTC 2019";<a name="line.13"></a>
 <span class="sourceLineNo">014</span>  public static final String url = "git://jenkins-websites1.apache.org/home/jenkins/jenkins-slave/workspace/hbase_generate_website/hbase";<a name="line.14"></a>
-<span class="sourceLineNo">015</span>  public static final String srcChecksum = "6cc88325ceec613e143514ae8aff5140";<a name="line.15"></a>
+<span class="sourceLineNo">015</span>  public static final String srcChecksum = "ed506af884e2c5b1d19bcf69c5fb40d0";<a name="line.15"></a>
 <span class="sourceLineNo">016</span>}<a name="line.16"></a>
 
 
index ba45cd4..e8f24b1 100644 (file)
 <span class="sourceLineNo">121</span>    if (other instanceof ThrottleSettings) {<a name="line.121"></a>
 <span class="sourceLineNo">122</span>      ThrottleSettings otherThrottle = (ThrottleSettings) other;<a name="line.122"></a>
 <span class="sourceLineNo">123</span>      if (!otherThrottle.proto.hasType() || !otherThrottle.proto.hasTimedQuota()) {<a name="line.123"></a>
-<span class="sourceLineNo">124</span>        // To prevent the "empty" row in QuotaTableUtil.QUOTA_TABLE_NAME<a name="line.124"></a>
-<span class="sourceLineNo">125</span>        throttleBuilder = null;<a name="line.125"></a>
-<span class="sourceLineNo">126</span>      } else {<a name="line.126"></a>
-<span class="sourceLineNo">127</span>        QuotaProtos.ThrottleRequest otherProto = otherThrottle.proto;<a name="line.127"></a>
-<span class="sourceLineNo">128</span>        validateTimedQuota(otherProto.getTimedQuota());<a name="line.128"></a>
-<span class="sourceLineNo">129</span>        if (throttleBuilder == null) {<a name="line.129"></a>
-<span class="sourceLineNo">130</span>          throttleBuilder = QuotaProtos.Throttle.newBuilder();<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>        switch (otherProto.getType()) {<a name="line.133"></a>
-<span class="sourceLineNo">134</span>          case REQUEST_NUMBER:<a name="line.134"></a>
-<span class="sourceLineNo">135</span>            throttleBuilder.setReqNum(otherProto.getTimedQuota());<a name="line.135"></a>
-<span class="sourceLineNo">136</span>            break;<a name="line.136"></a>
-<span class="sourceLineNo">137</span>          case REQUEST_SIZE:<a name="line.137"></a>
-<span class="sourceLineNo">138</span>            throttleBuilder.setReqSize(otherProto.getTimedQuota());<a name="line.138"></a>
-<span class="sourceLineNo">139</span>            break;<a name="line.139"></a>
-<span class="sourceLineNo">140</span>          case WRITE_NUMBER:<a name="line.140"></a>
-<span class="sourceLineNo">141</span>            throttleBuilder.setWriteNum(otherProto.getTimedQuota());<a name="line.141"></a>
-<span class="sourceLineNo">142</span>            break;<a name="line.142"></a>
-<span class="sourceLineNo">143</span>          case WRITE_SIZE:<a name="line.143"></a>
-<span class="sourceLineNo">144</span>            throttleBuilder.setWriteSize(otherProto.getTimedQuota());<a name="line.144"></a>
-<span class="sourceLineNo">145</span>            break;<a name="line.145"></a>
-<span class="sourceLineNo">146</span>          case READ_NUMBER:<a name="line.146"></a>
-<span class="sourceLineNo">147</span>            throttleBuilder.setReadNum(otherProto.getTimedQuota());<a name="line.147"></a>
-<span class="sourceLineNo">148</span>            break;<a name="line.148"></a>
-<span class="sourceLineNo">149</span>          case READ_SIZE:<a name="line.149"></a>
-<span class="sourceLineNo">150</span>            throttleBuilder.setReadSize(otherProto.getTimedQuota());<a name="line.150"></a>
-<span class="sourceLineNo">151</span>            break;<a name="line.151"></a>
-<span class="sourceLineNo">152</span>          case REQUEST_CAPACITY_UNIT:<a name="line.152"></a>
-<span class="sourceLineNo">153</span>            throttleBuilder.setReqCapacityUnit(otherProto.getTimedQuota());<a name="line.153"></a>
-<span class="sourceLineNo">154</span>            break;<a name="line.154"></a>
-<span class="sourceLineNo">155</span>          case READ_CAPACITY_UNIT:<a name="line.155"></a>
-<span class="sourceLineNo">156</span>            throttleBuilder.setReadCapacityUnit(otherProto.getTimedQuota());<a name="line.156"></a>
-<span class="sourceLineNo">157</span>            break;<a name="line.157"></a>
-<span class="sourceLineNo">158</span>          case WRITE_CAPACITY_UNIT:<a name="line.158"></a>
-<span class="sourceLineNo">159</span>            throttleBuilder.setWriteCapacityUnit(otherProto.getTimedQuota());<a name="line.159"></a>
-<span class="sourceLineNo">160</span>            break;<a name="line.160"></a>
-<span class="sourceLineNo">161</span>          default:<a name="line.161"></a>
-<span class="sourceLineNo">162</span>        }<a name="line.162"></a>
-<span class="sourceLineNo">163</span>      }<a name="line.163"></a>
-<span class="sourceLineNo">164</span>    }<a name="line.164"></a>
-<span class="sourceLineNo">165</span><a name="line.165"></a>
-<span class="sourceLineNo">166</span>    // Propagate the space quota portion<a name="line.166"></a>
-<span class="sourceLineNo">167</span>    QuotaProtos.SpaceQuota.Builder spaceBuilder = (spaceProto == null<a name="line.167"></a>
-<span class="sourceLineNo">168</span>        ? null : spaceProto.toBuilder());<a name="line.168"></a>
-<span class="sourceLineNo">169</span>    if (other instanceof SpaceLimitSettings) {<a name="line.169"></a>
-<span class="sourceLineNo">170</span>      if (spaceBuilder == null) {<a name="line.170"></a>
-<span class="sourceLineNo">171</span>        spaceBuilder = QuotaProtos.SpaceQuota.newBuilder();<a name="line.171"></a>
-<span class="sourceLineNo">172</span>      }<a name="line.172"></a>
-<span class="sourceLineNo">173</span>      SpaceLimitSettings settingsToMerge = (SpaceLimitSettings) other;<a name="line.173"></a>
-<span class="sourceLineNo">174</span><a name="line.174"></a>
-<span class="sourceLineNo">175</span>      QuotaProtos.SpaceLimitRequest spaceRequest = settingsToMerge.getProto();<a name="line.175"></a>
-<span class="sourceLineNo">176</span><a name="line.176"></a>
-<span class="sourceLineNo">177</span>      // The message contained the expect SpaceQuota object<a name="line.177"></a>
-<span class="sourceLineNo">178</span>      if (spaceRequest.hasQuota()) {<a name="line.178"></a>
-<span class="sourceLineNo">179</span>        SpaceQuota quotaToMerge = spaceRequest.getQuota();<a name="line.179"></a>
-<span class="sourceLineNo">180</span>        // Validate that the two settings are for the same target.<a name="line.180"></a>
-<span class="sourceLineNo">181</span>        // SpaceQuotas either apply to a table or a namespace (no user spacequota).<a name="line.181"></a>
-<span class="sourceLineNo">182</span>        if (!Objects.equals(getTableName(), settingsToMerge.getTableName())<a name="line.182"></a>
-<span class="sourceLineNo">183</span>            &amp;&amp; !Objects.equals(getNamespace(), settingsToMerge.getNamespace())) {<a name="line.183"></a>
-<span class="sourceLineNo">184</span>          throw new IllegalArgumentException(<a name="line.184"></a>
-<span class="sourceLineNo">185</span>              "Cannot merge " + settingsToMerge + " into " + this);<a name="line.185"></a>
-<span class="sourceLineNo">186</span>        }<a name="line.186"></a>
-<span class="sourceLineNo">187</span><a name="line.187"></a>
-<span class="sourceLineNo">188</span>        if (quotaToMerge.getRemove()) {<a name="line.188"></a>
-<span class="sourceLineNo">189</span>          // Update the builder to propagate the removal<a name="line.189"></a>
-<span class="sourceLineNo">190</span>          spaceBuilder.setRemove(true).clearSoftLimit().clearViolationPolicy();<a name="line.190"></a>
-<span class="sourceLineNo">191</span>        } else {<a name="line.191"></a>
-<span class="sourceLineNo">192</span>          // Add the new settings to the existing settings<a name="line.192"></a>
-<span class="sourceLineNo">193</span>          spaceBuilder.mergeFrom(quotaToMerge);<a name="line.193"></a>
-<span class="sourceLineNo">194</span>        }<a name="line.194"></a>
-<span class="sourceLineNo">195</span>      }<a name="line.195"></a>
-<span class="sourceLineNo">196</span>    }<a name="line.196"></a>
-<span class="sourceLineNo">197</span><a name="line.197"></a>
-<span class="sourceLineNo">198</span>    Boolean bypassGlobals = this.bypassGlobals;<a name="line.198"></a>
-<span class="sourceLineNo">199</span>    if (other instanceof QuotaGlobalsSettingsBypass) {<a name="line.199"></a>
-<span class="sourceLineNo">200</span>      bypassGlobals = ((QuotaGlobalsSettingsBypass) other).getBypass();<a name="line.200"></a>
-<span class="sourceLineNo">201</span>    }<a name="line.201"></a>
+<span class="sourceLineNo">124</span>        // It means it's a remove request<a name="line.124"></a>
+<span class="sourceLineNo">125</span>        // To prevent the "empty" row in QuotaTableUtil.QUOTA_TABLE_NAME<a name="line.125"></a>
+<span class="sourceLineNo">126</span>        throttleBuilder = null;<a name="line.126"></a>
+<span class="sourceLineNo">127</span>      } else {<a name="line.127"></a>
+<span class="sourceLineNo">128</span>        QuotaProtos.ThrottleRequest otherProto = otherThrottle.proto;<a name="line.128"></a>
+<span class="sourceLineNo">129</span>        validateTimedQuota(otherProto.getTimedQuota());<a name="line.129"></a>
+<span class="sourceLineNo">130</span>        if (throttleBuilder == null) {<a name="line.130"></a>
+<span class="sourceLineNo">131</span>          throttleBuilder = QuotaProtos.Throttle.newBuilder();<a name="line.131"></a>
+<span class="sourceLineNo">132</span>        }<a name="line.132"></a>
+<span class="sourceLineNo">133</span><a name="line.133"></a>
+<span class="sourceLineNo">134</span>        switch (otherProto.getType()) {<a name="line.134"></a>
+<span class="sourceLineNo">135</span>          case REQUEST_NUMBER:<a name="line.135"></a>
+<span class="sourceLineNo">136</span>            throttleBuilder.setReqNum(otherProto.getTimedQuota());<a name="line.136"></a>
+<span class="sourceLineNo">137</span>            break;<a name="line.137"></a>
+<span class="sourceLineNo">138</span>          case REQUEST_SIZE:<a name="line.138"></a>
+<span class="sourceLineNo">139</span>            throttleBuilder.setReqSize(otherProto.getTimedQuota());<a name="line.139"></a>
+<span class="sourceLineNo">140</span>            break;<a name="line.140"></a>
+<span class="sourceLineNo">141</span>          case WRITE_NUMBER:<a name="line.141"></a>
+<span class="sourceLineNo">142</span>            throttleBuilder.setWriteNum(otherProto.getTimedQuota());<a name="line.142"></a>
+<span class="sourceLineNo">143</span>            break;<a name="line.143"></a>
+<span class="sourceLineNo">144</span>          case WRITE_SIZE:<a name="line.144"></a>
+<span class="sourceLineNo">145</span>            throttleBuilder.setWriteSize(otherProto.getTimedQuota());<a name="line.145"></a>
+<span class="sourceLineNo">146</span>            break;<a name="line.146"></a>
+<span class="sourceLineNo">147</span>          case READ_NUMBER:<a name="line.147"></a>
+<span class="sourceLineNo">148</span>            throttleBuilder.setReadNum(otherProto.getTimedQuota());<a name="line.148"></a>
+<span class="sourceLineNo">149</span>            break;<a name="line.149"></a>
+<span class="sourceLineNo">150</span>          case READ_SIZE:<a name="line.150"></a>
+<span class="sourceLineNo">151</span>            throttleBuilder.setReadSize(otherProto.getTimedQuota());<a name="line.151"></a>
+<span class="sourceLineNo">152</span>            break;<a name="line.152"></a>
+<span class="sourceLineNo">153</span>          case REQUEST_CAPACITY_UNIT:<a name="line.153"></a>
+<span class="sourceLineNo">154</span>            throttleBuilder.setReqCapacityUnit(otherProto.getTimedQuota());<a name="line.154"></a>
+<span class="sourceLineNo">155</span>            break;<a name="line.155"></a>
+<span class="sourceLineNo">156</span>          case READ_CAPACITY_UNIT:<a name="line.156"></a>
+<span class="sourceLineNo">157</span>            throttleBuilder.setReadCapacityUnit(otherProto.getTimedQuota());<a name="line.157"></a>
+<span class="sourceLineNo">158</span>            break;<a name="line.158"></a>
+<span class="sourceLineNo">159</span>          case WRITE_CAPACITY_UNIT:<a name="line.159"></a>
+<span class="sourceLineNo">160</span>            throttleBuilder.setWriteCapacityUnit(otherProto.getTimedQuota());<a name="line.160"></a>
+<span class="sourceLineNo">161</span>            break;<a name="line.161"></a>
+<span class="sourceLineNo">162</span>          default:<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>    }<a name="line.165"></a>
+<span class="sourceLineNo">166</span><a name="line.166"></a>
+<span class="sourceLineNo">167</span>    // Propagate the space quota portion<a name="line.167"></a>
+<span class="sourceLineNo">168</span>    QuotaProtos.SpaceQuota.Builder spaceBuilder = (spaceProto == null<a name="line.168"></a>
+<span class="sourceLineNo">169</span>        ? null : spaceProto.toBuilder());<a name="line.169"></a>
+<span class="sourceLineNo">170</span>    if (other instanceof SpaceLimitSettings) {<a name="line.170"></a>
+<span class="sourceLineNo">171</span>      if (spaceBuilder == null) {<a name="line.171"></a>
+<span class="sourceLineNo">172</span>        spaceBuilder = QuotaProtos.SpaceQuota.newBuilder();<a name="line.172"></a>
+<span class="sourceLineNo">173</span>      }<a name="line.173"></a>
+<span class="sourceLineNo">174</span>      SpaceLimitSettings settingsToMerge = (SpaceLimitSettings) other;<a name="line.174"></a>
+<span class="sourceLineNo">175</span><a name="line.175"></a>
+<span class="sourceLineNo">176</span>      QuotaProtos.SpaceLimitRequest spaceRequest = settingsToMerge.getProto();<a name="line.176"></a>
+<span class="sourceLineNo">177</span><a name="line.177"></a>
+<span class="sourceLineNo">178</span>      // The message contained the expect SpaceQuota object<a name="line.178"></a>
+<span class="sourceLineNo">179</span>      if (spaceRequest.hasQuota()) {<a name="line.179"></a>
+<span class="sourceLineNo">180</span>        SpaceQuota quotaToMerge = spaceRequest.getQuota();<a name="line.180"></a>
+<span class="sourceLineNo">181</span>        // Validate that the two settings are for the same target.<a name="line.181"></a>
+<span class="sourceLineNo">182</span>        // SpaceQuotas either apply to a table or a namespace (no user spacequota).<a name="line.182"></a>
+<span class="sourceLineNo">183</span>        if (!Objects.equals(getTableName(), settingsToMerge.getTableName())<a name="line.183"></a>
+<span class="sourceLineNo">184</span>            &amp;&amp; !Objects.equals(getNamespace(), settingsToMerge.getNamespace())) {<a name="line.184"></a>
+<span class="sourceLineNo">185</span>          throw new IllegalArgumentException(<a name="line.185"></a>
+<span class="sourceLineNo">186</span>              "Cannot merge " + settingsToMerge + " into " + this);<a name="line.186"></a>
+<span class="sourceLineNo">187</span>        }<a name="line.187"></a>
+<span class="sourceLineNo">188</span><a name="line.188"></a>
+<span class="sourceLineNo">189</span>        if (quotaToMerge.getRemove()) {<a name="line.189"></a>
+<span class="sourceLineNo">190</span>          // It means it's a remove request<a name="line.190"></a>
+<span class="sourceLineNo">191</span>          // Update the builder to propagate the removal<a name="line.191"></a>
+<span class="sourceLineNo">192</span>          spaceBuilder.setRemove(true).clearSoftLimit().clearViolationPolicy();<a name="line.192"></a>
+<span class="sourceLineNo">193</span>        } else {<a name="line.193"></a>
+<span class="sourceLineNo">194</span>          // Add the new settings to the existing settings<a name="line.194"></a>
+<span class="sourceLineNo">195</span>          spaceBuilder.mergeFrom(quotaToMerge);<a name="line.195"></a>
+<span class="sourceLineNo">196</span>        }<a name="line.196"></a>
+<span class="sourceLineNo">197</span>      }<a name="line.197"></a>
+<span class="sourceLineNo">198</span>    }<a name="line.198"></a>
+<span class="sourceLineNo">199</span><a name="line.199"></a>
+<span class="sourceLineNo">200</span>    boolean removeSpaceBuilder =<a name="line.200"></a>
+<span class="sourceLineNo">201</span>        (spaceBuilder == null) || (spaceBuilder.hasRemove() &amp;&amp; spaceBuilder.getRemove());<a name="line.201"></a>
 <span class="sourceLineNo">202</span><a name="line.202"></a>
-<span class="sourceLineNo">203</span>    if (throttleBuilder == null &amp;&amp;<a name="line.203"></a>
-<span class="sourceLineNo">204</span>        (spaceBuilder == null || (spaceBuilder.hasRemove() &amp;&amp; spaceBuilder.getRemove()))<a name="line.204"></a>
-<span class="sourceLineNo">205</span>        &amp;&amp; bypassGlobals == null) {<a name="line.205"></a>
-<span class="sourceLineNo">206</span>      return null;<a name="line.206"></a>
-<span class="sourceLineNo">207</span>    }<a name="line.207"></a>
-<span class="sourceLineNo">208</span><a name="line.208"></a>
-<span class="sourceLineNo">209</span>    return new GlobalQuotaSettingsImpl(<a name="line.209"></a>
-<span class="sourceLineNo">210</span>        getUserName(), getTableName(), getNamespace(),<a name="line.210"></a>
-<span class="sourceLineNo">211</span>        (throttleBuilder == null ? null : throttleBuilder.build()), bypassGlobals,<a name="line.211"></a>
-<span class="sourceLineNo">212</span>        (spaceBuilder == null ? null : spaceBuilder.build()));<a name="line.212"></a>
-<span class="sourceLineNo">213</span>  }<a name="line.213"></a>
-<span class="sourceLineNo">214</span><a name="line.214"></a>
-<span class="sourceLineNo">215</span>  private void validateTimedQuota(final TimedQuota timedQuota) throws IOException {<a name="line.215"></a>
-<span class="sourceLineNo">216</span>    if (timedQuota.getSoftLimit() &lt; 1) {<a name="line.216"></a>
-<span class="sourceLineNo">217</span>      throw new DoNotRetryIOException(new UnsupportedOperationException(<a name="line.217"></a>
-<span class="sourceLineNo">218</span>          "The throttle limit must be greater then 0, got " + timedQuota.getSoftLimit()));<a name="line.218"></a>
-<span class="sourceLineNo">219</span>    }<a name="line.219"></a>
-<span class="sourceLineNo">220</span>  }<a name="line.220"></a>
-<span class="sourceLineNo">221</span><a name="line.221"></a>
-<span class="sourceLineNo">222</span>  @Override<a name="line.222"></a>
-<span class="sourceLineNo">223</span>  public String toString() {<a name="line.223"></a>
-<span class="sourceLineNo">224</span>    StringBuilder builder = new StringBuilder();<a name="line.224"></a>
-<span class="sourceLineNo">225</span>    builder.append("GlobalQuota: ");<a name="line.225"></a>
-<span class="sourceLineNo">226</span>    if (throttleProto != null) {<a name="line.226"></a>
-<span class="sourceLineNo">227</span>      Map&lt;ThrottleType,TimedQuota&gt; throttleQuotas = buildThrottleQuotas(throttleProto);<a name="line.227"></a>
-<span class="sourceLineNo">228</span>      builder.append(" { TYPE =&gt; THROTTLE ");<a name="line.228"></a>
-<span class="sourceLineNo">229</span>      for (Entry&lt;ThrottleType,TimedQuota&gt; entry : throttleQuotas.entrySet()) {<a name="line.229"></a>
-<span class="sourceLineNo">230</span>        final ThrottleType type = entry.getKey();<a name="line.230"></a>
-<span class="sourceLineNo">231</span>        final TimedQuota timedQuota = entry.getValue();<a name="line.231"></a>
-<span class="sourceLineNo">232</span>        builder.append("{THROTTLE_TYPE =&gt; ").append(type.name()).append(", LIMIT =&gt; ");<a name="line.232"></a>
-<span class="sourceLineNo">233</span>        if (timedQuota.hasSoftLimit()) {<a name="line.233"></a>
-<span class="sourceLineNo">234</span>          switch (type) {<a name="line.234"></a>
-<span class="sourceLineNo">235</span>            case REQUEST_NUMBER:<a name="line.235"></a>
-<span class="sourceLineNo">236</span>            case WRITE_NUMBER:<a name="line.236"></a>
-<span class="sourceLineNo">237</span>            case READ_NUMBER:<a name="line.237"></a>
-<span class="sourceLineNo">238</span>              builder.append(String.format("%dreq", timedQuota.getSoftLimit()));<a name="line.238"></a>
-<span class="sourceLineNo">239</span>              break;<a name="line.239"></a>
-<span class="sourceLineNo">240</span>            case REQUEST_SIZE:<a name="line.240"></a>
-<span class="sourceLineNo">241</span>            case WRITE_SIZE:<a name="line.241"></a>
-<span class="sourceLineNo">242</span>            case READ_SIZE:<a name="line.242"></a>
-<span class="sourceLineNo">243</span>              builder.append(sizeToString(timedQuota.getSoftLimit()));<a name="line.243"></a>
-<span class="sourceLineNo">244</span>              break;<a name="line.244"></a>
-<span class="sourceLineNo">245</span>            case REQUEST_CAPACITY_UNIT:<a name="line.245"></a>
-<span class="sourceLineNo">246</span>            case READ_CAPACITY_UNIT:<a name="line.246"></a>
-<span class="sourceLineNo">247</span>            case WRITE_CAPACITY_UNIT:<a name="line.247"></a>
-<span class="sourceLineNo">248</span>              builder.append(String.format("%dCU", timedQuota.getSoftLimit()));<a name="line.248"></a>
-<span class="sourceLineNo">249</span>            default:<a name="line.249"></a>
-<span class="sourceLineNo">250</span>          }<a name="line.250"></a>
-<span class="sourceLineNo">251</span>        } else if (timedQuota.hasShare()) {<a name="line.251"></a>
-<span class="sourceLineNo">252</span>          builder.append(String.format("%.2f%%", timedQuota.getShare()));<a name="line.252"></a>
-<span class="sourceLineNo">253</span>        }<a name="line.253"></a>
-<span class="sourceLineNo">254</span>        builder.append('/');<a name="line.254"></a>
-<span class="sourceLineNo">255</span>        builder.append(timeToString(ProtobufUtil.toTimeUnit(timedQuota.getTimeUnit())));<a name="line.255"></a>
-<span class="sourceLineNo">256</span>        if (timedQuota.hasScope()) {<a name="line.256"></a>
-<span class="sourceLineNo">257</span>          builder.append(", SCOPE =&gt; ");<a name="line.257"></a>
-<span class="sourceLineNo">258</span>          builder.append(timedQuota.getScope().toString());<a name="line.258"></a>
-<span class="sourceLineNo">259</span>        }<a name="line.259"></a>
-<span class="sourceLineNo">260</span>      }<a name="line.260"></a>
-<span class="sourceLineNo">261</span>      builder.append( "} } ");<a name="line.261"></a>
-<span class="sourceLineNo">262</span>    } else {<a name="line.262"></a>
-<span class="sourceLineNo">263</span>      builder.append(" {} ");<a name="line.263"></a>
-<span class="sourceLineNo">264</span>    }<a name="line.264"></a>
-<span class="sourceLineNo">265</span>    if (bypassGlobals != null) {<a name="line.265"></a>
-<span class="sourceLineNo">266</span>      builder.append(" { GLOBAL_BYPASS =&gt; " + bypassGlobals + " } ");<a name="line.266"></a>
+<span class="sourceLineNo">203</span>    Boolean bypassGlobals = this.bypassGlobals;<a name="line.203"></a>
+<span class="sourceLineNo">204</span>    if (other instanceof QuotaGlobalsSettingsBypass) {<a name="line.204"></a>
+<span class="sourceLineNo">205</span>      bypassGlobals = ((QuotaGlobalsSettingsBypass) other).getBypass();<a name="line.205"></a>
+<span class="sourceLineNo">206</span>    }<a name="line.206"></a>
+<span class="sourceLineNo">207</span><a name="line.207"></a>
+<span class="sourceLineNo">208</span>    if (throttleBuilder == null &amp;&amp; removeSpaceBuilder &amp;&amp; bypassGlobals == null) {<a name="line.208"></a>
+<span class="sourceLineNo">209</span>      return null;<a name="line.209"></a>
+<span class="sourceLineNo">210</span>    }<a name="line.210"></a>
+<span class="sourceLineNo">211</span><a name="line.211"></a>
+<span class="sourceLineNo">212</span>    return new GlobalQuotaSettingsImpl(<a name="line.212"></a>
+<span class="sourceLineNo">213</span>        getUserName(), getTableName(), getNamespace(),<a name="line.213"></a>
+<span class="sourceLineNo">214</span>        (throttleBuilder == null ? null : throttleBuilder.build()), bypassGlobals,<a name="line.214"></a>
+<span class="sourceLineNo">215</span>        (removeSpaceBuilder ? null : spaceBuilder.build()));<a name="line.215"></a>
+<span class="sourceLineNo">216</span>  }<a name="line.216"></a>
+<span class="sourceLineNo">217</span><a name="line.217"></a>
+<span class="sourceLineNo">218</span>  private void validateTimedQuota(final TimedQuota timedQuota) throws IOException {<a name="line.218"></a>
+<span class="sourceLineNo">219</span>    if (timedQuota.getSoftLimit() &lt; 1) {<a name="line.219"></a>
+<span class="sourceLineNo">220</span>      throw new DoNotRetryIOException(new UnsupportedOperationException(<a name="line.220"></a>
+<span class="sourceLineNo">221</span>          "The throttle limit must be greater then 0, got " + timedQuota.getSoftLimit()));<a name="line.221"></a>
+<span class="sourceLineNo">222</span>    }<a name="line.222"></a>
+<span class="sourceLineNo">223</span>  }<a name="line.223"></a>
+<span class="sourceLineNo">224</span><a name="line.224"></a>
+<span class="sourceLineNo">225</span>  @Override<a name="line.225"></a>
+<span class="sourceLineNo">226</span>  public String toString() {<a name="line.226"></a>
+<span class="sourceLineNo">227</span>    StringBuilder builder = new StringBuilder();<a name="line.227"></a>
+<span class="sourceLineNo">228</span>    builder.append("GlobalQuota: ");<a name="line.228"></a>
+<span class="sourceLineNo">229</span>    if (throttleProto != null) {<a name="line.229"></a>
+<span class="sourceLineNo">230</span>      Map&lt;ThrottleType,TimedQuota&gt; throttleQuotas = buildThrottleQuotas(throttleProto);<a name="line.230"></a>
+<span class="sourceLineNo">231</span>      builder.append(" { TYPE =&gt; THROTTLE ");<a name="line.231"></a>
+<span class="sourceLineNo">232</span>      for (Entry&lt;ThrottleType,TimedQuota&gt; entry : throttleQuotas.entrySet()) {<a name="line.232"></a>
+<span class="sourceLineNo">233</span>        final ThrottleType type = entry.getKey();<a name="line.233"></a>
+<span class="sourceLineNo">234</span>        final TimedQuota timedQuota = entry.getValue();<a name="line.234"></a>
+<span class="sourceLineNo">235</span>        builder.append("{THROTTLE_TYPE =&gt; ").append(type.name()).append(", LIMIT =&gt; ");<a name="line.235"></a>
+<span class="sourceLineNo">236</span>        if (timedQuota.hasSoftLimit()) {<a name="line.236"></a>
+<span class="sourceLineNo">237</span>          switch (type) {<a name="line.237"></a>
+<span class="sourceLineNo">238</span>            case REQUEST_NUMBER:<a name="line.238"></a>
+<span class="sourceLineNo">239</span>            case WRITE_NUMBER:<a name="line.239"></a>
+<span class="sourceLineNo">240</span>            case READ_NUMBER:<a name="line.240"></a>
+<span class="sourceLineNo">241</span>              builder.append(String.format("%dreq", timedQuota.getSoftLimit()));<a name="line.241"></a>
+<span class="sourceLineNo">242</span>              break;<a name="line.242"></a>
+<span class="sourceLineNo">243</span>            case REQUEST_SIZE:<a name="line.243"></a>
+<span class="sourceLineNo">244</span>            case WRITE_SIZE:<a name="line.244"></a>
+<span class="sourceLineNo">245</span>            case READ_SIZE:<a name="line.245"></a>
+<span class="sourceLineNo">246</span>              builder.append(sizeToString(timedQuota.getSoftLimit()));<a name="line.246"></a>
+<span class="sourceLineNo">247</span>              break;<a name="line.247"></a>
+<span class="sourceLineNo">248</span>            case REQUEST_CAPACITY_UNIT:<a name="line.248"></a>
+<span class="sourceLineNo">249</span>            case READ_CAPACITY_UNIT:<a name="line.249"></a>
+<span class="sourceLineNo">250</span>            case WRITE_CAPACITY_UNIT:<a name="line.250"></a>
+<span class="sourceLineNo">251</span>              builder.append(String.format("%dCU", timedQuota.getSoftLimit()));<a name="line.251"></a>
+<span class="sourceLineNo">252</span>            default:<a name="line.252"></a>
+<span class="sourceLineNo">253</span>          }<a name="line.253"></a>
+<span class="sourceLineNo">254</span>        } else if (timedQuota.hasShare()) {<a name="line.254"></a>
+<span class="sourceLineNo">255</span>          builder.append(String.format("%.2f%%", timedQuota.getShare()));<a name="line.255"></a>
+<span class="sourceLineNo">256</span>        }<a name="line.256"></a>
+<span class="sourceLineNo">257</span>        builder.append('/');<a name="line.257"></a>
+<span class="sourceLineNo">258</span>        builder.append(timeToString(ProtobufUtil.toTimeUnit(timedQuota.getTimeUnit())));<a name="line.258"></a>
+<span class="sourceLineNo">259</span>        if (timedQuota.hasScope()) {<a name="line.259"></a>
+<span class="sourceLineNo">260</span>          builder.append(", SCOPE =&gt; ");<a name="line.260"></a>
+<span class="sourceLineNo">261</span>          builder.append(timedQuota.getScope().toString());<a name="line.261"></a>
+<span class="sourceLineNo">262</span>        }<a name="line.262"></a>
+<span class="sourceLineNo">263</span>      }<a name="line.263"></a>
+<span class="sourceLineNo">264</span>      builder.append( "} } ");<a name="line.264"></a>
+<span class="sourceLineNo">265</span>    } else {<a name="line.265"></a>
+<span class="sourceLineNo">266</span>      builder.append(" {} ");<a name="line.266"></a>
 <span class="sourceLineNo">267</span>    }<a name="line.267"></a>
-<span class="sourceLineNo">268</span>    if (spaceProto != null) {<a name="line.268"></a>
-<span class="sourceLineNo">269</span>      builder.append(" { TYPE =&gt; SPACE");<a name="line.269"></a>
-<span class="sourceLineNo">270</span>      if (getTableName() != null) {<a name="line.270"></a>
-<span class="sourceLineNo">271</span>        builder.append(", TABLE =&gt; ").append(getTableName());<a name="line.271"></a>
-<span class="sourceLineNo">272</span>      }<a name="line.272"></a>
-<span class="sourceLineNo">273</span>      if (getNamespace() != null) {<a name="line.273"></a>
-<span class="sourceLineNo">274</span>        builder.append(", NAMESPACE =&gt; ").append(getNamespace());<a name="line.274"></a>
+<span class="sourceLineNo">268</span>    if (bypassGlobals != null) {<a name="line.268"></a>
+<span class="sourceLineNo">269</span>      builder.append(" { GLOBAL_BYPASS =&gt; " + bypassGlobals + " } ");<a name="line.269"></a>
+<span class="sourceLineNo">270</span>    }<a name="line.270"></a>
+<span class="sourceLineNo">271</span>    if (spaceProto != null) {<a name="line.271"></a>
+<span class="sourceLineNo">272</span>      builder.append(" { TYPE =&gt; SPACE");<a name="line.272"></a>
+<span class="sourceLineNo">273</span>      if (getTableName() != null) {<a name="line.273"></a>
+<span class="sourceLineNo">274</span>        builder.append(", TABLE =&gt; ").append(getTableName());<a name="line.274"></a>
 <span class="sourceLineNo">275</span>      }<a name="line.275"></a>
-<span class="sourceLineNo">276</span>      if (spaceProto.getRemove()) {<a name="line.276"></a>
-<span class="sourceLineNo">277</span>        builder.append(", REMOVE =&gt; ").append(spaceProto.getRemove());<a name="line.277"></a>
-<span class="sourceLineNo">278</span>      } else {<a name="line.278"></a>
-<span class="sourceLineNo">279</span>        builder.append(", LIMIT =&gt; ").append(sizeToString(spaceProto.getSoftLimit()));<a name="line.279"></a>
-<span class="sourceLineNo">280</span>        builder.append(", VIOLATION_POLICY =&gt; ").append(spaceProto.getViolationPolicy());<a name="line.280"></a>
-<span class="sourceLineNo">281</span>      }<a name="line.281"></a>
-<span class="sourceLineNo">282</span>      builder.append(" } ");<a name="line.282"></a>
-<span class="sourceLineNo">283</span>    }<a name="line.283"></a>
-<span class="sourceLineNo">284</span>    return builder.toString();<a name="line.284"></a>
-<span class="sourceLineNo">285</span>  }<a name="line.285"></a>
-<span class="sourceLineNo">286</span><a name="line.286"></a>
-<span class="sourceLineNo">287</span>  private Map&lt;ThrottleType,TimedQuota&gt; buildThrottleQuotas(Throttle proto) {<a name="line.287"></a>
-<span class="sourceLineNo">288</span>    HashMap&lt;ThrottleType,TimedQuota&gt; quotas = new HashMap&lt;&gt;();<a name="line.288"></a>
-<span class="sourceLineNo">289</span>    if (proto.hasReadNum()) {<a name="line.289"></a>
-<span class="sourceLineNo">290</span>      quotas.put(ThrottleType.READ_NUMBER, proto.getReadNum());<a name="line.290"></a>
-<span class="sourceLineNo">291</span>    }<a name="line.291"></a>
-<span class="sourceLineNo">292</span>    if (proto.hasReadSize()) {<a name="line.292"></a>
-<span class="sourceLineNo">293</span>      quotas.put(ThrottleType.READ_SIZE, proto.getReadSize());<a name="line.293"></a>
+<span class="sourceLineNo">276</span>      if (getNamespace() != null) {<a name="line.276"></a>
+<span class="sourceLineNo">277</span>        builder.append(", NAMESPACE =&gt; ").append(getNamespace());<a name="line.277"></a>
+<span class="sourceLineNo">278</span>      }<a name="line.278"></a>
+<span class="sourceLineNo">279</span>      if (spaceProto.getRemove()) {<a name="line.279"></a>
+<span class="sourceLineNo">280</span>        builder.append(", REMOVE =&gt; ").append(spaceProto.getRemove());<a name="line.280"></a>
+<span class="sourceLineNo">281</span>      } else {<a name="line.281"></a>
+<span class="sourceLineNo">282</span>        builder.append(", LIMIT =&gt; ").append(sizeToString(spaceProto.getSoftLimit()));<a name="line.282"></a>
+<span class="sourceLineNo">283</span>        builder.append(", VIOLATION_POLICY =&gt; ").append(spaceProto.getViolationPolicy());<a name="line.283"></a>
+<span class="sourceLineNo">284</span>      }<a name="line.284"></a>
+<span class="sourceLineNo">285</span>      builder.append(" } ");<a name="line.285"></a>
+<span class="sourceLineNo">286</span>    }<a name="line.286"></a>
+<span class="sourceLineNo">287</span>    return builder.toString();<a name="line.287"></a>
+<span class="sourceLineNo">288</span>  }<a name="line.288"></a>
+<span class="sourceLineNo">289</span><a name="line.289"></a>
+<span class="sourceLineNo">290</span>  private Map&lt;ThrottleType,TimedQuota&gt; buildThrottleQuotas(Throttle proto) {<a name="line.290"></a>
+<span class="sourceLineNo">291</span>    HashMap&lt;ThrottleType,TimedQuota&gt; quotas = new HashMap&lt;&gt;();<a name="line.291"></a>
+<span class="sourceLineNo">292</span>    if (proto.hasReadNum()) {<a name="line.292"></a>
+<span class="sourceLineNo">293</span>      quotas.put(ThrottleType.READ_NUMBER, proto.getReadNum());<a name="line.293"></a>
 <span class="sourceLineNo">294</span>    }<a name="line.294"></a>
-<span class="sourceLineNo">295</span>    if (proto.hasReqNum()) {<a name="line.295"></a>
-<span class="sourceLineNo">296</span>      quotas.put(ThrottleType.REQUEST_NUMBER, proto.getReqNum());<a name="line.296"></a>
+<span class="sourceLineNo">295</span>    if (proto.hasReadSize()) {<a name="line.295"></a>
+<span class="sourceLineNo">296</span>      quotas.put(ThrottleType.READ_SIZE, proto.getReadSize());<a name="line.296"></a>
 <span class="sourceLineNo">297</span>    }<a name="line.297"></a>
-<span class="sourceLineNo">298</span>    if (proto.hasReqSize()) {<a name="line.298"></a>
-<span class="sourceLineNo">299</span>      quotas.put(ThrottleType.REQUEST_SIZE, proto.getReqSize());<a name="line.299"></a>
+<span class="sourceLineNo">298</span>    if (proto.hasReqNum()) {<a name="line.298"></a>
+<span class="sourceLineNo">299</span>      quotas.put(ThrottleType.REQUEST_NUMBER, proto.getReqNum());<a name="line.299"></a>
 <span class="sourceLineNo">300</span>    }<a name="line.300"></a>
-<span class="sourceLineNo">301</span>    if (proto.hasWriteNum()) {<a name="line.301"></a>
-<span class="sourceLineNo">302</span>      quotas.put(ThrottleType.WRITE_NUMBER, proto.getWriteNum());<a name="line.302"></a>
+<span class="sourceLineNo">301</span>    if (proto.hasReqSize()) {<a name="line.301"></a>
+<span class="sourceLineNo">302</span>      quotas.put(ThrottleType.REQUEST_SIZE, proto.getReqSize());<a name="line.302"></a>
 <span class="sourceLineNo">303</span>    }<a name="line.303"></a>
-<span class="sourceLineNo">304</span>    if (proto.hasWriteSize()) {<a name="line.304"></a>
-<span class="sourceLineNo">305</span>      quotas.put(ThrottleType.WRITE_SIZE, proto.getWriteSize());<a name="line.305"></a>
+<span class="sourceLineNo">304</span>    if (proto.hasWriteNum()) {<a name="line.304"></a>
+<span class="sourceLineNo">305</span>      quotas.put(ThrottleType.WRITE_NUMBER, proto.getWriteNum());<a name="line.305"></a>
 <span class="sourceLineNo">306</span>    }<a name="line.306"></a>
-<span class="sourceLineNo">307</span>    if (proto.hasReqCapacityUnit()) {<a name="line.307"></a>
-<span class="sourceLineNo">308</span>      quotas.put(ThrottleType.REQUEST_CAPACITY_UNIT, proto.getReqCapacityUnit());<a name="line.308"></a>
+<span class="sourceLineNo">307</span>    if (proto.hasWriteSize()) {<a name="line.307"></a>
+<span class="sourceLineNo">308</span>      quotas.put(ThrottleType.WRITE_SIZE, proto.getWriteSize());<a name="line.308"></a>
 <span class="sourceLineNo">309</span>    }<a name="line.309"></a>
-<span class="sourceLineNo">310</span>    if (proto.hasReadCapacityUnit()) {<a name="line.310"></a>
-<span class="sourceLineNo">311</span>      quotas.put(ThrottleType.READ_CAPACITY_UNIT, proto.getReqCapacityUnit());<a name="line.311"></a>
+<span class="sourceLineNo">310</span>    if (proto.hasReqCapacityUnit()) {<a name="line.310"></a>
+<span class="sourceLineNo">311</span>      quotas.put(ThrottleType.REQUEST_CAPACITY_UNIT, proto.getReqCapacityUnit());<a name="line.311"></a>
 <span class="sourceLineNo">312</span>    }<a name="line.312"></a>
-<span class="sourceLineNo">313</span>    if (proto.hasWriteCapacityUnit()) {<a name="line.313"></a>
-<span class="sourceLineNo">314</span>      quotas.put(ThrottleType.WRITE_CAPACITY_UNIT, proto.getWriteCapacityUnit());<a name="line.314"></a>
+<span class="sourceLineNo">313</span>    if (proto.hasReadCapacityUnit()) {<a name="line.313"></a>
+<span class="sourceLineNo">314</span>      quotas.put(ThrottleType.READ_CAPACITY_UNIT, proto.getReqCapacityUnit());<a name="line.314"></a>
 <span class="sourceLineNo">315</span>    }<a name="line.315"></a>
-<span class="sourceLineNo">316</span>    return quotas;<a name="line.316"></a>
-<span class="sourceLineNo">317</span>  }<a name="line.317"></a>
-<span class="sourceLineNo">318</span><a name="line.318"></a>
-<span class="sourceLineNo">319</span>  private void clearThrottleBuilder(QuotaProtos.Throttle.Builder builder) {<a name="line.319"></a>
-<span class="sourceLineNo">320</span>    builder.clearReadNum();<a name="line.320"></a>
-<span class="sourceLineNo">321</span>    builder.clearReadSize();<a name="line.321"></a>
-<span class="sourceLineNo">322</span>    builder.clearReqNum();<a name="line.322"></a>
-<span class="sourceLineNo">323</span>    builder.clearReqSize();<a name="line.323"></a>
-<span class="sourceLineNo">324</span>    builder.clearWriteNum();<a name="line.324"></a>
-<span class="sourceLineNo">325</span>    builder.clearWriteSize();<a name="line.325"></a>
-<span class="sourceLineNo">326</span>    builder.clearReadCapacityUnit();<a name="line.326"></a>
-<span class="sourceLineNo">327</span>    builder.clearReadCapacityUnit();<a name="line.327"></a>
-<span class="sourceLineNo">328</span>    builder.clearWriteCapacityUnit();<a name="line.328"></a>
-<span class="sourceLineNo">329</span>  }<a name="line.329"></a>
-<span class="sourceLineNo">330</span>}<a name="line.330"></a>
+<span class="sourceLineNo">316</span>    if (proto.hasWriteCapacityUnit()) {<a name="line.316"></a>
+<span class="sourceLineNo">317</span>      quotas.put(ThrottleType.WRITE_CAPACITY_UNIT, proto.getWriteCapacityUnit());<a name="line.317"></a>
+<span class="sourceLineNo">318</span>    }<a name="line.318"></a>
+<span class="sourceLineNo">319</span>    return quotas;<a name="line.319"></a>
+<span class="sourceLineNo">320</span>  }<a name="line.320"></a>
+<span class="sourceLineNo">321</span>}<a name="line.321"></a>
 
 
 
index 59245bd..340256d 100644 (file)
 <span class="sourceLineNo">038</span><a name="line.38"></a>
 <span class="sourceLineNo">039</span>  SpaceLimitSettings(TableName tableName, long sizeLimit, SpaceViolationPolicy violationPolicy) {<a name="line.39"></a>
 <span class="sourceLineNo">040</span>    super(null, Objects.requireNonNull(tableName), null);<a name="line.40"></a>
-<span class="sourceLineNo">041</span>    if (sizeLimit &lt; 0L) {<a name="line.41"></a>
-<span class="sourceLineNo">042</span>      throw new IllegalArgumentException("Size limit must be a non-negative value.");<a name="line.42"></a>
-<span class="sourceLineNo">043</span>    }<a name="line.43"></a>
-<span class="sourceLineNo">044</span>    proto = buildProtoAddQuota(sizeLimit, Objects.requireNonNull(violationPolicy));<a name="line.44"></a>
-<span class="sourceLineNo">045</span>  }<a name="line.45"></a>
-<span class="sourceLineNo">046</span><a name="line.46"></a>
-<span class="sourceLineNo">047</span>  /**<a name="line.47"></a>
-<span class="sourceLineNo">048</span>   * Constructs a {@code SpaceLimitSettings} to remove a space quota on the given {@code tableName}.<a name="line.48"></a>
-<span class="sourceLineNo">049</span>   */<a name="line.49"></a>
-<span class="sourceLineNo">050</span>  SpaceLimitSettings(TableName tableName) {<a name="line.50"></a>
-<span class="sourceLineNo">051</span>    super(null, Objects.requireNonNull(tableName), null);<a name="line.51"></a>
-<span class="sourceLineNo">052</span>    proto = buildProtoRemoveQuota();<a name="line.52"></a>
-<span class="sourceLineNo">053</span>  }<a name="line.53"></a>
-<span class="sourceLineNo">054</span><a name="line.54"></a>
-<span class="sourceLineNo">055</span>  SpaceLimitSettings(String namespace, long sizeLimit, SpaceViolationPolicy violationPolicy) {<a name="line.55"></a>
-<span class="sourceLineNo">056</span>    super(null, null, Objects.requireNonNull(namespace));<a name="line.56"></a>
-<span class="sourceLineNo">057</span>    if (sizeLimit &lt; 0L) {<a name="line.57"></a>
-<span class="sourceLineNo">058</span>      throw new IllegalArgumentException("Size limit must be a non-negative value.");<a name="line.58"></a>
-<span class="sourceLineNo">059</span>    }<a name="line.59"></a>
-<span class="sourceLineNo">060</span>    proto = buildProtoAddQuota(sizeLimit, Objects.requireNonNull(violationPolicy));<a name="line.60"></a>
-<span class="sourceLineNo">061</span>  }<a name="line.61"></a>
-<span class="sourceLineNo">062</span><a name="line.62"></a>
-<span class="sourceLineNo">063</span>  /**<a name="line.63"></a>
-<span class="sourceLineNo">064</span>   * Constructs a {@code SpaceLimitSettings} to remove a space quota on the given {@code namespace}.<a name="line.64"></a>
-<span class="sourceLineNo">065</span>   */<a name="line.65"></a>
-<span class="sourceLineNo">066</span>  SpaceLimitSettings(String namespace) {<a name="line.66"></a>
-<span class="sourceLineNo">067</span>    super(null, null, Objects.requireNonNull(namespace));<a name="line.67"></a>
-<span class="sourceLineNo">068</span>    proto = buildProtoRemoveQuota();<a name="line.68"></a>
-<span class="sourceLineNo">069</span>  }<a name="line.69"></a>
-<span class="sourceLineNo">070</span><a name="line.70"></a>
-<span class="sourceLineNo">071</span>  SpaceLimitSettings(TableName tableName, String namespace, SpaceLimitRequest req) {<a name="line.71"></a>
-<span class="sourceLineNo">072</span>    super(null, tableName, namespace);<a name="line.72"></a>
-<span class="sourceLineNo">073</span>    proto = req;<a name="line.73"></a>
-<span class="sourceLineNo">074</span>  }<a name="line.74"></a>
-<span class="sourceLineNo">075</span><a name="line.75"></a>
-<span class="sourceLineNo">076</span>  /**<a name="line.76"></a>
-<span class="sourceLineNo">077</span>   * Build a {@link SpaceLimitRequest} protobuf object from the given {@link SpaceQuota}.<a name="line.77"></a>
-<span class="sourceLineNo">078</span>   *<a name="line.78"></a>
-<span class="sourceLineNo">079</span>   * @param protoQuota The preconstructed SpaceQuota protobuf<a name="line.79"></a>
-<span class="sourceLineNo">080</span>   * @return A protobuf request to change a space limit quota<a name="line.80"></a>
-<span class="sourceLineNo">081</span>   */<a name="line.81"></a>
-<span class="sourceLineNo">082</span>  private SpaceLimitRequest buildProtoFromQuota(SpaceQuota protoQuota) {<a name="line.82"></a>
-<span class="sourceLineNo">083</span>    return SpaceLimitRequest.newBuilder().setQuota(protoQuota).build();<a name="line.83"></a>
-<span class="sourceLineNo">084</span>  }<a name="line.84"></a>
-<span class="sourceLineNo">085</span><a name="line.85"></a>
-<span class="sourceLineNo">086</span>  /**<a name="line.86"></a>
-<span class="sourceLineNo">087</span>   * Builds a {@link SpaceQuota} protobuf object given the arguments.<a name="line.87"></a>
-<span class="sourceLineNo">088</span>   *<a name="line.88"></a>
-<span class="sourceLineNo">089</span>   * @param sizeLimit The size limit of the quota.<a name="line.89"></a>
-<span class="sourceLineNo">090</span>   * @param violationPolicy The action to take when the quota is exceeded.<a name="line.90"></a>
-<span class="sourceLineNo">091</span>   * @return The protobuf SpaceQuota representation.<a name="line.91"></a>
-<span class="sourceLineNo">092</span>   */<a name="line.92"></a>
-<span class="sourceLineNo">093</span>  private SpaceLimitRequest buildProtoAddQuota(<a name="line.93"></a>
-<span class="sourceLineNo">094</span>      long sizeLimit, SpaceViolationPolicy violationPolicy) {<a name="line.94"></a>
-<span class="sourceLineNo">095</span>    return buildProtoFromQuota(SpaceQuota.newBuilder()<a name="line.95"></a>
-<span class="sourceLineNo">096</span>            .setSoftLimit(sizeLimit)<a name="line.96"></a>
-<span class="sourceLineNo">097</span>            .setViolationPolicy(ProtobufUtil.toProtoViolationPolicy(violationPolicy))<a name="line.97"></a>
-<span class="sourceLineNo">098</span>            .build());<a name="line.98"></a>
-<span class="sourceLineNo">099</span>  }<a name="line.99"></a>
-<span class="sourceLineNo">100</span><a name="line.100"></a>
-<span class="sourceLineNo">101</span>  /**<a name="line.101"></a>
-<span class="sourceLineNo">102</span>   * Builds a {@link SpaceQuota} protobuf object to remove a quota.<a name="line.102"></a>
-<span class="sourceLineNo">103</span>   *<a name="line.103"></a>
-<span class="sourceLineNo">104</span>   * @return The protobuf SpaceQuota representation.<a name="line.104"></a>
-<span class="sourceLineNo">105</span>   */<a name="line.105"></a>
-<span class="sourceLineNo">106</span>  private SpaceLimitRequest buildProtoRemoveQuota() {<a name="line.106"></a>
-<span class="sourceLineNo">107</span>    return SpaceLimitRequest.newBuilder().setQuota(<a name="line.107"></a>
-<span class="sourceLineNo">108</span>        SpaceQuota.newBuilder()<a name="line.108"></a>
-<span class="sourceLineNo">109</span>            .setRemove(true)<a name="line.109"></a>
-<span class="sourceLineNo">110</span>            .build())<a name="line.110"></a>
-<span class="sourceLineNo">111</span>        .build();<a name="line.111"></a>
-<span class="sourceLineNo">112</span>  }<a name="line.112"></a>
-<span class="sourceLineNo">113</span><a name="line.113"></a>
-<span class="sourceLineNo">114</span>  /**<a name="line.114"></a>
-<span class="sourceLineNo">115</span>   * Returns a copy of the internal state of &lt;code&gt;this&lt;/code&gt;<a name="line.115"></a>
-<span class="sourceLineNo">116</span>   */<a name="line.116"></a>
-<span class="sourceLineNo">117</span>  SpaceLimitRequest getProto() {<a name="line.117"></a>
-<span class="sourceLineNo">118</span>    return proto.toBuilder().build();<a name="line.118"></a>
-<span class="sourceLineNo">119</span>  }<a name="line.119"></a>
-<span class="sourceLineNo">120</span><a name="line.120"></a>
-<span class="sourceLineNo">121</span>  @Override<a name="line.121"></a>
-<span class="sourceLineNo">122</span>  public QuotaType getQuotaType() {<a name="line.122"></a>
-<span class="sourceLineNo">123</span>    return QuotaType.SPACE;<a name="line.123"></a>
-<span class="sourceLineNo">124</span>  }<a name="line.124"></a>
-<span class="sourceLineNo">125</span><a name="line.125"></a>
-<span class="sourceLineNo">126</span>  @Override<a name="line.126"></a>
-<span class="sourceLineNo">127</span>  protected void setupSetQuotaRequest(Builder builder) {<a name="line.127"></a>
-<span class="sourceLineNo">128</span>    // TableName/Namespace are serialized in QuotaSettings<a name="line.128"></a>
-<span class="sourceLineNo">129</span>    builder.setSpaceLimit(proto);<a name="line.129"></a>
-<span class="sourceLineNo">130</span>  }<a name="line.130"></a>
-<span class="sourceLineNo">131</span><a name="line.131"></a>
-<span class="sourceLineNo">132</span>  /**<a name="line.132"></a>
-<span class="sourceLineNo">133</span>   * Constructs a {@link SpaceLimitSettings} from the provided protobuf message and tablename.<a name="line.133"></a>
-<span class="sourceLineNo">134</span>   *<a name="line.134"></a>
-<span class="sourceLineNo">135</span>   * @param tableName The target tablename for the limit.<a name="line.135"></a>
-<span class="sourceLineNo">136</span>   * @param proto The protobuf representation.<a name="line.136"></a>
-<span class="sourceLineNo">137</span>   * @return A QuotaSettings.<a name="line.137"></a>
-<span class="sourceLineNo">138</span>   */<a name="line.138"></a>
-<span class="sourceLineNo">139</span>  static SpaceLimitSettings fromSpaceQuota(<a name="line.139"></a>
-<span class="sourceLineNo">140</span>      final TableName tableName, final QuotaProtos.SpaceQuota proto) {<a name="line.140"></a>
-<span class="sourceLineNo">141</span>    validateProtoArguments(proto);<a name="line.141"></a>
-<span class="sourceLineNo">142</span>    return new SpaceLimitSettings(tableName, proto.getSoftLimit(),<a name="line.142"></a>
-<span class="sourceLineNo">143</span>        ProtobufUtil.toViolationPolicy(proto.getViolationPolicy()));<a name="line.143"></a>
-<span class="sourceLineNo">144</span>  }<a name="line.144"></a>
-<span class="sourceLineNo">145</span><a name="line.145"></a>
-<span class="sourceLineNo">146</span>  /**<a name="line.146"></a>
-<span class="sourceLineNo">147</span>   * Constructs a {@link SpaceLimitSettings} from the provided protobuf message and namespace.<a name="line.147"></a>
-<span class="sourceLineNo">148</span>   *<a name="line.148"></a>
-<span class="sourceLineNo">149</span>   * @param namespace The target namespace for the limit.<a name="line.149"></a>
-<span class="sourceLineNo">150</span>   * @param proto The protobuf representation.<a name="line.150"></a>
-<span class="sourceLineNo">151</span>   * @return A QuotaSettings.<a name="line.151"></a>
-<span class="sourceLineNo">152</span>   */<a name="line.152"></a>
-<span class="sourceLineNo">153</span>  static SpaceLimitSettings fromSpaceQuota(<a name="line.153"></a>
-<span class="sourceLineNo">154</span>      final String namespace, final QuotaProtos.SpaceQuota proto) {<a name="line.154"></a>
-<span class="sourceLineNo">155</span>    validateProtoArguments(proto);<a name="line.155"></a>
-<span class="sourceLineNo">156</span>    return new SpaceLimitSettings(namespace, proto.getSoftLimit(),<a name="line.156"></a>
-<span class="sourceLineNo">157</span>        ProtobufUtil.toViolationPolicy(proto.getViolationPolicy()));<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>   * Validates that the provided protobuf SpaceQuota has the necessary information to construct<a name="line.161"></a>
-<span class="sourceLineNo">162</span>   * a {@link SpaceLimitSettings}.<a name="line.162"></a>
-<span class="sourceLineNo">163</span>   *<a name="line.163"></a>
-<span class="sourceLineNo">164</span>   * @param proto The protobuf message to validate.<a name="line.164"></a>
-<span class="sourceLineNo">165</span>   */<a name="line.165"></a>
-<span class="sourceLineNo">166</span>  static void validateProtoArguments(final QuotaProtos.SpaceQuota proto) {<a name="line.166"></a>
-<span class="sourceLineNo">167</span>    if (!Objects.requireNonNull(proto).hasSoftLimit()) {<a name="line.167"></a>
-<span class="sourceLineNo">168</span>      throw new IllegalArgumentException("Cannot handle SpaceQuota without a soft limit");<a name="line.168"></a>
-<span class="sourceLineNo">169</span>    }<a name="line.169"></a>
-<span class="sourceLineNo">170</span>    if (!proto.hasViolationPolicy()) {<a name="line.170"></a>
-<span class="sourceLineNo">171</span>      throw new IllegalArgumentException("Cannot handle SpaceQuota without a violation policy");<a name="line.171"></a>
-<span class="sourceLineNo">172</span>    }<a name="line.172"></a>
-<span class="sourceLineNo">173</span>  }<a name="line.173"></a>
-<span class="sourceLineNo">174</span><a name="line.174"></a>
-<span class="sourceLineNo">175</span>  @Override<a name="line.175"></a>
-<span class="sourceLineNo">176</span>  public int hashCode() {<a name="line.176"></a>
-<span class="sourceLineNo">177</span>    return Objects.hash(getTableName(), getNamespace(), proto);<a name="line.177"></a>
-<span class="sourceLineNo">178</span>  }<a name="line.178"></a>
-<span class="sourceLineNo">179</span><a name="line.179"></a>
-<span class="sourceLineNo">180</span>  @Override<a name="line.180"></a>
-<span class="sourceLineNo">181</span>  public boolean equals(Object o) {<a name="line.181"></a>
-<span class="sourceLineNo">182</span>    if (o == this) {<a name="line.182"></a>
-<span class="sourceLineNo">183</span>      return true;<a name="line.183"></a>
-<span class="sourceLineNo">184</span>    }<a name="line.184"></a>
-<span class="sourceLineNo">185</span>    if (!(o instanceof SpaceLimitSettings)) {<a name="line.185"></a>
-<span class="sourceLineNo">186</span>      return false;<a name="line.186"></a>
-<span class="sourceLineNo">187</span>    }<a name="line.187"></a>
-<span class="sourceLineNo">188</span>    // o is non-null and an instance of SpaceLimitSettings<a name="line.188"></a>
-<span class="sourceLineNo">189</span>    SpaceLimitSettings other = (SpaceLimitSettings) o;<a name="line.189"></a>
-<span class="sourceLineNo">190</span>    return Objects.equals(getTableName(), other.getTableName()) &amp;&amp;<a name="line.190"></a>
-<span class="sourceLineNo">191</span>        Objects.equals(getNamespace(), other.getNamespace()) &amp;&amp;<a name="line.191"></a>
-<span class="sourceLineNo">192</span>        Objects.equals(proto, other.proto);<a name="line.192"></a>
-<span class="sourceLineNo">193</span>  }<a name="line.193"></a>
-<span class="sourceLineNo">194</span><a name="line.194"></a>
-<span class="sourceLineNo">195</span>  @Override<a name="line.195"></a>
-<span class="sourceLineNo">196</span>  public String toString() {<a name="line.196"></a>
-<span class="sourceLineNo">197</span>    StringBuilder sb = new StringBuilder();<a name="line.197"></a>
-<span class="sourceLineNo">198</span>    sb.append("TYPE =&gt; SPACE");<a name="line.198"></a>
-<span class="sourceLineNo">199</span>    if (getTableName() != null) {<a name="line.199"></a>
-<span class="sourceLineNo">200</span>      sb.append(", TABLE =&gt; ").append(getTableName());<a name="line.200"></a>
-<span class="sourceLineNo">201</span>    }<a name="line.201"></a>
-<span class="sourceLineNo">202</span>    if (getNamespace() != null) {<a name="line.202"></a>
-<span class="sourceLineNo">203</span>      sb.append(", NAMESPACE =&gt; ").append(getNamespace());<a name="line.203"></a>
-<span class="sourceLineNo">204</span>    }<a name="line.204"></a>
-<span class="sourceLineNo">205</span>    if (proto.getQuota().getRemove()) {<a name="line.205"></a>
-<span class="sourceLineNo">206</span>      sb.append(", REMOVE =&gt; ").append(proto.getQuota().getRemove());<a name="line.206"></a>
-<span class="sourceLineNo">207</span>    } else {<a name="line.207"></a>
-<span class="sourceLineNo">208</span>      sb.append(", LIMIT =&gt; ").append(sizeToString(proto.getQuota().getSoftLimit()));<a name="line.208"></a>
-<span class="sourceLineNo">209</span>      sb.append(", VIOLATION_POLICY =&gt; ").append(proto.getQuota().getViolationPolicy());<a name="line.209"></a>
-<span class="sourceLineNo">210</span>    }<a name="line.210"></a>
-<span class="sourceLineNo">211</span>    return sb.toString();<a name="line.211"></a>
-<span class="sourceLineNo">212</span>  }<a name="line.212"></a>
-<span class="sourceLineNo">213</span><a name="line.213"></a>
-<span class="sourceLineNo">214</span>  @Override<a name="line.214"></a>
-<span class="sourceLineNo">215</span>  protected QuotaSettings merge(QuotaSettings newSettings) {<a name="line.215"></a>
-<span class="sourceLineNo">216</span>    if (newSettings instanceof SpaceLimitSettings) {<a name="line.216"></a>
-<span class="sourceLineNo">217</span>      SpaceLimitSettings settingsToMerge = (SpaceLimitSettings) newSettings;<a name="line.217"></a>
-<span class="sourceLineNo">218</span><a name="line.218"></a>
-<span class="sourceLineNo">219</span>      // The message contained the expect SpaceQuota object<a name="line.219"></a>
-<span class="sourceLineNo">220</span>      if (settingsToMerge.proto.hasQuota()) {<a name="line.220"></a>
-<span class="sourceLineNo">221</span>        SpaceQuota quotaToMerge = settingsToMerge.proto.getQuota();<a name="line.221"></a>
-<span class="sourceLineNo">222</span>        if (quotaToMerge.getRemove()) {<a name="line.222"></a>
-<span class="sourceLineNo">223</span>          return settingsToMerge;<a name="line.223"></a>
-<span class="sourceLineNo">224</span>        } else {<a name="line.224"></a>
-<span class="sourceLineNo">225</span>          // Validate that the two settings are for the same target.<a name="line.225"></a>
-<span class="sourceLineNo">226</span>          // SpaceQuotas either apply to a table or a namespace (no user spacequota).<a name="line.226"></a>
-<span class="sourceLineNo">227</span>          if (!Objects.equals(getTableName(), settingsToMerge.getTableName())<a name="line.227"></a>
-<span class="sourceLineNo">228</span>              &amp;&amp; !Objects.equals(getNamespace(), settingsToMerge.getNamespace())) {<a name="line.228"></a>
-<span class="sourceLineNo">229</span>            throw new IllegalArgumentException("Cannot merge " + newSettings + " into " + this);<a name="line.229"></a>
-<span class="sourceLineNo">230</span>          }<a name="line.230"></a>
-<span class="sourceLineNo">231</span>          // Create a builder from the old settings<a name="line.231"></a>
-<span class="sourceLineNo">232</span>          SpaceQuota.Builder mergedBuilder = this.proto.getQuota().toBuilder();<a name="line.232"></a>
-<span class="sourceLineNo">233</span>          // Build a new SpaceQuotas object from merging in the new settings<a name="line.233"></a>
-<span class="sourceLineNo">234</span>          return new SpaceLimitSettings(<a name="line.234"></a>
-<span class="sourceLineNo">235</span>              getTableName(), getNamespace(),<a name="line.235"></a>
-<span class="sourceLineNo">236</span>              buildProtoFromQuota(mergedBuilder.mergeFrom(quotaToMerge).build()));<a name="line.236"></a>
-<span class="sourceLineNo">237</span>        }<a name="line.237"></a>
-<span class="sourceLineNo">238</span>      }<a name="line.238"></a>
-<span class="sourceLineNo">239</span>      // else, we don't know what to do, so return the original object<a name="line.239"></a>
-<span class="sourceLineNo">240</span>    }<a name="line.240"></a>
-<span class="sourceLineNo">241</span>    return this;<a name="line.241"></a>
-<span class="sourceLineNo">242</span>  }<a name="line.242"></a>
-<span class="sourceLineNo">243</span>}<a name="line.243"></a>
+<span class="sourceLineNo">041</span>    validateSizeLimit(sizeLimit);<a name="line.41"></a>
+<span class="sourceLineNo">042</span>    proto = buildProtoAddQuota(sizeLimit, Objects.requireNonNull(violationPolicy));<a name="line.42"></a>
+<span class="sourceLineNo">043</span>  }<a name="line.43"></a>
+<span class="sourceLineNo">044</span><a name="line.44"></a>
+<span class="sourceLineNo">045</span>  /**<a name="line.45"></a>
+<span class="sourceLineNo">046</span>   * Constructs a {@code SpaceLimitSettings} to remove a space quota on the given {@code tableName}.<a name="line.46"></a>
+<span class="sourceLineNo">047</span>   */<a name="line.47"></a>
+<span class="sourceLineNo">048</span>  SpaceLimitSettings(TableName tableName) {<a name="line.48"></a>
+<span class="sourceLineNo">049</span>    super(null, Objects.requireNonNull(tableName), null);<a name="line.49"></a>
+<span class="sourceLineNo">050</span>    proto = buildProtoRemoveQuota();<a name="line.50"></a>
+<span class="sourceLineNo">051</span>  }<a name="line.51"></a>
+<span class="sourceLineNo">052</span><a name="line.52"></a>
+<span class="sourceLineNo">053</span>  SpaceLimitSettings(String namespace, long sizeLimit, SpaceViolationPolicy violationPolicy) {<a name="line.53"></a>
+<span class="sourceLineNo">054</span>    super(null, null, Objects.requireNonNull(namespace));<a name="line.54"></a>
+<span class="sourceLineNo">055</span>    validateSizeLimit(sizeLimit);<a name="line.55"></a>
+<span class="sourceLineNo">056</span>    proto = buildProtoAddQuota(sizeLimit, Objects.requireNonNull(violationPolicy));<a name="line.56"></a>
+<span class="sourceLineNo">057</span>  }<a name="line.57"></a>
+<span class="sourceLineNo">058</span><a name="line.58"></a>
+<span class="sourceLineNo">059</span>  /**<a name="line.59"></a>
+<span class="sourceLineNo">060</span>   * Constructs a {@code SpaceLimitSettings} to remove a space quota on the given {@code namespace}.<a name="line.60"></a>
+<span class="sourceLineNo">061</span>   */<a name="line.61"></a>
+<span class="sourceLineNo">062</span>  SpaceLimitSettings(String namespace) {<a name="line.62"></a>
+<span class="sourceLineNo">063</span>    super(null, null, Objects.requireNonNull(namespace));<a name="line.63"></a>
+<span class="sourceLineNo">064</span>    proto = buildProtoRemoveQuota();<a name="line.64"></a>
+<span class="sourceLineNo">065</span>  }<a name="line.65"></a>
+<span class="sourceLineNo">066</span><a name="line.66"></a>
+<span class="sourceLineNo">067</span>  SpaceLimitSettings(TableName tableName, String namespace, SpaceLimitRequest req) {<a name="line.67"></a>
+<span class="sourceLineNo">068</span>    super(null, tableName, namespace);<a name="line.68"></a>
+<span class="sourceLineNo">069</span>    proto = req;<a name="line.69"></a>
+<span class="sourceLineNo">070</span>  }<a name="line.70"></a>
+<span class="sourceLineNo">071</span><a name="line.71"></a>
+<span class="sourceLineNo">072</span>  /**<a name="line.72"></a>
+<span class="sourceLineNo">073</span>   * Build a {@link SpaceLimitRequest} protobuf object from the given {@link SpaceQuota}.<a name="line.73"></a>
+<span class="sourceLineNo">074</span>   *<a name="line.74"></a>
+<span class="sourceLineNo">075</span>   * @param protoQuota The preconstructed SpaceQuota protobuf<a name="line.75"></a>
+<span class="sourceLineNo">076</span>   * @return A protobuf request to change a space limit quota<a name="line.76"></a>
+<span class="sourceLineNo">077</span>   */<a name="line.77"></a>
+<span class="sourceLineNo">078</span>  private SpaceLimitRequest buildProtoFromQuota(SpaceQuota protoQuota) {<a name="line.78"></a>
+<span class="sourceLineNo">079</span>    return SpaceLimitRequest.newBuilder().setQuota(protoQuota).build();<a name="line.79"></a>
+<span class="sourceLineNo">080</span>  }<a name="line.80"></a>
+<span class="sourceLineNo">081</span><a name="line.81"></a>
+<span class="sourceLineNo">082</span>  /**<a name="line.82"></a>
+<span class="sourceLineNo">083</span>   * Builds a {@link SpaceQuota} protobuf object given the arguments.<a name="line.83"></a>
+<span class="sourceLineNo">084</span>   *<a name="line.84"></a>
+<span class="sourceLineNo">085</span>   * @param sizeLimit The size limit of the quota.<a name="line.85"></a>
+<span class="sourceLineNo">086</span>   * @param violationPolicy The action to take when the quota is exceeded.<a name="line.86"></a>
+<span class="sourceLineNo">087</span>   * @return The protobuf SpaceQuota representation.<a name="line.87"></a>
+<span class="sourceLineNo">088</span>   */<a name="line.88"></a>
+<span class="sourceLineNo">089</span>  private SpaceLimitRequest buildProtoAddQuota(<a name="line.89"></a>
+<span class="sourceLineNo">090</span>      long sizeLimit, SpaceViolationPolicy violationPolicy) {<a name="line.90"></a>
+<span class="sourceLineNo">091</span>    return buildProtoFromQuota(SpaceQuota.newBuilder()<a name="line.91"></a>
+<span class="sourceLineNo">092</span>            .setSoftLimit(sizeLimit)<a name="line.92"></a>
+<span class="sourceLineNo">093</span>            .setViolationPolicy(ProtobufUtil.toProtoViolationPolicy(violationPolicy))<a name="line.93"></a>
+<span class="sourceLineNo">094</span>            .build());<a name="line.94"></a>
+<span class="sourceLineNo">095</span>  }<a name="line.95"></a>
+<span class="sourceLineNo">096</span><a name="line.96"></a>
+<span class="sourceLineNo">097</span>  /**<a name="line.97"></a>
+<span class="sourceLineNo">098</span>   * Builds a {@link SpaceQuota} protobuf object to remove a quota.<a name="line.98"></a>
+<span class="sourceLineNo">099</span>   *<a name="line.99"></a>
+<span class="sourceLineNo">100</span>   * @return The protobuf SpaceQuota representation.<a name="line.100"></a>
+<span class="sourceLineNo">101</span>   */<a name="line.101"></a>
+<span class="sourceLineNo">102</span>  private SpaceLimitRequest buildProtoRemoveQuota() {<a name="line.102"></a>
+<span class="sourceLineNo">103</span>    return SpaceLimitRequest.newBuilder().setQuota(<a name="line.103"></a>
+<span class="sourceLineNo">104</span>        SpaceQuota.newBuilder()<a name="line.104"></a>
+<span class="sourceLineNo">105</span>            .setRemove(true)<a name="line.105"></a>
+<span class="sourceLineNo">106</span>            .build())<a name="line.106"></a>
+<span class="sourceLineNo">107</span>        .build();<a name="line.107"></a>
+<span class="sourceLineNo">108</span>  }<a name="line.108"></a>
+<span class="sourceLineNo">109</span><a name="line.109"></a>
+<span class="sourceLineNo">110</span>  /**<a name="line.110"></a>
+<span class="sourceLineNo">111</span>   * Returns a copy of the internal state of &lt;code&gt;this&lt;/code&gt;<a name="line.111"></a>
+<span class="sourceLineNo">112</span>   */<a name="line.112"></a>
+<span class="sourceLineNo">113</span>  SpaceLimitRequest getProto() {<a name="line.113"></a>
+<span class="sourceLineNo">114</span>    return proto.toBuilder().build();<a name="line.114"></a>
+<span class="sourceLineNo">115</span>  }<a name="line.115"></a>
+<span class="sourceLineNo">116</span><a name="line.116"></a>
+<span class="sourceLineNo">117</span>  @Override<a name="line.117"></a>
+<span class="sourceLineNo">118</span>  public QuotaType getQuotaType() {<a name="line.118"></a>
+<span class="sourceLineNo">119</span>    return QuotaType.SPACE;<a name="line.119"></a>
+<span class="sourceLineNo">120</span>  }<a name="line.120"></a>
+<span class="sourceLineNo">121</span><a name="line.121"></a>
+<span class="sourceLineNo">122</span>  @Override<a name="line.122"></a>
+<span class="sourceLineNo">123</span>  protected void setupSetQuotaRequest(Builder builder) {<a name="line.123"></a>
+<span class="sourceLineNo">124</span>    // TableName/Namespace are serialized in QuotaSettings<a name="line.124"></a>
+<span class="sourceLineNo">125</span>    builder.setSpaceLimit(proto);<a name="line.125"></a>
+<span class="sourceLineNo">126</span>  }<a name="line.126"></a>
+<span class="sourceLineNo">127</span><a name="line.127"></a>
+<span class="sourceLineNo">128</span>  /**<a name="line.128"></a>
+<span class="sourceLineNo">129</span>   * Constructs a {@link SpaceLimitSettings} from the provided protobuf message and tablename.<a name="line.129"></a>
+<span class="sourceLineNo">130</span>   *<a name="line.130"></a>
+<span class="sourceLineNo">131</span>   * @param tableName The target tablename for the limit.<a name="line.131"></a>
+<span class="sourceLineNo">132</span>   * @param proto The protobuf representation.<a name="line.132"></a>
+<span class="sourceLineNo">133</span>   * @return A QuotaSettings.<a name="line.133"></a>
+<span class="sourceLineNo">134</span>   */<a name="line.134"></a>
+<span class="sourceLineNo">135</span>  static SpaceLimitSettings fromSpaceQuota(<a name="line.135"></a>
+<span class="sourceLineNo">136</span>      final TableName tableName, final QuotaProtos.SpaceQuota proto) {<a name="line.136"></a>
+<span class="sourceLineNo">137</span>    validateProtoArguments(proto);<a name="line.137"></a>
+<span class="sourceLineNo">138</span>    return new SpaceLimitSettings(tableName, proto.getSoftLimit(),<a name="line.138"></a>
+<span class="sourceLineNo">139</span>        ProtobufUtil.toViolationPolicy(proto.getViolationPolicy()));<a name="line.139"></a>
+<span class="sourceLineNo">140</span>  }<a name="line.140"></a>
+<span class="sourceLineNo">141</span><a name="line.141"></a>
+<span class="sourceLineNo">142</span>  /**<a name="line.142"></a>
+<span class="sourceLineNo">143</span>   * Constructs a {@link SpaceLimitSettings} from the provided protobuf message and namespace.<a name="line.143"></a>
+<span class="sourceLineNo">144</span>   *<a name="line.144"></a>
+<span class="sourceLineNo">145</span>   * @param namespace The target namespace for the limit.<a name="line.145"></a>
+<span class="sourceLineNo">146</span>   * @param proto The protobuf representation.<a name="line.146"></a>
+<span class="sourceLineNo">147</span>   * @return A QuotaSettings.<a name="line.147"></a>
+<span class="sourceLineNo">148</span>   */<a name="line.148"></a>
+<span class="sourceLineNo">149</span>  static SpaceLimitSettings fromSpaceQuota(<a name="line.149"></a>
+<span class="sourceLineNo">150</span>      final String namespace, final QuotaProtos.SpaceQuota proto) {<a name="line.150"></a>
+<span class="sourceLineNo">151</span>    validateProtoArguments(proto);<a name="line.151"></a>
+<span class="sourceLineNo">152</span>    return new SpaceLimitSettings(namespace, proto.getSoftLimit(),<a name="line.152"></a>
+<span class="sourceLineNo">153</span>        ProtobufUtil.toViolationPolicy(proto.getViolationPolicy()));<a name="line.153"></a>
+<span class="sourceLineNo">154</span>  }<a name="line.154"></a>
+<span class="sourceLineNo">155</span><a name="line.155"></a>
+<span class="sourceLineNo">156</span>  /**<a name="line.156"></a>
+<span class="sourceLineNo">157</span>   * Validates that the provided protobuf SpaceQuota has the necessary information to construct<a name="line.157"></a>
+<span class="sourceLineNo">158</span>   * a {@link SpaceLimitSettings}.<a name="line.158"></a>
+<span class="sourceLineNo">159</span>   *<a name="line.159"></a>
+<span class="sourceLineNo">160</span>   * @param proto The protobuf message to validate.<a name="line.160"></a>
+<span class="sourceLineNo">161</span>   */<a name="line.161"></a>
+<span class="sourceLineNo">162</span>  static void validateProtoArguments(final QuotaProtos.SpaceQuota proto) {<a name="line.162"></a>
+<span class="sourceLineNo">163</span>    if (!Objects.requireNonNull(proto).hasSoftLimit()) {<a name="line.163"></a>
+<span class="sourceLineNo">164</span>      throw new IllegalArgumentException("Cannot handle SpaceQuota without a soft limit");<a name="line.164"></a>
+<span class="sourceLineNo">165</span>    }<a name="line.165"></a>
+<span class="sourceLineNo">166</span>    if (!proto.hasViolationPolicy()) {<a name="line.166"></a>
+<span class="sourceLineNo">167</span>      throw new IllegalArgumentException("Cannot handle SpaceQuota without a violation policy");<a name="line.167"></a>
+<span class="sourceLineNo">168</span>    }<a name="line.168"></a>
+<span class="sourceLineNo">169</span>  }<a name="line.169"></a>
+<span class="sourceLineNo">170</span><a name="line.170"></a>
+<span class="sourceLineNo">171</span>  @Override<a name="line.171"></a>
+<span class="sourceLineNo">172</span>  public int hashCode() {<a name="line.172"></a>
+<span class="sourceLineNo">173</span>    return Objects.hash(getTableName(), getNamespace(), proto);<a name="line.173"></a>
+<span class="sourceLineNo">174</span>  }<a name="line.174"></a>
+<span class="sourceLineNo">175</span><a name="line.175"></a>
+<span class="sourceLineNo">176</span>  @Override<a name="line.176"></a>
+<span class="sourceLineNo">177</span>  public boolean equals(Object o) {<a name="line.177"></a>
+<span class="sourceLineNo">178</span>    if (o == this) {<a name="line.178"></a>
+<span class="sourceLineNo">179</span>      return true;<a name="line.179"></a>
+<span class="sourceLineNo">180</span>    }<a name="line.180"></a>
+<span class="sourceLineNo">181</span>    if (!(o instanceof SpaceLimitSettings)) {<a name="line.181"></a>
+<span class="sourceLineNo">182</span>      return false;<a name="line.182"></a>
+<span class="sourceLineNo">183</span>    }<a name="line.183"></a>
+<span class="sourceLineNo">184</span>    // o is non-null and an instance of SpaceLimitSettings<a name="line.184"></a>
+<span class="sourceLineNo">185</span>    SpaceLimitSettings other = (SpaceLimitSettings) o;<a name="line.185"></a>
+<span class="sourceLineNo">186</span>    return Objects.equals(getTableName(), other.getTableName()) &amp;&amp;<a name="line.186"></a>
+<span class="sourceLineNo">187</span>        Objects.equals(getNamespace(), other.getNamespace()) &amp;&amp;<a name="line.187"></a>
+<span class="sourceLineNo">188</span>        Objects.equals(proto, other.proto);<a name="line.188"></a>
+<span class="sourceLineNo">189</span>  }<a name="line.189"></a>
+<span class="sourceLineNo">190</span><a name="line.190"></a>
+<span class="sourceLineNo">191</span>  @Override<a name="line.191"></a>
+<span class="sourceLineNo">192</span>  public String toString() {<a name="line.192"></a>
+<span class="sourceLineNo">193</span>    StringBuilder sb = new StringBuilder();<a name="line.193"></a>
+<span class="sourceLineNo">194</span>    sb.append("TYPE =&gt; SPACE");<a name="line.194"></a>
+<span class="sourceLineNo">195</span>    if (getTableName() != null) {<a name="line.195"></a>
+<span class="sourceLineNo">196</span>      sb.append(", TABLE =&gt; ").append(getTableName());<a name="line.196"></a>
+<span class="sourceLineNo">197</span>    }<a name="line.197"></a>
+<span class="sourceLineNo">198</span>    if (getNamespace() != null) {<a name="line.198"></a>
+<span class="sourceLineNo">199</span>      sb.append(", NAMESPACE =&gt; ").append(getNamespace());<a name="line.199"></a>
+<span class="sourceLineNo">200</span>    }<a name="line.200"></a>
+<span class="sourceLineNo">201</span>    if (proto.getQuota().getRemove()) {<a name="line.201"></a>
+<span class="sourceLineNo">202</span>      sb.append(", REMOVE =&gt; ").append(proto.getQuota().getRemove());<a name="line.202"></a>
+<span class="sourceLineNo">203</span>    } else {<a name="line.203"></a>
+<span class="sourceLineNo">204</span>      sb.append(", LIMIT =&gt; ").append(sizeToString(proto.getQuota().getSoftLimit()));<a name="line.204"></a>
+<span class="sourceLineNo">205</span>      sb.append(", VIOLATION_POLICY =&gt; ").append(proto.getQuota().getViolationPolicy());<a name="line.205"></a>
+<span class="sourceLineNo">206</span>    }<a name="line.206"></a>
+<span class="sourceLineNo">207</span>    return sb.toString();<a name="line.207"></a>
+<span class="sourceLineNo">208</span>  }<a name="line.208"></a>
+<span class="sourceLineNo">209</span><a name="line.209"></a>
+<span class="sourceLineNo">210</span>  @Override<a name="line.210"></a>
+<span class="sourceLineNo">211</span>  protected QuotaSettings merge(QuotaSettings newSettings) {<a name="line.211"></a>
+<span class="sourceLineNo">212</span>    if (newSettings instanceof SpaceLimitSettings) {<a name="line.212"></a>
+<span class="sourceLineNo">213</span>      SpaceLimitSettings settingsToMerge = (SpaceLimitSettings) newSettings;<a name="line.213"></a>
+<span class="sourceLineNo">214</span><a name="line.214"></a>
+<span class="sourceLineNo">215</span>      // The message contained the expect SpaceQuota object<a name="line.215"></a>
+<span class="sourceLineNo">216</span>      if (settingsToMerge.proto.hasQuota()) {<a name="line.216"></a>
+<span class="sourceLineNo">217</span>        SpaceQuota quotaToMerge = settingsToMerge.proto.getQuota();<a name="line.217"></a>
+<span class="sourceLineNo">218</span>        if (quotaToMerge.getRemove()) {<a name="line.218"></a>
+<span class="sourceLineNo">219</span>          return settingsToMerge;<a name="line.219"></a>
+<span class="sourceLineNo">220</span>        } else {<a name="line.220"></a>
+<span class="sourceLineNo">221</span>          // Validate that the two settings are for the same target.<a name="line.221"></a>
+<span class="sourceLineNo">222</span>          // SpaceQuotas either apply to a table or a namespace (no user spacequota).<a name="line.222"></a>
+<span class="sourceLineNo">223</span>          if (!Objects.equals(getTableName(), settingsToMerge.getTableName())<a name="line.223"></a>
+<span class="sourceLineNo">224</span>              &amp;&amp; !Objects.equals(getNamespace(), settingsToMerge.getNamespace())) {<a name="line.224"></a>
+<span class="sourceLineNo">225</span>            throw new IllegalArgumentException("Cannot merge " + newSettings + " into " + this);<a name="line.225"></a>
+<span class="sourceLineNo">226</span>          }<a name="line.226"></a>
+<span class="sourceLineNo">227</span>          // Create a builder from the old settings<a name="line.227"></a>
+<span class="sourceLineNo">228</span>          SpaceQuota.Builder mergedBuilder = this.proto.getQuota().toBuilder();<a name="line.228"></a>
+<span class="sourceLineNo">229</span>          // Build a new SpaceQuotas object from merging in the new settings<a name="line.229"></a>
+<span class="sourceLineNo">230</span>          return new SpaceLimitSettings(<a name="line.230"></a>
+<span class="sourceLineNo">231</span>              getTableName(), getNamespace(),<a name="line.231"></a>
+<span class="sourceLineNo">232</span>              buildProtoFromQuota(mergedBuilder.mergeFrom(quotaToMerge).build()));<a name="line.232"></a>
+<span class="sourceLineNo">233</span>        }<a name="line.233"></a>
+<span class="sourceLineNo">234</span>      }<a name="line.234"></a>
+<span class="sourceLineNo">235</span>      // else, we don't know what to do, so return the original object<a name="line.235"></a>
+<span class="sourceLineNo">236</span>    }<a name="line.236"></a>
+<span class="sourceLineNo">237</span>    return this;<a name="line.237"></a>
+<span class="sourceLineNo">238</span>  }<a name="line.238"></a>
+<span class="sourceLineNo">239</span><a name="line.239"></a>
+<span class="sourceLineNo">240</span>  // Helper function to validate sizeLimit<a name="line.240"></a>
+<span class="sourceLineNo">241</span>  private void validateSizeLimit(long sizeLimit) {<a name="line.241"></a>
+<span class="sourceLineNo">242</span>    if (sizeLimit &lt; 0L) {<a name="line.242"></a>
+<span class="sourceLineNo">243</span>      throw new IllegalArgumentException("Size limit must be a non-negative value.");<a name="line.243"></a>
+<span class="sourceLineNo">244</span>    }<a name="line.244"></a>
+<span class="sourceLineNo">245</span>  }<a name="line.245"></a>
+<span class="sourceLineNo">246</span>}<a name="line.246"></a>
 
 
 
index e0f7285..2eab590 100644 (file)
 <span class="sourceLineNo">109</span> */<a name="line.109"></a>
 <span class="sourceLineNo">110</span>@InterfaceAudience.Private<a name="line.110"></a>
 <span class="sourceLineNo">111</span>public abstract class AbstractFSWAL&lt;W extends WriterBase&gt; implements WAL {<a name="line.111"></a>
-<span class="sourceLineNo">112</span><a name="line.112"></a>
-<span class="sourceLineNo">113</span>  private static final Logger LOG = LoggerFactory.getLogger(AbstractFSWAL.class);<a name="line.113"></a>
-<span class="sourceLineNo">114</span><a name="line.114"></a>
-<span class="sourceLineNo">115</span>  protected static final int DEFAULT_SLOW_SYNC_TIME_MS = 100; // in ms<a name="line.115"></a>
-<span class="sourceLineNo">116</span><a name="line.116"></a>
-<span class="sourceLineNo">117</span>  private static final int DEFAULT_WAL_SYNC_TIMEOUT_MS = 5 * 60 * 1000; // in ms, 5min<a name="line.117"></a>
+<span class="sourceLineNo">112</span>  private static final Logger LOG = LoggerFactory.getLogger(AbstractFSWAL.class);<a name="line.112"></a>
+<span class="sourceLineNo">113</span><a name="line.113"></a>
+<span class="sourceLineNo">114</span>  private static final String SURVIVED_TOO_LONG_SEC_KEY = "hbase.regionserver.wal.too.old.sec";<a name="line.114"></a>
+<span class="sourceLineNo">115</span>  private static final int SURVIVED_TOO_LONG_SEC_DEFAULT = 900;<a name="line.115"></a>
+<span class="sourceLineNo">116</span>  /** Don't log blocking regions more frequently than this. */<a name="line.116"></a>
+<span class="sourceLineNo">117</span>  private static final long SURVIVED_TOO_LONG_LOG_INTERVAL_NS = TimeUnit.MINUTES.toNanos(5);<a name="line.117"></a>
 <span class="sourceLineNo">118</span><a name="line.118"></a>
-<span class="sourceLineNo">119</span>  /**<a name="line.119"></a>
-<span class="sourceLineNo">120</span>   * file system instance<a name="line.120"></a>
-<span class="sourceLineNo">121</span>   */<a name="line.121"></a>
-<span class="sourceLineNo">122</span>  protected final FileSystem fs;<a name="line.122"></a>
-<span class="sourceLineNo">123</span><a name="line.123"></a>
-<span class="sourceLineNo">124</span>  /**<a name="line.124"></a>
-<span class="sourceLineNo">125</span>   * WAL directory, where all WAL files would be placed.<a name="line.125"></a>
-<span class="sourceLineNo">126</span>   */<a name="line.126"></a>
-<span class="sourceLineNo">127</span>  protected final Path walDir;<a name="line.127"></a>
-<span class="sourceLineNo">128</span><a name="line.128"></a>
-<span class="sourceLineNo">129</span>  /**<a name="line.129"></a>
-<span class="sourceLineNo">130</span>   * dir path where old logs are kept.<a name="line.130"></a>
-<span class="sourceLineNo">131</span>   */<a name="line.131"></a>
-<span class="sourceLineNo">132</span>  protected final Path walArchiveDir;<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>   * Matches just those wal files that belong to this wal instance.<a name="line.135"></a>
-<span class="sourceLineNo">136</span>   */<a name="line.136"></a>
-<span class="sourceLineNo">137</span>  protected final PathFilter ourFiles;<a name="line.137"></a>
-<span class="sourceLineNo">138</span><a name="line.138"></a>
-<span class="sourceLineNo">139</span>  /**<a name="line.139"></a>
-<span class="sourceLineNo">140</span>   * Prefix of a WAL file, usually the region server name it is hosted on.<a name="line.140"></a>
-<span class="sourceLineNo">141</span>   */<a name="line.141"></a>
-<span class="sourceLineNo">142</span>  protected final String walFilePrefix;<a name="line.142"></a>
-<span class="sourceLineNo">143</span><a name="line.143"></a>
-<span class="sourceLineNo">144</span>  /**<a name="line.144"></a>
-<span class="sourceLineNo">145</span>   * Suffix included on generated wal file names<a name="line.145"></a>
-<span class="sourceLineNo">146</span>   */<a name="line.146"></a>
-<span class="sourceLineNo">147</span>  protected final String walFileSuffix;<a name="line.147"></a>
-<span class="sourceLineNo">148</span><a name="line.148"></a>
-<span class="sourceLineNo">149</span>  /**<a name="line.149"></a>
-<span class="sourceLineNo">150</span>   * Prefix used when checking for wal membership.<a name="line.150"></a>
-<span class="sourceLineNo">151</span>   */<a name="line.151"></a>
-<span class="sourceLineNo">152</span>  protected final String prefixPathStr;<a name="line.152"></a>
-<span class="sourceLineNo">153</span><a name="line.153"></a>
-<span class="sourceLineNo">154</span>  protected final WALCoprocessorHost coprocessorHost;<a name="line.154"></a>
-<span class="sourceLineNo">155</span><a name="line.155"></a>
-<span class="sourceLineNo">156</span>  /**<a name="line.156"></a>
-<span class="sourceLineNo">157</span>   * conf object<a name="line.157"></a>
-<span class="sourceLineNo">158</span>   */<a name="line.158"></a>
-<span class="sourceLineNo">159</span>  protected final Configuration conf;<a name="line.159"></a>
-<span class="sourceLineNo">160</span><a name="line.160"></a>
-<span class="sourceLineNo">161</span>  /** Listeners that are called on WAL events. */<a name="line.161"></a>
-<span class="sourceLineNo">162</span>  protected final List&lt;WALActionsListener&gt; listeners = new CopyOnWriteArrayList&lt;&gt;();<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>   * Class that does accounting of sequenceids in WAL subsystem. Holds oldest outstanding sequence<a name="line.165"></a>
-<span class="sourceLineNo">166</span>   * id as yet not flushed as well as the most recent edit sequence id appended to the WAL. Has<a name="line.166"></a>
-<span class="sourceLineNo">167</span>   * facility for answering questions such as "Is it safe to GC a WAL?".<a name="line.167"></a>
-<span class="sourceLineNo">168</span>   */<a name="line.168"></a>
-<span class="sourceLineNo">169</span>  protected final SequenceIdAccounting sequenceIdAccounting = new SequenceIdAccounting();<a name="line.169"></a>
-<span class="sourceLineNo">170</span><a name="line.170"></a>
-<span class="sourceLineNo">171</span>  protected final long slowSyncNs;<a name="line.171"></a>
-<span class="sourceLineNo">172</span><a name="line.172"></a>
-<span class="sourceLineNo">173</span>  private final long walSyncTimeoutNs;<a name="line.173"></a>
+<span class="sourceLineNo">119</span>  protected static final int DEFAULT_SLOW_SYNC_TIME_MS = 100; // in ms<a name="line.119"></a>
+<span class="sourceLineNo">120</span><a name="line.120"></a>
+<span class="sourceLineNo">121</span>  private static final int DEFAULT_WAL_SYNC_TIMEOUT_MS = 5 * 60 * 1000; // in ms, 5min<a name="line.121"></a>
+<span class="sourceLineNo">122</span><a name="line.122"></a>
+<span class="sourceLineNo">123</span>  /**<a name="line.123"></a>
+<span class="sourceLineNo">124</span>   * file system instance<a name="line.124"></a>
+<span class="sourceLineNo">125</span>   */<a name="line.125"></a>
+<span class="sourceLineNo">126</span>  protected final FileSystem fs;<a name="line.126"></a>
+<span class="sourceLineNo">127</span><a name="line.127"></a>
+<span class="sourceLineNo">128</span>  /**<a name="line.128"></a>
+<span class="sourceLineNo">129</span>   * WAL directory, where all WAL files would be placed.<a name="line.129"></a>
+<span class="sourceLineNo">130</span>   */<a name="line.130"></a>
+<span class="sourceLineNo">131</span>  protected final Path walDir;<a name="line.131"></a>
+<span class="sourceLineNo">132</span><a name="line.132"></a>
+<span class="sourceLineNo">133</span>  /**<a name="line.133"></a>
+<span class="sourceLineNo">134</span>   * dir path where old logs are kept.<a name="line.134"></a>
+<span class="sourceLineNo">135</span>   */<a name="line.135"></a>
+<span class="sourceLineNo">136</span>  protected final Path walArchiveDir;<a name="line.136"></a>
+<span class="sourceLineNo">137</span><a name="line.137"></a>
+<span class="sourceLineNo">138</span>  /**<a name="line.138"></a>
+<span class="sourceLineNo">139</span>   * Matches just those wal files that belong to this wal instance.<a name="line.139"></a>
+<span class="sourceLineNo">140</span>   */<a name="line.140"></a>
+<span class="sourceLineNo">141</span>  protected final PathFilter ourFiles;<a name="line.141"></a>
+<span class="sourceLineNo">142</span><a name="line.142"></a>
+<span class="sourceLineNo">143</span>  /**<a name="line.143"></a>
+<span class="sourceLineNo">144</span>   * Prefix of a WAL file, usually the region server name it is hosted on.<a name="line.144"></a>
+<span class="sourceLineNo">145</span>   */<a name="line.145"></a>
+<span class="sourceLineNo">146</span>  protected final String walFilePrefix;<a name="line.146"></a>
+<span class="sourceLineNo">147</span><a name="line.147"></a>
+<span class="sourceLineNo">148</span>  /**<a name="line.148"></a>
+<span class="sourceLineNo">149</span>   * Suffix included on generated wal file names<a name="line.149"></a>
+<span class="sourceLineNo">150</span>   */<a name="line.150"></a>
+<span class="sourceLineNo">151</span>  protected final String walFileSuffix;<a name="line.151"></a>
+<span class="sourceLineNo">152</span><a name="line.152"></a>
+<span class="sourceLineNo">153</span>  /**<a name="line.153"></a>
+<span class="sourceLineNo">154</span>   * Prefix used when checking for wal membership.<a name="line.154"></a>
+<span class="sourceLineNo">155</span>   */<a name="line.155"></a>
+<span class="sourceLineNo">156</span>  protected final String prefixPathStr;<a name="line.156"></a>
+<span class="sourceLineNo">157</span><a name="line.157"></a>
+<span class="sourceLineNo">158</span>  protected final WALCoprocessorHost coprocessorHost;<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>   * conf object<a name="line.161"></a>
+<span class="sourceLineNo">162</span>   */<a name="line.162"></a>
+<span class="sourceLineNo">163</span>  protected final Configuration conf;<a name="line.163"></a>
+<span class="sourceLineNo">164</span><a name="line.164"></a>
+<span class="sourceLineNo">165</span>  /** Listeners that are called on WAL events. */<a name="line.165"></a>
+<span class="sourceLineNo">166</span>  protected final List&lt;WALActionsListener&gt; listeners = new CopyOnWriteArrayList&lt;&gt;();<a name="line.166"></a>
+<span class="sourceLineNo">167</span><a name="line.167"></a>
+<span class="sourceLineNo">168</span>  /**<a name="line.168"></a>
+<span class="sourceLineNo">169</span>   * Class that does accounting of sequenceids in WAL subsystem. Holds oldest outstanding sequence<a name="line.169"></a>
+<span class="sourceLineNo">170</span>   * id as yet not flushed as well as the most recent edit sequence id appended to the WAL. Has<a name="line.170"></a>
+<span class="sourceLineNo">171</span>   * facility for answering questions such as "Is it safe to GC a WAL?".<a name="line.171"></a>
+<span class="sourceLineNo">172</span>   */<a name="line.172"></a>
+<span class="sourceLineNo">173</span>  protected final SequenceIdAccounting sequenceIdAccounting = new SequenceIdAccounting();<a name="line.173"></a>
 <span class="sourceLineNo">174</span><a name="line.174"></a>
-<span class="sourceLineNo">175</span>  // If &gt; than this size, roll the log.<a name="line.175"></a>
-<span class="sourceLineNo">176</span>  protected final long logrollsize;<a name="line.176"></a>
-<span class="sourceLineNo">177</span><a name="line.177"></a>
-<span class="sourceLineNo">178</span>  /**<a name="line.178"></a>
-<span class="sourceLineNo">179</span>   * Block size to use writing files.<a name="line.179"></a>
-<span class="sourceLineNo">180</span>   */<a name="line.180"></a>
-<span class="sourceLineNo">181</span>  protected final long blocksize;<a name="line.181"></a>
-<span class="sourceLineNo">182</span><a name="line.182"></a>
-<span class="sourceLineNo">183</span>  /*<a name="line.183"></a>
-<span class="sourceLineNo">184</span>   * If more than this many logs, force flush of oldest region to oldest edit goes to disk. If too<a name="line.184"></a>
-<span class="sourceLineNo">185</span>   * many and we crash, then will take forever replaying. Keep the number of logs tidy.<a name="line.185"></a>
+<span class="sourceLineNo">175</span>  protected final long slowSyncNs;<a name="line.175"></a>
+<span class="sourceLineNo">176</span><a name="line.176"></a>
+<span class="sourceLineNo">177</span>  private final long walSyncTimeoutNs;<a name="line.177"></a>
+<span class="sourceLineNo">178</span><a name="line.178"></a>
+<span class="sourceLineNo">179</span>  private final long walTooOldNs;<a name="line.179"></a>
+<span class="sourceLineNo">180</span><a name="line.180"></a>
+<span class="sourceLineNo">181</span>  // If &gt; than this size, roll the log.<a name="line.181"></a>
+<span class="sourceLineNo">182</span>  protected final long logrollsize;<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>   * Block size to use writing files.<a name="line.185"></a>
 <span class="sourceLineNo">186</span>   */<a name="line.186"></a>
-<span class="sourceLineNo">187</span>  protected final int maxLogs;<a name="line.187"></a>
+<span class="sourceLineNo">187</span>  protected final long blocksize;<a name="line.187"></a>
 <span class="sourceLineNo">188</span><a name="line.188"></a>
-<span class="sourceLineNo">189</span>  /**<a name="line.189"></a>
-<span class="sourceLineNo">190</span>   * This lock makes sure only one log roll runs at a time. Should not be taken while any other lock<a name="line.190"></a>
-<span class="sourceLineNo">191</span>   * is held. We don't just use synchronized because that results in bogus and tedious findbugs<a name="line.191"></a>
-<span class="sourceLineNo">192</span>   * warning when it thinks synchronized controls writer thread safety. It is held when we are<a name="line.192"></a>
-<span class="sourceLineNo">193</span>   * actually rolling the log. It is checked when we are looking to see if we should roll the log or<a name="line.193"></a>
-<span class="sourceLineNo">194</span>   * not.<a name="line.194"></a>
-<span class="sourceLineNo">195</span>   */<a name="line.195"></a>
-<span class="sourceLineNo">196</span>  protected final ReentrantLock rollWriterLock = new ReentrantLock(true);<a name="line.196"></a>
-<span class="sourceLineNo">197</span><a name="line.197"></a>
-<span class="sourceLineNo">198</span>  // The timestamp (in ms) when the log file was created.<a name="line.198"></a>
-<span class="sourceLineNo">199</span>  protected final AtomicLong filenum = new AtomicLong(-1);<a name="line.199"></a>
-<span class="sourceLineNo">200</span><a name="line.200"></a>
-<span class="sourceLineNo">201</span>  // Number of transactions in the current Wal.<a name="line.201"></a>
-<span class="sourceLineNo">202</span>  protected final AtomicInteger numEntries = new AtomicInteger(0);<a name="line.202"></a>
+<span class="sourceLineNo">189</span>  /*<a name="line.189"></a>
+<span class="sourceLineNo">190</span>   * If more than this many logs, force flush of oldest region to oldest edit goes to disk. If too<a name="line.190"></a>
+<span class="sourceLineNo">191</span>   * many and we crash, then will take forever replaying. Keep the number of logs tidy.<a name="line.191"></a>
+<span class="sourceLineNo">192</span>   */<a name="line.192"></a>
+<span class="sourceLineNo">193</span>  protected final int maxLogs;<a name="line.193"></a>
+<span class="sourceLineNo">194</span><a name="line.194"></a>
+<span class="sourceLineNo">195</span>  /**<a name="line.195"></a>
+<span class="sourceLineNo">196</span>   * This lock makes sure only one log roll runs at a time. Should not be taken while any other lock<a name="line.196"></a>
+<span class="sourceLineNo">197</span>   * is held. We don't just use synchronized because that results in bogus and tedious findbugs<a name="line.197"></a>
+<span class="sourceLineNo">198</span>   * warning when it thinks synchronized controls writer thread safety. It is held when we are<a name="line.198"></a>
+<span class="sourceLineNo">199</span>   * actually rolling the log. It is checked when we are looking to see if we should roll the log or<a name="line.199"></a>
+<span class="sourceLineNo">200</span>   * not.<a name="line.200"></a>
+<span class="sourceLineNo">201</span>   */<a name="line.201"></a>
+<span class="sourceLineNo">202</span>  protected final ReentrantLock rollWriterLock = new ReentrantLock(true);<a name="line.202"></a>
 <span class="sourceLineNo">203</span><a name="line.203"></a>
-<span class="sourceLineNo">204</span>  /**<a name="line.204"></a>
-<span class="sourceLineNo">205</span>   * The highest known outstanding unsync'd WALEdit transaction id. Usually, we use a queue to pass<a name="line.205"></a>
-<span class="sourceLineNo">206</span>   * WALEdit to background consumer thread, and the transaction id is the sequence number of the<a name="line.206"></a>
-<span class="sourceLineNo">207</span>   * corresponding entry in queue.<a name="line.207"></a>
-<span class="sourceLineNo">208</span>   */<a name="line.208"></a>
-<span class="sourceLineNo">209</span>  protected volatile long highestUnsyncedTxid = -1;<a name="line.209"></a>
-<span class="sourceLineNo">210</span><a name="line.210"></a>
-<span class="sourceLineNo">211</span>  /**<a name="line.211"></a>
-<span class="sourceLineNo">212</span>   * Updated to the transaction id of the last successful sync call. This can be less than<a name="line.212"></a>
-<span class="sourceLineNo">213</span>   * {@link #highestUnsyncedTxid} for case where we have an append where a sync has not yet come in<a name="line.213"></a>
-<span class="sourceLineNo">214</span>   * for it.<a name="line.214"></a>
-<span class="sourceLineNo">215</span>   */<a name="line.215"></a>
-<span class="sourceLineNo">216</span>  protected final AtomicLong highestSyncedTxid = new AtomicLong(0);<a name="line.216"></a>
-<span class="sourceLineNo">217</span><a name="line.217"></a>
-<span class="sourceLineNo">218</span>  /**<a name="line.218"></a>
-<span class="sourceLineNo">219</span>   * The total size of wal<a name="line.219"></a>
-<span class="sourceLineNo">220</span>   */<a name="line.220"></a>
-<span class="sourceLineNo">221</span>  protected final AtomicLong totalLogSize = new AtomicLong(0);<a name="line.221"></a>
-<span class="sourceLineNo">222</span>  /**<a name="line.222"></a>
-<span class="sourceLineNo">223</span>   * Current log file.<a name="line.223"></a>
-<span class="sourceLineNo">224</span>   */<a name="line.224"></a>
-<span class="sourceLineNo">225</span>  volatile W writer;<a name="line.225"></a>
-<span class="sourceLineNo">226</span><a name="line.226"></a>
-<span class="sourceLineNo">227</span>  // Last time to check low replication on hlog's pipeline<a name="line.227"></a>
-<span class="sourceLineNo">228</span>  private long lastTimeCheckLowReplication = EnvironmentEdgeManager.currentTime();<a name="line.228"></a>
-<span class="sourceLineNo">229</span><a name="line.229"></a>
-<span class="sourceLineNo">230</span>  protected volatile boolean closed = false;<a name="line.230"></a>
-<span class="sourceLineNo">231</span><a name="line.231"></a>
-<span class="sourceLineNo">232</span>  protected final AtomicBoolean shutdown = new AtomicBoolean(false);<a name="line.232"></a>
-<span class="sourceLineNo">233</span>  /**<a name="line.233"></a>
-<span class="sourceLineNo">234</span>   * WAL Comparator; it compares the timestamp (log filenum), present in the log file name. Throws<a name="line.234"></a>
-<span class="sourceLineNo">235</span>   * an IllegalArgumentException if used to compare paths from different wals.<a name="line.235"></a>
-<span class="sourceLineNo">236</span>   */<a name="line.236"></a>
-<span class="sourceLineNo">237</span>  final Comparator&lt;Path&gt; LOG_NAME_COMPARATOR =<a name="line.237"></a>
-<span class="sourceLineNo">238</span>    (o1, o2) -&gt; Long.compare(getFileNumFromFileName(o1), getFileNumFromFileName(o2));<a name="line.238"></a>
+<span class="sourceLineNo">204</span>  // The timestamp (in ms) when the log file was created.<a name="line.204"></a>
+<span class="sourceLineNo">205</span>  protected final AtomicLong filenum = new AtomicLong(-1);<a name="line.205"></a>
+<span class="sourceLineNo">206</span><a name="line.206"></a>
+<span class="sourceLineNo">207</span>  // Number of transactions in the current Wal.<a name="line.207"></a>
+<span class="sourceLineNo">208</span>  protected final AtomicInteger numEntries = new AtomicInteger(0);<a name="line.208"></a>
+<span class="sourceLineNo">209</span><a name="line.209"></a>
+<span class="sourceLineNo">210</span>  /**<a name="line.210"></a>
+<span class="sourceLineNo">211</span>   * The highest known outstanding unsync'd WALEdit transaction id. Usually, we use a queue to pass<a name="line.211"></a>
+<span class="sourceLineNo">212</span>   * WALEdit to background consumer thread, and the transaction id is the sequence number of the<a name="line.212"></a>
+<span class="sourceLineNo">213</span>   * corresponding entry in queue.<a name="line.213"></a>
+<span class="sourceLineNo">214</span>   */<a name="line.214"></a>
+<span class="sourceLineNo">215</span>  protected volatile long highestUnsyncedTxid = -1;<a name="line.215"></a>
+<span class="sourceLineNo">216</span><a name="line.216"></a>
+<span class="sourceLineNo">217</span>  /**<a name="line.217"></a>
+<span class="sourceLineNo">218</span>   * Updated to the transaction id of the last successful sync call. This can be less than<a name="line.218"></a>
+<span class="sourceLineNo">219</span>   * {@link #highestUnsyncedTxid} for case where we have an append where a sync has not yet come in<a name="line.219"></a>
+<span class="sourceLineNo">220</span>   * for it.<a name="line.220"></a>
+<span class="sourceLineNo">221</span>   */<a name="line.221"></a>
+<span class="sourceLineNo">222</span>  protected final AtomicLong highestSyncedTxid = new AtomicLong(0);<a name="line.222"></a>
+<span class="sourceLineNo">223</span><a name="line.223"></a>
+<span class="sourceLineNo">224</span>  /**<a name="line.224"></a>
+<span class="sourceLineNo">225</span>   * The total size of wal<a name="line.225"></a>
+<span class="sourceLineNo">226</span>   */<a name="line.226"></a>
+<span class="sourceLineNo">227</span>  protected final AtomicLong totalLogSize = new AtomicLong(0);<a name="line.227"></a>
+<span class="sourceLineNo">228</span>  /**<a name="line.228"></a>
+<span class="sourceLineNo">229</span>   * Current log file.<a name="line.229"></a>
+<span class="sourceLineNo">230</span>   */<a name="line.230"></a>
+<span class="sourceLineNo">231</span>  volatile W writer;<a name="line.231"></a>
+<span class="sourceLineNo">232</span><a name="line.232"></a>
+<span class="sourceLineNo">233</span>  // Last time to check low replication on hlog's pipeline<a name="line.233"></a>
+<span class="sourceLineNo">234</span>  private long lastTimeCheckLowReplication = EnvironmentEdgeManager.currentTime();<a name="line.234"></a>
+<span class="sourceLineNo">235</span><a name="line.235"></a>
+<span class="sourceLineNo">236</span>  protected volatile boolean closed = false;<a name="line.236"></a>
+<span class="sourceLineNo">237</span><a name="line.237"></a>
+<span class="sourceLineNo">238</span>  protected final AtomicBoolean shutdown = new AtomicBoolean(false);<a name="line.238"></a>
 <span class="sourceLineNo">239</span><a name="line.239"></a>
-<span class="sourceLineNo">240</span>  private static final class WalProps {<a name="line.240"></a>
+<span class="sourceLineNo">240</span>  private long nextLogTooOldNs = System.nanoTime();<a name="line.240"></a>
 <span class="sourceLineNo">241</span><a name="line.241"></a>
-<span class="sourceLineNo">242</span>    /**<a name="line.242"></a>
-<span class="sourceLineNo">243</span>     * Map the encoded region name to the highest sequence id. Contain all the regions it has<a name="line.243"></a>
-<span class="sourceLineNo">244</span>     * entries of<a name="line.244"></a>
-<span class="sourceLineNo">245</span>     */<a name="line.245"></a>
-<span class="sourceLineNo">246</span>    public final Map&lt;byte[], Long&gt; encodedName2HighestSequenceId;<a name="line.246"></a>
-<span class="sourceLineNo">247</span><a name="line.247"></a>
-<span class="sourceLineNo">248</span>    /**<a name="line.248"></a>
-<span class="sourceLineNo">249</span>     * The log file size. Notice that the size may not be accurate if we do asynchronous close in<a name="line.249"></a>
-<span class="sourceLineNo">250</span>     * sub classes.<a name="line.250"></a>
-<span class="sourceLineNo">251</span>     */<a name="line.251"></a>
-<span class="sourceLineNo">252</span>    public final long logSize;<a name="line.252"></a>
-<span class="sourceLineNo">253</span><a name="line.253"></a>
-<span class="sourceLineNo">254</span>    public WalProps(Map&lt;byte[], Long&gt; encodedName2HighestSequenceId, long logSize) {<a name="line.254"></a>
-<span class="sourceLineNo">255</span>      this.encodedName2HighestSequenceId = encodedName2HighestSequenceId;<a name="line.255"></a>
-<span class="sourceLineNo">256</span>      this.logSize = logSize;<a name="line.256"></a>
-<span class="sourceLineNo">257</span>    }<a name="line.257"></a>
-<span class="sourceLineNo">258</span>  }<a name="line.258"></a>
-<span class="sourceLineNo">259</span><a name="line.259"></a>
-<span class="sourceLineNo">260</span>  /**<a name="line.260"></a>
-<span class="sourceLineNo">261</span>   * Map of WAL log file to properties. The map is sorted by the log file creation timestamp<a name="line.261"></a>
-<span class="sourceLineNo">262</span>   * (contained in the log file name).<a name="line.262"></a>
-<span class="sourceLineNo">263</span>   */<a name="line.263"></a>
-<span class="sourceLineNo">264</span>  protected ConcurrentNavigableMap&lt;Path, WalProps&gt; walFile2Props =<a name="line.264"></a>
-<span class="sourceLineNo">265</span>    new ConcurrentSkipListMap&lt;&gt;(LOG_NAME_COMPARATOR);<a name="line.265"></a>
-<span class="sourceLineNo">266</span><a name="line.266"></a>
-<span class="sourceLineNo">267</span>  /**<a name="line.267"></a>
-<span class="sourceLineNo">268</span>   * Map of {@link SyncFuture}s owned by Thread objects. Used so we reuse SyncFutures.<a name="line.268"></a>
-<span class="sourceLineNo">269</span>   * Thread local is used so JVM can GC the terminated thread for us. See HBASE-21228<a name="line.269"></a>
-<span class="sourceLineNo">270</span>   * &lt;p&gt;<a name="line.270"></a>
-<span class="sourceLineNo">271</span>   */<a name="line.271"></a>
-<span class="sourceLineNo">272</span>  private final ThreadLocal&lt;SyncFuture&gt; cachedSyncFutures;<a name="line.272"></a>
-<span class="sourceLineNo">273</span><a name="line.273"></a>
-<span class="sourceLineNo">274</span>  /**<a name="line.274"></a>
-<span class="sourceLineNo">275</span>   * The class name of the runtime implementation, used as prefix for logging/tracing.<a name="line.275"></a>
-<span class="sourceLineNo">276</span>   * &lt;p&gt;<a name="line.276"></a>
-<span class="sourceLineNo">277</span>   * Performance testing shows getClass().getSimpleName() might be a bottleneck so we store it here,<a name="line.277"></a>
-<span class="sourceLineNo">278</span>   * refer to HBASE-17676 for more details<a name="line.278"></a>
-<span class="sourceLineNo">279</span>   * &lt;/p&gt;<a name="line.279"></a>
-<span class="sourceLineNo">280</span>   */<a name="line.280"></a>
-<span class="sourceLineNo">281</span>  protected final String implClassName;<a name="line.281"></a>
-<span class="sourceLineNo">282</span><a name="line.282"></a>
-<span class="sourceLineNo">283</span>  public long getFilenum() {<a name="line.283"></a>
-<span class="sourceLineNo">284</span>    return this.filenum.get();<a name="line.284"></a>
-<span class="sourceLineNo">285</span>  }<a name="line.285"></a>
-<span class="sourceLineNo">286</span><a name="line.286"></a>
-<span class="sourceLineNo">287</span>  /**<a name="line.287"></a>
-<span class="sourceLineNo">288</span>   * A log file has a creation timestamp (in ms) in its file name ({@link #filenum}. This helper<a name="line.288"></a>
-<span class="sourceLineNo">289</span>   * method returns the creation timestamp from a given log file. It extracts the timestamp assuming<a name="line.289"></a>
-<span class="sourceLineNo">290</span>   * the filename is created with the {@link #computeFilename(long filenum)} method.<a name="line.290"></a>
-<span class="sourceLineNo">291</span>   * @return timestamp, as in the log file name.<a name="line.291"></a>
-<span class="sourceLineNo">292</span>   */<a name="line.292"></a>
-<span class="sourceLineNo">293</span>  protected long getFileNumFromFileName(Path fileName) {<a name="line.293"></a>
-<span class="sourceLineNo">294</span>    checkNotNull(fileName, "file name can't be null");<a name="line.294"></a>
-<span class="sourceLineNo">295</span>    if (!ourFiles.accept(fileName)) {<a name="line.295"></a>
-<span class="sourceLineNo">296</span>      throw new IllegalArgumentException(<a name="line.296"></a>
-<span class="sourceLineNo">297</span>          "The log file " + fileName + " doesn't belong to this WAL. (" + toString() + ")");<a name="line.297"></a>
-<span class="sourceLineNo">298</span>    }<a name="line.298"></a>
-<span class="sourceLineNo">299</span>    final String fileNameString = fileName.toString();<a name="line.299"></a>
-<span class="sourceLineNo">300</span>    String chompedPath = fileNameString.substring(prefixPathStr.length(),<a name="line.300"></a>
-<span class="sourceLineNo">301</span>      (fileNameString.length() - walFileSuffix.length()));<a name="line.301"></a>
-<span class="sourceLineNo">302</span>    return Long.parseLong(chompedPath);<a name="line.302"></a>
-<span class="sourceLineNo">303</span>  }<a name="line.303"></a>
-<span class="sourceLineNo">304</span><a name="line.304"></a>
-<span class="sourceLineNo">305</span>  private int calculateMaxLogFiles(Configuration conf, long logRollSize) {<a name="line.305"></a>
-<span class="sourceLineNo">306</span>    Pair&lt;Long, MemoryType&gt; globalMemstoreSize = MemorySizeUtil.getGlobalMemStoreSize(conf);<a name="line.306"></a>
-<span class="sourceLineNo">307</span>    return (int) ((globalMemstoreSize.getFirst() * 2) / logRollSize);<a name="line.307"></a>
-<span class="sourceLineNo">308</span>  }<a name="line.308"></a>
-<span class="sourceLineNo">309</span><a name="line.309"></a>
-<span class="sourceLineNo">310</span>  // must be power of 2<a name="line.310"></a>
-<span class="sourceLineNo">311</span>  protected final int getPreallocatedEventCount() {<a name="line.311"></a>
-<span class="sourceLineNo">312</span>    // Preallocate objects to use on the ring buffer. The way that appends and syncs work, we will<a name="line.312"></a>
-<span class="sourceLineNo">313</span>    // be stuck and make no progress if the buffer is filled with appends only and there is no<a name="line.313"></a>
-<span class="sourceLineNo">314</span>    // sync. If no sync, then the handlers will be outstanding just waiting on sync completion<a name="line.314"></a>
-<span class="sourceLineNo">315</span>    // before they return.<a name="line.315"></a>
-<span class="sourceLineNo">316</span>    int preallocatedEventCount =<a name="line.316"></a>
-<span class="sourceLineNo">317</span>      this.conf.getInt("hbase.regionserver.wal.disruptor.event.count", 1024 * 16);<a name="line.317"></a>
-<span class="sourceLineNo">318</span>    checkArgument(preallocatedEventCount &gt;= 0,<a name="line.318"></a>
-<span class="sourceLineNo">319</span>      "hbase.regionserver.wal.disruptor.event.count must &gt; 0");<a name="line.319"></a>
-<span class="sourceLineNo">320</span>    int floor = Integer.highestOneBit(preallocatedEventCount);<a name="line.320"></a>
-<span class="sourceLineNo">321</span>    if (floor == preallocatedEventCount) {<a name="line.321"></a>
-<span class="sourceLineNo">322</span>      return floor;<a name="line.322"></a>
-<span class="sourceLineNo">323</span>    }<a name="line.323"></a>
-<span class="sourceLineNo">324</span>    // max capacity is 1 &lt;&lt; 30<a name="line.324"></a>
-<span class="sourceLineNo">325</span>    if (floor &gt;= 1 &lt;&lt; 29) {<a name="line.325"></a>
-<span class="sourceLineNo">326</span>      return 1 &lt;&lt; 30;<a name="line.326"></a>
-<span class="sourceLineNo">327</span>    }<a name="line.327"></a>
-<span class="sourceLineNo">328</span>    return floor &lt;&lt; 1;<a name="line.328"></a>
-<span class="sourceLineNo">329</span>  }<a name="line.329"></a>
-<span class="sourceLineNo">330</span><a name="line.330"></a>
-<span class="sourceLineNo">331</span>  protected AbstractFSWAL(final FileSystem fs, final Path rootDir, final String logDir,<a name="line.331"></a>
-<span class="sourceLineNo">332</span>      final String archiveDir, final Configuration conf, final List&lt;WALActionsListener&gt; listeners,<a name="line.332"></a>
-<span class="sourceLineNo">333</span>      final boolean failIfWALExists, final String prefix, final String suffix)<a name="line.333"></a>
-<span class="sourceLineNo">334</span>      throws FailedLogCloseException, IOException {<a name="line.334"></a>
-<span class="sourceLineNo">335</span>    this.fs = fs;<a name="line.335"></a>
-<span class="sourceLineNo">336</span>    this.walDir = new Path(rootDir, logDir);<a name="line.336"></a>
-<span class="sourceLineNo">337</span>    this.walArchiveDir = new Path(rootDir, archiveDir);<a name="line.337"></a>
-<span class="sourceLineNo">338</span>    this.conf = conf;<a name="line.338"></a>
-<span class="sourceLineNo">339</span><a name="line.339"></a>
-<span class="sourceLineNo">340</span>    if (!fs.exists(walDir) &amp;&amp; !fs.mkdirs(walDir)) {<a name="line.340"></a>
-<span class="sourceLineNo">341</span>      throw new IOException("Unable to mkdir " + walDir);<a name="line.341"></a>
+<span class="sourceLineNo">242</span>  /**<a name="line.242"></a>
+<span class="sourceLineNo">243</span>   * WAL Comparator; it compares the timestamp (log filenum), present in the log file name. Throws<a name="line.243"></a>
+<span class="sourceLineNo">244</span>   * an IllegalArgumentException if used to compare paths from different wals.<a name="line.244"></a>
+<span class="sourceLineNo">245</span>   */<a name="line.245"></a>
+<span class="sourceLineNo">246</span>  final Comparator&lt;Path&gt; LOG_NAME_COMPARATOR =<a name="line.246"></a>
+<span class="sourceLineNo">247</span>    (o1, o2) -&gt; Long.compare(getFileNumFromFileName(o1), getFileNumFromFileName(o2));<a name="line.247"></a>
+<span class="sourceLineNo">248</span><a name="line.248"></a>
+<span class="sourceLineNo">249</span>  private static final class WalProps {<a name="line.249"></a>
+<span class="sourceLineNo">250</span><a name="line.250"></a>
+<span class="sourceLineNo">251</span>    /**<a name="line.251"></a>
+<span class="sourceLineNo">252</span>     * Map the encoded region name to the highest sequence id. Contain all the regions it has<a name="line.252"></a>
+<span class="sourceLineNo">253</span>     * entries of<a name="line.253"></a>
+<span class="sourceLineNo">254</span>     */<a name="line.254"></a>
+<span class="sourceLineNo">255</span>    public final Map&lt;byte[], Long&gt; encodedName2HighestSequenceId;<a name="line.255"></a>
+<span class="sourceLineNo">256</span><a name="line.256"></a>
+<span class="sourceLineNo">257</span>    /**<a name="line.257"></a>
+<span class="sourceLineNo">258</span>     * The log file size. Notice that the size may not be accurate if we do asynchronous close in<a name="line.258"></a>
+<span class="sourceLineNo">259</span>     * sub classes.<a name="line.259"></a>
+<span class="sourceLineNo">260</span>     */<a name="line.260"></a>
+<span class="sourceLineNo">261</span>    public final long logSize;<a name="line.261"></a>
+<span class="sourceLineNo">262</span><a name="line.262"></a>
+<span class="sourceLineNo">263</span>    /**<a name="line.263"></a>
+<span class="sourceLineNo">264</span>     * The nanoTime of the log rolling, used to determine the time interval that has passed since.<a name="line.264"></a>
+<span class="sourceLineNo">265</span>     */<a name="line.265"></a>
+<span class="sourceLineNo">266</span>    public final long rollTimeNs;<a name="line.266"></a>
+<span class="sourceLineNo">267</span><a name="line.267"></a>
+<span class="sourceLineNo">268</span>    public WalProps(Map&lt;byte[], Long&gt; encodedName2HighestSequenceId, long logSize) {<a name="line.268"></a>
+<span class="sourceLineNo">269</span>      this.encodedName2HighestSequenceId = encodedName2HighestSequenceId;<a name="line.269"></a>
+<span class="sourceLineNo">270</span>      this.logSize = logSize;<a name="line.270"></a>
+<span class="sourceLineNo">271</span>      this.rollTimeNs = System.nanoTime();<a name="line.271"></a>
+<span class="sourceLineNo">272</span>    }<a name="line.272"></a>
+<span class="sourceLineNo">273</span>  }<a name="line.273"></a>
+<span class="sourceLineNo">274</span><a name="line.274"></a>
+<span class="sourceLineNo">275</span>  /**<a name="line.275"></a>
+<span class="sourceLineNo">276</span>   * Map of WAL log file to properties. The map is sorted by the log file creation timestamp<a name="line.276"></a>
+<span class="sourceLineNo">277</span>   * (contained in the log file name).<a name="line.277"></a>
+<span class="sourceLineNo">278</span>   */<a name="line.278"></a>
+<span class="sourceLineNo">279</span>  protected ConcurrentNavigableMap&lt;Path, WalProps&gt; walFile2Props =<a name="line.279"></a>
+<span class="sourceLineNo">280</span>    new ConcurrentSkipListMap&lt;&gt;(LOG_NAME_COMPARATOR);<a name="line.280"></a>
+<span class="sourceLineNo">281</span><a name="line.281"></a>
+<span class="sourceLineNo">282</span>  /**<a name="line.282"></a>
+<span class="sourceLineNo">283</span>   * Map of {@link SyncFuture}s owned by Thread objects. Used so we reuse SyncFutures.<a name="line.283"></a>
+<span class="sourceLineNo">284</span>   * Thread local is used so JVM can GC the terminated thread for us. See HBASE-21228<a name="line.284"></a>
+<span class="sourceLineNo">285</span>   * &lt;p&gt;<a name="line.285"></a>
+<span class="sourceLineNo">286</span>   */<a name="line.286"></a>
+<span class="sourceLineNo">287</span>  private final ThreadLocal&lt;SyncFuture&gt; cachedSyncFutures;<a name="line.287"></a>
+<span class="sourceLineNo">288</span><a name="line.288"></a>
+<span class="sourceLineNo">289</span>  /**<a name="line.289"></a>
+<span class="sourceLineNo">290</span>   * The class name of the runtime implementation, used as prefix for logging/tracing.<a name="line.290"></a>
+<span class="sourceLineNo">291</span>   * &lt;p&gt;<a name="line.291"></a>
+<span class="sourceLineNo">292</span>   * Performance testing shows getClass().getSimpleName() might be a bottleneck so we store it here,<a name="line.292"></a>
+<span class="sourceLineNo">293</span>   * refer to HBASE-17676 for more details<a name="line.293"></a>
+<span class="sourceLineNo">294</span>   * &lt;/p&gt;<a name="line.294"></a>
+<span class="sourceLineNo">295</span>   */<a name="line.295"></a>
+<span class="sourceLineNo">296</span>  protected final String implClassName;<a name="line.296"></a>
+<span class="sourceLineNo">297</span><a name="line.297"></a>
+<span class="sourceLineNo">298</span>  public long getFilenum() {<a name="line.298"></a>
+<span class="sourceLineNo">299</span>    return this.filenum.get();<a name="line.299"></a>
+<span class="sourceLineNo">300</span>  }<a name="line.300"></a>
+<span class="sourceLineNo">301</span><a name="line.301"></a>
+<span class="sourceLineNo">302</span>  /**<a name="line.302"></a>
+<span class="sourceLineNo">303</span>   * A log file has a creation timestamp (in ms) in its file name ({@link #filenum}. This helper<a name="line.303"></a>
+<span class="sourceLineNo">304</span>   * method returns the creation timestamp from a given log file. It extracts the timestamp assuming<a name="line.304"></a>
+<span class="sourceLineNo">305</span>   * the filename is created with the {@link #computeFilename(long filenum)} method.<a name="line.305"></a>
+<span class="sourceLineNo">306</span>   * @return timestamp, as in the log file name.<a name="line.306"></a>
+<span class="sourceLineNo">307</span>   */<a name="line.307"></a>
+<span class="sourceLineNo">308</span>  protected long getFileNumFromFileName(Path fileName) {<a name="line.308"></a>
+<span class="sourceLineNo">309</span>    checkNotNull(fileName, "file name can't be null");<a name="line.309"></a>
+<span class="sourceLineNo">310</span>    if (!ourFiles.accept(fileName)) {<a name="line.310"></a>
+<span class="sourceLineNo">311</span>      throw new IllegalArgumentException(<a name="line.311"></a>
+<span class="sourceLineNo">312</span>          "The log file " + fileName + " doesn't belong to this WAL. (" + toString() + ")");<a name="line.312"></a>
+<span class="sourceLineNo">313</span>    }<a name="line.313"></a>
+<span class="sourceLineNo">314</span>    final String fileNameString = fileName.toString();<a name="line.314"></a>
+<span class="sourceLineNo">315</span>    String chompedPath = fileNameString.substring(prefixPathStr.length(),<a name="line.315"></a>
+<span class="sourceLineNo">316</span>      (fileNameString.length() - walFileSuffix.length()));<a name="line.316"></a>
+<span class="sourceLineNo">317</span>    return Long.parseLong(chompedPath);<a name="line.317"></a>
+<span class="sourceLineNo">318</span>  }<a name="line.318"></a>
+<span class="sourceLineNo">319</span><a name="line.319"></a>
+<span class="sourceLineNo">320</span>  private int calculateMaxLogFiles(Configuration conf, long logRollSize) {<a name="line.320"></a>
+<span class="sourceLineNo">321</span>    Pair&lt;Long, MemoryType&gt; globalMemstoreSize = MemorySizeUtil.getGlobalMemStoreSize(conf);<a name="line.321"></a>
+<span class="sourceLineNo">322</span>    return (int) ((globalMemstoreSize.getFirst() * 2) / logRollSize);<a name="line.322"></a>
+<span class="sourceLineNo">323</span>  }<a name="line.323"></a>
+<span class="sourceLineNo">324</span><a name="line.324"></a>
+<span class="sourceLineNo">325</span>  // must be power of 2<a name="line.325"></a>
+<span class="sourceLineNo">326</span>  protected final int getPreallocatedEventCount() {<a name="line.326"></a>
+<span class="sourceLineNo">327</span>    // Preallocate objects to use on the ring buffer. The way that appends and syncs work, we will<a name="line.327"></a>
+<span class="sourceLineNo">328</span>    // be stuck and make no progress if the buffer is filled with appends only and there is no<a name="line.328"></a>
+<span class="sourceLineNo">329</span>    // sync. If no sync, then the handlers will be outstanding just waiting on sync completion<a name="line.329"></a>
+<span class="sourceLineNo">330</span>    // before they return.<a name="line.330"></a>
+<span class="sourceLineNo">331</span>    int preallocatedEventCount =<a name="line.331"></a>
+<span class="sourceLineNo">332</span>      this.conf.getInt("hbase.regionserver.wal.disruptor.event.count", 1024 * 16);<a name="line.332"></a>
+<span class="sourceLineNo">333</span>    checkArgument(preallocatedEventCount &gt;= 0,<a name="line.333"></a>
+<span class="sourceLineNo">334</span>      "hbase.regionserver.wal.disruptor.event.count must &gt; 0");<a name="line.334"></a>
+<span class="sourceLineNo">335</span>    int floor = Integer.highestOneBit(preallocatedEventCount);<a name="line.335"></a>
+<span class="sourceLineNo">336</span>    if (floor == preallocatedEventCount) {<a name="line.336"></a>
+<span class="sourceLineNo">337</span>      return floor;<a name="line.337"></a>
+<span class="sourceLineNo">338</span>    }<a name="line.338"></a>
+<span class="sourceLineNo">339</span>    // max capacity is 1 &lt;&lt; 30<a name="line.339"></a>
+<span class="sourceLineNo">340</span>    if (floor &gt;= 1 &lt;&lt; 29) {<a name="line.340"></a>
+<span class="sourceLineNo">341</span>      return 1 &lt;&lt; 30;<a name="line.341"></a>
 <span class="sourceLineNo">342</span>    }<a name="line.342"></a>
-<span class="sourceLineNo">343</span><a name="line.343"></a>
-<span class="sourceLineNo">344</span>    if (!fs.exists(this.walArchiveDir)) {<a name="line.344"></a>
-<span class="sourceLineNo">345</span>      if (!fs.mkdirs(this.walArchiveDir)) {<a name="line.345"></a>
-<span class="sourceLineNo">346</span>        throw new IOException("Unable to mkdir " + this.walArchiveDir);<a name="line.346"></a>
-<span class="sourceLineNo">347</span>      }<a name="line.347"></a>
-<span class="sourceLineNo">348</span>    }<a name="line.348"></a>
-<span class="sourceLineNo">349</span><a name="line.349"></a>
-<span class="sourceLineNo">350</span>    // If prefix is null||empty then just name it wal<a name="line.350"></a>
-<span class="sourceLineNo">351</span>    this.walFilePrefix =<a name="line.351"></a>
-<span class="sourceLineNo">352</span>      prefix == null || prefix.isEmpty() ? "wal" : URLEncoder.encode(prefix, "UTF8");<a name="line.352"></a>
-<span class="sourceLineNo">353</span>    // we only correctly differentiate suffices when numeric ones start with '.'<a name="line.353"></a>
-<span class="sourceLineNo">354</span>    if (suffix != null &amp;&amp; !(suffix.isEmpty()) &amp;&amp; !(suffix.startsWith(WAL_FILE_NAME_DELIMITER))) {<a name="line.354"></a>
-<span class="sourceLineNo">355</span>      throw new IllegalArgumentException("WAL suffix must start with '" + WAL_FILE_NAME_DELIMITER +<a name="line.355"></a>
-<span class="sourceLineNo">356</span>        "' but instead was '" + suffix + "'");<a name="line.356"></a>
+<span class="sourceLineNo">343</span>    return floor &lt;&lt; 1;<a name="line.343"></a>
+<span class="sourceLineNo">344</span>  }<a name="line.344"></a>
+<span class="sourceLineNo">345</span><a name="line.345"></a>
+<span class="sourceLineNo">346</span>  protected AbstractFSWAL(final FileSystem fs, final Path rootDir, final String logDir,<a name="line.346"></a>
+<span class="sourceLineNo">347</span>      final String archiveDir, final Configuration conf, final List&lt;WALActionsListener&gt; listeners,<a name="line.347"></a>
+<span class="sourceLineNo">348</span>      final boolean failIfWALExists, final String prefix, final String suffix)<a name="line.348"></a>
+<span class="sourceLineNo">349</span>      throws FailedLogCloseException, IOException {<a name="line.349"></a>
+<span class="sourceLineNo">350</span>    this.fs = fs;<a name="line.350"></a>
+<span class="sourceLineNo">351</span>    this.walDir = new Path(rootDir, logDir);<a name="line.351"></a>
+<span class="sourceLineNo">352</span>    this.walArchiveDir = new Path(rootDir, archiveDir);<a name="line.352"></a>
+<span class="sourceLineNo">353</span>    this.conf = conf;<a name="line.353"></a>
+<span class="sourceLineNo">354</span><a name="line.354"></a>
+<span class="sourceLineNo">355</span>    if (!fs.exists(walDir) &amp;&amp; !fs.mkdirs(walDir)) {<a name="line.355"></a>
+<span class="sourceLineNo">356</span>      throw new IOException("Unable to mkdir " + walDir);<a name="line.356"></a>
 <span class="sourceLineNo">357</span>    }<a name="line.357"></a>
-<span class="sourceLineNo">358</span>    // Now that it exists, set the storage policy for the entire directory of wal files related to<a name="line.358"></a>
-<span class="sourceLineNo">359</span>    // this FSHLog instance<a name="line.359"></a>
-<span class="sourceLineNo">360</span>    String storagePolicy =<a name="line.360"></a>
-<span class="sourceLineNo">361</span>        conf.get(HConstants.WAL_STORAGE_POLICY, HConstants.DEFAULT_WAL_STORAGE_POLICY);<a name="line.361"></a>
-<span class="sourceLineNo">362</span>    CommonFSUtils.setStoragePolicy(fs, this.walDir, storagePolicy);<a name="line.362"></a>
-<span class="sourceLineNo">363</span>    this.walFileSuffix = (suffix == null) ? "" : URLEncoder.encode(suffix, "UTF8");<a name="line.363"></a>
-<span class="sourceLineNo">364</span>    this.prefixPathStr = new Path(walDir, walFilePrefix + WAL_FILE_NAME_DELIMITER).toString();<a name="line.364"></a>
-<span class="sourceLineNo">365</span><a name="line.365"></a>
-<span class="sourceLineNo">366</span>    this.ourFiles = new PathFilter() {<a name="line.366"></a>
-<span class="sourceLineNo">367</span>      @Override<a name="line.367"></a>
-<span class="sourceLineNo">368</span>      public boolean accept(final Path fileName) {<a name="line.368"></a>
-<span class="sourceLineNo">369</span>        // The path should start with dir/&lt;prefix&gt; and end with our suffix<a name="line.369"></a>
-<span class="sourceLineNo">370</span>        final String fileNameString = fileName.toString();<a name="line.370"></a>
-<span class="sourceLineNo">371</span>        if (!fileNameString.startsWith(prefixPathStr)) {<a name="line.371"></a>
-<span class="sourceLineNo">372</span>          return false;<a name="line.372"></a>
-<span class="sourceLineNo">373</span>        }<a name="line.373"></a>
-<span class="sourceLineNo">374</span>        if (walFileSuffix.isEmpty()) {<a name="line.374"></a>
-<span class="sourceLineNo">375</span>          // in the case of the null suffix, we need to ensure the filename ends with a timestamp.<a name="line.375"></a>
-<span class="sourceLineNo">376</span>          return org.apache.commons.lang3.StringUtils<a name="line.376"></a>
-<span class="sourceLineNo">377</span>              .isNumeric(fileNameString.substring(prefixPathStr.length()));<a name="line.377"></a>
-<span class="sourceLineNo">378</span>        } else if (!fileNameString.endsWith(walFileSuffix)) {<a name="line.378"></a>
-<span class="sourceLineNo">379</span>          return false;<a name="line.379"></a>
-<span class="sourceLineNo">380</span>        }<a name="line.380"></a>
-<span class="sourceLineNo">381</span>        return true;<a name="line.381"></a>
-<span class="sourceLineNo">382</span>      }<a name="line.382"></a>
-<span class="sourceLineNo">383</span>    };<a name="line.383"></a>
-<span class="sourceLineNo">384</span><a name="line.384"></a>
-<span class="sourceLineNo">385</span>    if (failIfWALExists) {<a name="line.385"></a>
-<span class="sourceLineNo">386</span>      final FileStatus[] walFiles = CommonFSUtils.listStatus(fs, walDir, ourFiles);<a name="line.386"></a>
-<span class="sourceLineNo">387</span>      if (null != walFiles &amp;&amp; 0 != walFiles.length) {<a name="line.387"></a>
-<span class="sourceLineNo">388</span>        throw new IOException("Target WAL already exists within directory " + walDir);<a name="line.388"></a>
-<span class="sourceLineNo">389</span>      }<a name="line.389"></a>
-<span class="sourceLineNo">390</span>    }<a name="line.390"></a>
-<span class="sourceLineNo">391</span><a name="line.391"></a>
-<span class="sourceLineNo">392</span>    // Register listeners. TODO: Should this exist anymore? We have CPs?<a name="line.392"></a>
-<span class="sourceLineNo">393</span>    if (listeners != null) {<a name="line.393"></a>
-<span class="sourceLineNo">394</span>      for (WALActionsListener i : listeners) {<a name="line.394"></a>
-<span class="sourceLineNo">395</span>        registerWALActionsListener(i);<a name="line.395"></a>
-<span class="sourceLineNo">396</span>      }<a name="line.396"></a>
-<span class="sourceLineNo">397</span>    }<a name="line.397"></a>
-<span class="sourceLineNo">398</span>    this.coprocessorHost = new WALCoprocessorHost(this, conf);<a name="line.398"></a>
+<span class="sourceLineNo">358</span><a name="line.358"></a>
+<span class="sourceLineNo">359</span>    if (!fs.exists(this.walArchiveDir)) {<a name="line.359"></a>
+<span class="sourceLineNo">360</span>      if (!fs.mkdirs(this.walArchiveDir)) {<a name="line.360"></a>
+<span class="sourceLineNo">361</span>        throw new IOException("Unable to mkdir " + this.walArchiveDir);<a name="line.361"></a>
+<span class="sourceLineNo">362</span>      }<a name="line.362"></a>
+<span class="sourceLineNo">363</span>    }<a name="line.363"></a>
+<span class="sourceLineNo">364</span><a name="line.364"></a>
+<span class="sourceLineNo">365</span>    // If prefix is null||empty then just name it wal<a name="line.365"></a>
+<span class="sourceLineNo">366</span>    this.walFilePrefix =<a name="line.366"></a>
+<span class="sourceLineNo">367</span>      prefix == null || prefix.isEmpty() ? "wal" : URLEncoder.encode(prefix, "UTF8");<a name="line.367"></a>
+<span class="sourceLineNo">368</span>    // we only correctly differentiate suffices when numeric ones start with '.'<a name="line.368"></a>
+<span class="sourceLineNo">369</span>    if (suffix != null &amp;&amp; !(suffix.isEmpty()) &amp;&amp; !(suffix.startsWith(WAL_FILE_NAME_DELIMITER))) {<a name="line.369"></a>
+<span class="sourceLineNo">370</span>      throw new IllegalArgumentException("WAL suffix must start with '" + WAL_FILE_NAME_DELIMITER +<a name="line.370"></a>
+<span class="sourceLineNo">371</span>        "' but instead was '" + suffix + "'");<a name="line.371"></a>
+<span class="sourceLineNo">372</span>    }<a name="line.372"></a>
+<span class="sourceLineNo">373</span>    // Now that it exists, set the storage policy for the entire directory of wal files related to<a name="line.373"></a>
+<span class="sourceLineNo">374</span>    // this FSHLog instance<a name="line.374"></a>
+<span class="sourceLineNo">375</span>    String storagePolicy =<a name="line.375"></a>
+<span class="sourceLineNo">376</span>        conf.get(HConstants.WAL_STORAGE_POLICY, HConstants.DEFAULT_WAL_STORAGE_POLICY);<a name="line.376"></a>
+<span class="sourceLineNo">377</span>    CommonFSUtils.setStoragePolicy(fs, this.walDir, storagePolicy);<a name="line.377"></a>
+<span class="sourceLineNo">378</span>    this.walFileSuffix = (suffix == null) ? "" : URLEncoder.encode(suffix, "UTF8");<a name="line.378"></a>
+<span class="sourceLineNo">379</span>    this.prefixPathStr = new Path(walDir, walFilePrefix + WAL_FILE_NAME_DELIMITER).toString();<a name="line.379"></a>
+<span class="sourceLineNo">380</span><a name="line.380"></a>
+<span&nb