You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by gi...@apache.org on 2019/10/14 14:46:01 UTC

[hbase-site] branch asf-site updated: Published site at 6aec958d66fe88be8cbc175f52162645d22e996f.

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

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


The following commit(s) were added to refs/heads/asf-site by this push:
     new 9c7e950  Published site at 6aec958d66fe88be8cbc175f52162645d22e996f.
9c7e950 is described below

commit 9c7e950835402b8e43b72400e4875137184b833f
Author: jenkins <bu...@apache.org>
AuthorDate: Mon Oct 14 14:45:46 2019 +0000

    Published site at 6aec958d66fe88be8cbc175f52162645d22e996f.
---
 acid-semantics.html                                |    2 +-
 apache_hbase_reference_guide.pdf                   |    4 +-
 book.html                                          |    2 +-
 bulk-loads.html                                    |    2 +-
 checkstyle-aggregate.html                          |   10 +-
 coc.html                                           |    2 +-
 dependencies.html                                  |    2 +-
 dependency-convergence.html                        |    2 +-
 dependency-info.html                               |    2 +-
 dependency-management.html                         |    2 +-
 devapidocs/constant-values.html                    |    4 +-
 devapidocs/index-all.html                          |    8 +-
 .../apache/hadoop/hbase/backup/package-tree.html   |    4 +-
 .../apache/hadoop/hbase/client/package-tree.html   |   20 +-
 .../hadoop/hbase/coprocessor/package-tree.html     |    2 +-
 .../apache/hadoop/hbase/executor/package-tree.html |    2 +-
 .../apache/hadoop/hbase/filter/package-tree.html   |   10 +-
 .../hadoop/hbase/hbtop/field/package-tree.html     |    2 +-
 .../hadoop/hbase/hbtop/terminal/package-tree.html  |    2 +-
 .../apache/hadoop/hbase/io/hfile/package-tree.html |    6 +-
 .../org/apache/hadoop/hbase/ipc/package-tree.html  |    2 +-
 .../hadoop/hbase/mapreduce/package-tree.html       |    2 +-
 .../hadoop/hbase/master/balancer/package-tree.html |    2 +-
 .../apache/hadoop/hbase/master/package-tree.html   |    4 +-
 .../hbase/master/procedure/package-tree.html       |    4 +-
 .../org/apache/hadoop/hbase/package-tree.html      |   16 +-
 .../hadoop/hbase/procedure2/package-tree.html      |    2 +-
 .../apache/hadoop/hbase/quotas/package-tree.html   |    6 +-
 .../regionserver/HStore.StoreFlusherImpl.html      |   34 +-
 .../apache/hadoop/hbase/regionserver/HStore.html   |  245 ++--
 .../hbase/regionserver/class-use/HStoreFile.html   |   19 +-
 .../regionserver/class-use/StoreFileReader.html    |    7 +-
 .../hadoop/hbase/regionserver/package-tree.html    |   14 +-
 .../regionserver/querymatcher/package-tree.html    |    2 +-
 .../hbase/regionserver/wal/package-tree.html       |    4 +-
 .../replication/regionserver/package-tree.html     |    2 +-
 .../hadoop/hbase/rest/model/package-tree.html      |    2 +-
 .../hadoop/hbase/security/access/package-tree.html |    6 +-
 .../apache/hadoop/hbase/thrift/package-tree.html   |    2 +-
 .../org/apache/hadoop/hbase/util/package-tree.html |    6 +-
 .../src-html/org/apache/hadoop/hbase/Version.html  |    4 +-
 .../regionserver/HStore.StoreFlusherImpl.html      | 1207 ++++++++++----------
 .../apache/hadoop/hbase/regionserver/HStore.html   | 1207 ++++++++++----------
 downloads.html                                     |    2 +-
 export_control.html                                |    2 +-
 index.html                                         |    2 +-
 issue-tracking.html                                |    2 +-
 mail-lists.html                                    |    2 +-
 metrics.html                                       |    2 +-
 old_news.html                                      |    2 +-
 plugin-management.html                             |    2 +-
 plugins.html                                       |    2 +-
 poweredbyhbase.html                                |    2 +-
 project-info.html                                  |    2 +-
 project-reports.html                               |    2 +-
 project-summary.html                               |    2 +-
 pseudo-distributed.html                            |    2 +-
 replication.html                                   |    2 +-
 resources.html                                     |    2 +-
 source-repository.html                             |    2 +-
 sponsors.html                                      |    2 +-
 supportingprojects.html                            |    2 +-
 team-list.html                                     |    2 +-
 63 files changed, 1471 insertions(+), 1458 deletions(-)

diff --git a/acid-semantics.html b/acid-semantics.html
index 0ff1f13..439dff4 100644
--- a/acid-semantics.html
+++ b/acid-semantics.html
@@ -443,7 +443,7 @@
         <div class="row">
             <p>Copyright &copy;2007&#x2013;2019
 <a href="https://www.apache.org/">The Apache Software Foundation</a>.
-All rights reserved.        <li id="publishDate" class="pull-right">Last Published: 2019-10-13</li>
+All rights reserved.        <li id="publishDate" class="pull-right">Last Published: 2019-10-14</li>
 </p>
         </div>
         <p id="poweredBy" class="pull-right"><a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy"><img class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" /></a>
diff --git a/apache_hbase_reference_guide.pdf b/apache_hbase_reference_guide.pdf
index ac8c4a5..c43c974 100644
--- a/apache_hbase_reference_guide.pdf
+++ b/apache_hbase_reference_guide.pdf
@@ -5,8 +5,8 @@
 /Author (Apache HBase Team)
 /Creator (Asciidoctor PDF 1.5.0.alpha.15, based on Prawn 2.2.2)
 /Producer (Apache HBase Team)
-/ModDate (D:20191013143927+00'00')
-/CreationDate (D:20191013143927+00'00')
+/ModDate (D:20191014144245+00'00')
+/CreationDate (D:20191014144245+00'00')
 >>
 endobj
 2 0 obj
diff --git a/book.html b/book.html
index 3d872fb..bfb261b 100644
--- a/book.html
+++ b/book.html
@@ -43835,7 +43835,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-10-13 14:29:56 UTC
+Last updated 2019-10-14 14:32:00 UTC
 </div>
 </div>
 </body>
diff --git a/bulk-loads.html b/bulk-loads.html
index 9b6289b..742f115 100644
--- a/bulk-loads.html
+++ b/bulk-loads.html
@@ -148,7 +148,7 @@
         <div class="row">
             <p>Copyright &copy;2007&#x2013;2019
 <a href="https://www.apache.org/">The Apache Software Foundation</a>.
-All rights reserved.        <li id="publishDate" class="pull-right">Last Published: 2019-10-13</li>
+All rights reserved.        <li id="publishDate" class="pull-right">Last Published: 2019-10-14</li>
 </p>
         </div>
         <p id="poweredBy" class="pull-right"><a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy"><img class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" /></a>
diff --git a/checkstyle-aggregate.html b/checkstyle-aggregate.html
index b82a04f..74afadb 100644
--- a/checkstyle-aggregate.html
+++ b/checkstyle-aggregate.html
@@ -60518,25 +60518,25 @@
 <td>javadoc</td>
 <td>NonEmptyAtclauseDescription</td>
 <td>At-clause should have a non-empty description.</td>
-<td>2278</td></tr>
+<td>2271</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>2392</td></tr>
+<td>2385</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>2424</td></tr>
+<td>2417</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>sizes</td>
 <td>LineLength</td>
 <td>Line is longer than 100 characters (found 102).</td>
-<td>2679</td></tr></table></div>
+<td>2672</td></tr></table></div>
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.regionserver.HStoreFile.java">org/apache/hadoop/hbase/regionserver/HStoreFile.java</h3>
 <table border="0" class="table table-striped">
@@ -92756,7 +92756,7 @@
         <div class="row">
             <p>Copyright &copy;2007&#x2013;2019
 <a href="https://www.apache.org/">The Apache Software Foundation</a>.
-All rights reserved.        <li id="publishDate" class="pull-right">Last Published: 2019-10-13</li>
+All rights reserved.        <li id="publishDate" class="pull-right">Last Published: 2019-10-14</li>
 </p>
         </div>
         <p id="poweredBy" class="pull-right"><a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy"><img class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" /></a>
diff --git a/coc.html b/coc.html
index c3fb83e..a07884b 100644
--- a/coc.html
+++ b/coc.html
@@ -217,7 +217,7 @@ email to <a class="externalLink" href="mailto:private@hbase.apache.org">the priv
         <div class="row">
             <p>Copyright &copy;2007&#x2013;2019
 <a href="https://www.apache.org/">The Apache Software Foundation</a>.
-All rights reserved.        <li id="publishDate" class="pull-right">Last Published: 2019-10-13</li>
+All rights reserved.        <li id="publishDate" class="pull-right">Last Published: 2019-10-14</li>
 </p>
         </div>
         <p id="poweredBy" class="pull-right"><a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy"><img class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" /></a>
diff --git a/dependencies.html b/dependencies.html
index 48b1286..3bc1478 100644
--- a/dependencies.html
+++ b/dependencies.html
@@ -289,7 +289,7 @@
         <div class="row">
             <p>Copyright &copy;2007&#x2013;2019
 <a href="https://www.apache.org/">The Apache Software Foundation</a>.
-All rights reserved.        <li id="publishDate" class="pull-right">Last Published: 2019-10-13</li>
+All rights reserved.        <li id="publishDate" class="pull-right">Last Published: 2019-10-14</li>
 </p>
         </div>
         <p id="poweredBy" class="pull-right"><a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy"><img class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" /></a>
diff --git a/dependency-convergence.html b/dependency-convergence.html
index 5467b1b..8610f89 100644
--- a/dependency-convergence.html
+++ b/dependency-convergence.html
@@ -534,7 +534,7 @@
         <div class="row">
             <p>Copyright &copy;2007&#x2013;2019
 <a href="https://www.apache.org/">The Apache Software Foundation</a>.
-All rights reserved.        <li id="publishDate" class="pull-right">Last Published: 2019-10-13</li>
+All rights reserved.        <li id="publishDate" class="pull-right">Last Published: 2019-10-14</li>
 </p>
         </div>
         <p id="poweredBy" class="pull-right"><a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy"><img class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" /></a>
diff --git a/dependency-info.html b/dependency-info.html
index e06b418..79d5991 100644
--- a/dependency-info.html
+++ b/dependency-info.html
@@ -170,7 +170,7 @@
         <div class="row">
             <p>Copyright &copy;2007&#x2013;2019
 <a href="https://www.apache.org/">The Apache Software Foundation</a>.
-All rights reserved.        <li id="publishDate" class="pull-right">Last Published: 2019-10-13</li>
+All rights reserved.        <li id="publishDate" class="pull-right">Last Published: 2019-10-14</li>
 </p>
         </div>
         <p id="poweredBy" class="pull-right"><a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy"><img class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" /></a>
diff --git a/dependency-management.html b/dependency-management.html
index a7c8285..869780d 100644
--- a/dependency-management.html
+++ b/dependency-management.html
@@ -898,7 +898,7 @@
         <div class="row">
             <p>Copyright &copy;2007&#x2013;2019
 <a href="https://www.apache.org/">The Apache Software Foundation</a>.
-All rights reserved.        <li id="publishDate" class="pull-right">Last Published: 2019-10-13</li>
+All rights reserved.        <li id="publishDate" class="pull-right">Last Published: 2019-10-14</li>
 </p>
         </div>
         <p id="poweredBy" class="pull-right"><a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy"><img class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" /></a>
diff --git a/devapidocs/constant-values.html b/devapidocs/constant-values.html
index 27bbe78..676963c 100644
--- a/devapidocs/constant-values.html
+++ b/devapidocs/constant-values.html
@@ -4039,14 +4039,14 @@
 <!--   -->
 </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>"Sun Oct 13 14:35:10 UTC 2019"</code></td>
+<td class="colLast"><code>"Mon Oct 14 14:38:46 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#revision">revision</a></code></td>
-<td class="colLast"><code>"9e628b715d68c180a73f89b82ef8203fd66ef39d"</code></td>
+<td class="colLast"><code>"6aec958d66fe88be8cbc175f52162645d22e996f"</code></td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><a name="org.apache.hadoop.hbase.Version.srcChecksum">
diff --git a/devapidocs/index-all.html b/devapidocs/index-all.html
index 102b785..0bdfa9c 100644
--- a/devapidocs/index-all.html
+++ b/devapidocs/index-all.html
@@ -51760,7 +51760,7 @@
 </dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/StripeStoreFileManager.html#getStorefileCount--">getStorefileCount()</a></span> - Method in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/StripeStoreFileManager.html" title="class in org.apache.hadoop.hbase.regionserver">StripeStoreFileManager</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/HStore.html#getStoreFileFieldSize-java.util.function.ToLongFunction-">getStoreFileFieldSize(ToLongFunction&lt;StoreFileReader&gt;)</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>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/HStore.html#getStorefileFieldSize-org.apache.hadoop.hbase.regionserver.HStoreFile-java.util.function.ToLongFunction-">getStorefileFieldSize(HStoreFile, ToLongFunction&lt;StoreFileReader&gt;)</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>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/RegionMetrics.html#getStoreFileIndexSize--">getStoreFileIndexSize()</a></span> - Method in interface org.apache.hadoop.hbase.<a href="org/apache/hadoop/hbase/RegionMetrics.html" title="interface in org.apache.hadoop.hbase">RegionMetrics</a></dt>
 <dd>
@@ -51848,6 +51848,8 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/snapshot/SnapshotInfo.SnapshotStats.html#getStoreFilesCount--">getStoreFilesCount()</a></span> - Method in class org.apache.hadoop.hbase.snapshot.<a href="org/apache/hadoop/hbase/snapshot/SnapshotInfo.SnapshotStats.html" title="class in org.apache.hadoop.hbase.snapshot">SnapshotInfo.SnapshotStats</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/HStore.html#getStorefilesFieldSize-java.util.function.ToLongFunction-">getStorefilesFieldSize(ToLongFunction&lt;StoreFileReader&gt;)</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>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/quotas/FileArchiverNotifierImpl.html#getStoreFilesFromSnapshot-org.apache.hadoop.hbase.snapshot.SnapshotManifest-java.util.function.Predicate-">getStoreFilesFromSnapshot(SnapshotManifest, Predicate&lt;String&gt;)</a></span> - Method in class org.apache.hadoop.hbase.quotas.<a href="org/apache/hadoop/hbase/quotas/FileArchiverNotifierImpl.html" title="class in org.apache.hadoop.hbase.quotas">FileArchiverNotifierImpl</a></dt>
 <dd>
 <div class="block">Extracts the names of the store files referenced by this snapshot which satisfy the given
@@ -53739,10 +53741,10 @@
 </dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/backup/BackupRequest.html#getTotalTasks--">getTotalTasks()</a></span> - Method in class org.apache.hadoop.hbase.backup.<a href="org/apache/hadoop/hbase/backup/BackupRequest.html" title="class in org.apache.hadoop.hbase.backup">BackupRequest</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/HStore.html#getTotalUmcompressedBytes-java.util.List-">getTotalUmcompressedBytes(List&lt;HStoreFile&gt;)</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>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/io/hfile/FixedFileTrailer.html#getTotalUncompressedBytes--">getTotalUncompressedBytes()</a></span> - Method in class org.apache.hadoop.hbase.io.hfile.<a href="org/apache/hadoop/hbase/io/hfile/FixedFileTrailer.html" title="class in org.apache.hadoop.hbase.io.hfile">FixedFileTrailer</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/HStore.html#getTotalUncompressedBytes-java.util.List-">getTotalUncompressedBytes(List&lt;HStoreFile&gt;)</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>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/StoreFileReader.html#getTotalUncompressedBytes--">getTotalUncompressedBytes()</a></span> - Method in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/StoreFileReader.html" title="class in org.apache.hadoop.hbase.regionserver">StoreFileReader</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/io/hfile/HFileBlockIndex.BlockIndexWriter.html#getTotalUncompressedSize--">getTotalUncompressedSize()</a></span> - Method in class org.apache.hadoop.hbase.io.hfile.<a href="org/apache/hadoop/hbase/io/hfile/HFileBlockIndex.BlockIndexWriter.html" title="class in org.apache.hadoop.hbase.io.hfile">HFileBlockIndex.BlockIndexWriter</a></dt>
diff --git a/devapidocs/org/apache/hadoop/hbase/backup/package-tree.html b/devapidocs/org/apache/hadoop/hbase/backup/package-tree.html
index 5e742e6..1df0480 100644
--- a/devapidocs/org/apache/hadoop/hbase/backup/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/backup/package-tree.html
@@ -168,9 +168,9 @@
 <li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true [...]
 <ul>
 <li type="circle">org.apache.hadoop.hbase.backup.<a href="../../../../../org/apache/hadoop/hbase/backup/BackupRestoreConstants.BackupCommand.html" title="enum in org.apache.hadoop.hbase.backup"><span class="typeNameLink">BackupRestoreConstants.BackupCommand</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.backup.<a href="../../../../../org/apache/hadoop/hbase/backup/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>
 </ul>
 </li>
 </ul>
diff --git a/devapidocs/org/apache/hadoop/hbase/client/package-tree.html b/devapidocs/org/apache/hadoop/hbase/client/package-tree.html
index dfbf03c..2059565 100644
--- a/devapidocs/org/apache/hadoop/hbase/client/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/client/package-tree.html
@@ -426,21 +426,21 @@
 <ul>
 <li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true [...]
 <ul>
-<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/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/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/SnapshotType.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">SnapshotType</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/RegionLocateType.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">RegionLocateType</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/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/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/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/AbstractResponse.ResponseType.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">AbstractResponse.ResponseType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/RegionLocateType.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">RegionLocateType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/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>
+<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/AsyncScanSingleRegionRpcRetryingCaller.ScanResumerState.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">AsyncScanSingleRegionRpcRetryingCaller.ScanResumerState</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/IsolationLevel.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">IsolationLevel</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/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/MasterSwitchType.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">MasterSwitchType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/RequestController.ReturnCode.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">RequestController.ReturnCode</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/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/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/CompactType.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">CompactType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/AsyncScanSingleRegionRpcRetryingCaller.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/AsyncScanSingleRegionRpcRetryingCaller.ScanResumerState.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">AsyncScanSingleRegionRpcRetryingCaller.ScanResumerState</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/IsolationLevel.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">IsolationLevel</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/TableState.State.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">TableState.State</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/SnapshotType.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">SnapshotType</span></a></li>
 </ul>
 </li>
 </ul>
diff --git a/devapidocs/org/apache/hadoop/hbase/coprocessor/package-tree.html b/devapidocs/org/apache/hadoop/hbase/coprocessor/package-tree.html
index c51f7b2..dc618a4 100644
--- a/devapidocs/org/apache/hadoop/hbase/coprocessor/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/coprocessor/package-tree.html
@@ -201,8 +201,8 @@
 <ul>
 <li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true [...]
 <ul>
-<li type="circle">org.apache.hadoop.hbase.coprocessor.<a href="../../../../../org/apache/hadoop/hbase/coprocessor/RegionObserver.MutationType.html" title="enum in org.apache.hadoop.hbase.coprocessor"><span class="typeNameLink">RegionObserver.MutationType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.coprocessor.<a href="../../../../../org/apache/hadoop/hbase/coprocessor/MetaTableMetrics.MetaTableOps.html" title="enum in org.apache.hadoop.hbase.coprocessor"><span class="typeNameLink">MetaTableMetrics.MetaTableOps</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.coprocessor.<a href="../../../../../org/apache/hadoop/hbase/coprocessor/RegionObserver.MutationType.html" title="enum in org.apache.hadoop.hbase.coprocessor"><span class="typeNameLink">RegionObserver.MutationType</span></a></li>
 </ul>
 </li>
 </ul>
diff --git a/devapidocs/org/apache/hadoop/hbase/executor/package-tree.html b/devapidocs/org/apache/hadoop/hbase/executor/package-tree.html
index 531254c..127caa7 100644
--- a/devapidocs/org/apache/hadoop/hbase/executor/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/executor/package-tree.html
@@ -104,8 +104,8 @@
 <ul>
 <li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true [...]
 <ul>
-<li type="circle">org.apache.hadoop.hbase.executor.<a href="../../../../../org/apache/hadoop/hbase/executor/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>
diff --git a/devapidocs/org/apache/hadoop/hbase/filter/package-tree.html b/devapidocs/org/apache/hadoop/hbase/filter/package-tree.html
index a06de32..7c5dc6e 100644
--- a/devapidocs/org/apache/hadoop/hbase/filter/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/filter/package-tree.html
@@ -189,13 +189,13 @@
 <ul>
 <li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true [...]
 <ul>
-<li type="circle">org.apache.hadoop.hbase.filter.<a href="../../../../../org/apache/hadoop/hbase/filter/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/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/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/BitComparator.BitwiseOp.html" title="enum in org.apache.hadoop.hbase.filter"><span class="typeNameLink">BitComparator.BitwiseOp</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.filter.<a href="../../../../../org/apache/hadoop/hbase/filter/FilterList.Operator.html" title="enum in org.apache.hadoop.hbase.filter"><span class="typeNameLink">FilterList.Operator</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.filter.<a href="../../../../../org/apache/hadoop/hbase/filter/FuzzyRowFilter.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/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/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/FuzzyRowFilter.Order.html" title="enum in org.apache.hadoop.hbase.filter"><span class="typeNameLink">FuzzyRowFilter.Order</span></a></li>
 </ul>
 </li>
 </ul>
diff --git a/devapidocs/org/apache/hadoop/hbase/hbtop/field/package-tree.html b/devapidocs/org/apache/hadoop/hbase/hbtop/field/package-tree.html
index 9eebaf0..abc40ba 100644
--- a/devapidocs/org/apache/hadoop/hbase/hbtop/field/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/hbtop/field/package-tree.html
@@ -92,8 +92,8 @@
 <ul>
 <li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true [...]
 <ul>
-<li type="circle">org.apache.hadoop.hbase.hbtop.field.<a href="../../../../../../org/apache/hadoop/hbase/hbtop/field/Field.html" title="enum in org.apache.hadoop.hbase.hbtop.field"><span class="typeNameLink">Field</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.hbtop.field.<a href="../../../../../../org/apache/hadoop/hbase/hbtop/field/FieldValueType.html" title="enum in org.apache.hadoop.hbase.hbtop.field"><span class="typeNameLink">FieldValueType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.hbtop.field.<a href="../../../../../../org/apache/hadoop/hbase/hbtop/field/Field.html" title="enum in org.apache.hadoop.hbase.hbtop.field"><span class="typeNameLink">Field</span></a></li>
 </ul>
 </li>
 </ul>
diff --git a/devapidocs/org/apache/hadoop/hbase/hbtop/terminal/package-tree.html b/devapidocs/org/apache/hadoop/hbase/hbtop/terminal/package-tree.html
index 3ddbb12..57bc13e 100644
--- a/devapidocs/org/apache/hadoop/hbase/hbtop/terminal/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/hbtop/terminal/package-tree.html
@@ -107,8 +107,8 @@
 <ul>
 <li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true [...]
 <ul>
-<li type="circle">org.apache.hadoop.hbase.hbtop.terminal.<a href="../../../../../../org/apache/hadoop/hbase/hbtop/terminal/KeyPress.Type.html" title="enum in org.apache.hadoop.hbase.hbtop.terminal"><span class="typeNameLink">KeyPress.Type</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.hbtop.terminal.<a href="../../../../../../org/apache/hadoop/hbase/hbtop/terminal/Color.html" title="enum in org.apache.hadoop.hbase.hbtop.terminal"><span class="typeNameLink">Color</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.hbtop.terminal.<a href="../../../../../../org/apache/hadoop/hbase/hbtop/terminal/KeyPress.Type.html" title="enum in org.apache.hadoop.hbase.hbtop.terminal"><span class="typeNameLink">KeyPress.Type</span></a></li>
 </ul>
 </li>
 </ul>
diff --git a/devapidocs/org/apache/hadoop/hbase/io/hfile/package-tree.html b/devapidocs/org/apache/hadoop/hbase/io/hfile/package-tree.html
index 5df3e72..f41e5ee 100644
--- a/devapidocs/org/apache/hadoop/hbase/io/hfile/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/io/hfile/package-tree.html
@@ -298,11 +298,11 @@
 <ul>
 <li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true [...]
 <ul>
+<li type="circle">org.apache.hadoop.hbase.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/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/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/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/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/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>
 </ul>
 </li>
 </ul>
diff --git a/devapidocs/org/apache/hadoop/hbase/ipc/package-tree.html b/devapidocs/org/apache/hadoop/hbase/ipc/package-tree.html
index d288952..05f6fbe 100644
--- a/devapidocs/org/apache/hadoop/hbase/ipc/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/ipc/package-tree.html
@@ -354,8 +354,8 @@
 <li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true [...]
 <ul>
 <li type="circle">org.apache.hadoop.hbase.ipc.<a href="../../../../../org/apache/hadoop/hbase/ipc/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>
+<li type="circle">org.apache.hadoop.hbase.ipc.<a href="../../../../../org/apache/hadoop/hbase/ipc/BufferCallBeforeInitHandler.BufferCallAction.html" title="enum in org.apache.hadoop.hbase.ipc"><span class="typeNameLink">BufferCallBeforeInitHandler.BufferCallAction</span></a></li>
 </ul>
 </li>
 </ul>
diff --git a/devapidocs/org/apache/hadoop/hbase/mapreduce/package-tree.html b/devapidocs/org/apache/hadoop/hbase/mapreduce/package-tree.html
index 15c80e5..a5dca14 100644
--- a/devapidocs/org/apache/hadoop/hbase/mapreduce/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/mapreduce/package-tree.html
@@ -298,8 +298,8 @@
 <ul>
 <li type="circle">org.apache.hadoop.hbase.mapreduce.<a href="../../../../../org/apache/hadoop/hbase/mapreduce/CellCounter.CellCounterMapper.Counters.html" title="enum in org.apache.hadoop.hbase.mapreduce"><span class="typeNameLink">CellCounter.CellCounterMapper.Counters</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.mapreduce.<a href="../../../../../org/apache/hadoop/hbase/mapreduce/RowCounter.RowCounterMapper.Counters.html" title="enum in org.apache.hadoop.hbase.mapreduce"><span class="typeNameLink">RowCounter.RowCounterMapper.Counters</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.mapreduce.<a href="../../../../../org/apache/hadoop/hbase/mapreduce/SyncTable.SyncMapper.Counter.html" title="enum in org.apache.hadoop.hbase.mapreduce"><span class="typeNameLink">SyncTable.SyncMapper.Counter</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.mapreduce.<a href="../../../../../org/apache/hadoop/hbase/mapreduce/TableSplit.Version.html" title="enum in org.apache.hadoop.hbase.mapreduce"><span class="typeNameLink">TableSplit.Version</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.mapreduce.<a href="../../../../../org/apache/hadoop/hbase/mapreduce/SyncTable.SyncMapper.Counter.html" title="enum in org.apache.hadoop.hbase.mapreduce"><span class="typeNameLink">SyncTable.SyncMapper.Counter</span></a></li>
 </ul>
 </li>
 </ul>
diff --git a/devapidocs/org/apache/hadoop/hbase/master/balancer/package-tree.html b/devapidocs/org/apache/hadoop/hbase/master/balancer/package-tree.html
index 848d41f..c49c655 100644
--- a/devapidocs/org/apache/hadoop/hbase/master/balancer/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/master/balancer/package-tree.html
@@ -198,8 +198,8 @@
 <ul>
 <li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true [...]
 <ul>
-<li type="circle">org.apache.hadoop.hbase.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>
+<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>
 </ul>
 </li>
 </ul>
diff --git a/devapidocs/org/apache/hadoop/hbase/master/package-tree.html b/devapidocs/org/apache/hadoop/hbase/master/package-tree.html
index 71216f7..28f09dd 100644
--- a/devapidocs/org/apache/hadoop/hbase/master/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/master/package-tree.html
@@ -360,11 +360,11 @@
 <li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true [...]
 <ul>
 <li type="circle">org.apache.hadoop.hbase.master.<a href="../../../../../org/apache/hadoop/hbase/master/ServerManager.ServerLiveState.html" title="enum in org.apache.hadoop.hbase.master"><span class="typeNameLink">ServerManager.ServerLiveState</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.master.<a href="../../../../../org/apache/hadoop/hbase/master/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.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/MasterRpcServices.BalanceSwitchMode.html" title="enum in org.apache.hadoop.hbase.master"><span class="typeNameLink">MasterRpcServices.BalanceSwitchMode</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.master.<a href="../../../../../org/apache/hadoop/hbase/master/SplitLogManager.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/MetricsMasterSourceFactoryImpl.FactoryStorage.html" title="enum in org.apache.hadoop.hbase.master"><span class="typeNameLink">MetricsMasterSourceFactoryImpl.FactoryStorage</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.master.<a href="../../../../../org/apache/hadoop/hbase/master/RegionState.State.html" title="enum in org.apache.hadoop.hbase.master"><span class="typeNameLink">RegionState.State</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.master.<a href="../../../../../org/apache/hadoop/hbase/master/SplitLogManager.ResubmitDirective.html" title="enum in org.apache.hadoop.hbase.master"><span class="typeNameLink">SplitLogManager.ResubmitDirective</span></a></li>
 </ul>
 </li>
 </ul>
diff --git a/devapidocs/org/apache/hadoop/hbase/master/procedure/package-tree.html b/devapidocs/org/apache/hadoop/hbase/master/procedure/package-tree.html
index 973c948..633b7c4 100644
--- a/devapidocs/org/apache/hadoop/hbase/master/procedure/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/master/procedure/package-tree.html
@@ -216,10 +216,10 @@
 <ul>
 <li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true [...]
 <ul>
-<li type="circle">org.apache.hadoop.hbase.master.procedure.<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/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/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/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>
 </ul>
 </li>
 </ul>
diff --git a/devapidocs/org/apache/hadoop/hbase/package-tree.html b/devapidocs/org/apache/hadoop/hbase/package-tree.html
index c346b00..156a38c 100644
--- a/devapidocs/org/apache/hadoop/hbase/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/package-tree.html
@@ -425,19 +425,19 @@
 <ul>
 <li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true [...]
 <ul>
-<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/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/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/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/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/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/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/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/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/Cell.Type.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">Cell.Type</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/KeyValue.Type.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">KeyValue.Type</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/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/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/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/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/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/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/KeepDeletedCells.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">KeepDeletedCells</span></a></li>
 </ul>
 </li>
 </ul>
diff --git a/devapidocs/org/apache/hadoop/hbase/procedure2/package-tree.html b/devapidocs/org/apache/hadoop/hbase/procedure2/package-tree.html
index 5a0cca1..1210388 100644
--- a/devapidocs/org/apache/hadoop/hbase/procedure2/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/procedure2/package-tree.html
@@ -217,9 +217,9 @@
 <li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true [...]
 <ul>
 <li type="circle">org.apache.hadoop.hbase.procedure2.<a href="../../../../../org/apache/hadoop/hbase/procedure2/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/Procedure.LockState.html" title="enum in org.apache.hadoop.hbase.procedure2"><span class="typeNameLink">Procedure.LockState</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.procedure2.<a href="../../../../../org/apache/hadoop/hbase/procedure2/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/Procedure.LockState.html" title="enum in org.apache.hadoop.hbase.procedure2"><span class="typeNameLink">Procedure.LockState</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.procedure2.<a href="../../../../../org/apache/hadoop/hbase/procedure2/LockType.html" title="enum in org.apache.hadoop.hbase.procedure2"><span class="typeNameLink">LockType</span></a></li>
 </ul>
 </li>
diff --git a/devapidocs/org/apache/hadoop/hbase/quotas/package-tree.html b/devapidocs/org/apache/hadoop/hbase/quotas/package-tree.html
index 3010e91..bea59c1 100644
--- a/devapidocs/org/apache/hadoop/hbase/quotas/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/quotas/package-tree.html
@@ -241,11 +241,11 @@
 <li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true [...]
 <ul>
 <li type="circle">org.apache.hadoop.hbase.quotas.<a href="../../../../../org/apache/hadoop/hbase/quotas/QuotaScope.html" title="enum in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">QuotaScope</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.quotas.<a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">RpcThrottlingException.Type</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.quotas.<a href="../../../../../org/apache/hadoop/hbase/quotas/QuotaType.html" title="enum in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">QuotaType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.quotas.<a href="../../../../../org/apache/hadoop/hbase/quotas/OperationQuota.OperationType.html" title="enum in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">OperationQuota.OperationType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.quotas.<a href="../../../../../org/apache/hadoop/hbase/quotas/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/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>
 </ul>
 </li>
 </ul>
diff --git a/devapidocs/org/apache/hadoop/hbase/regionserver/HStore.StoreFlusherImpl.html b/devapidocs/org/apache/hadoop/hbase/regionserver/HStore.StoreFlusherImpl.html
index 8ac5e17..8caa1eb 100644
--- a/devapidocs/org/apache/hadoop/hbase/regionserver/HStore.StoreFlusherImpl.html
+++ b/devapidocs/org/apache/hadoop/hbase/regionserver/HStore.StoreFlusherImpl.html
@@ -117,7 +117,7 @@ var activeTableTab = "activeTableTab";
 </dl>
 <hr>
 <br>
-<pre>private final class <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.html#line.2294">HStore.StoreFlusherImpl</a>
+<pre>private final class <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.html#line.2287">HStore.StoreFlusherImpl</a>
 extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
 implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreFlushContext.html" title="interface in org.apache.hadoop.hbase.regionserver">StoreFlushContext</a></pre>
 </li>
@@ -279,7 +279,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreFlu
 <ul class="blockList">
 <li class="blockList">
 <h4>tracker</h4>
-<pre>private final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/FlushLifeCycleTracker.html" title="interface in org.apache.hadoop.hbase.regionserver">FlushLifeCycleTracker</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.StoreFlusherImpl.html#line.2296">tracker</a></pre>
+<pre>private final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/FlushLifeCycleTracker.html" title="interface in org.apache.hadoop.hbase.regionserver">FlushLifeCycleTracker</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.StoreFlusherImpl.html#line.2289">tracker</a></pre>
 </li>
 </ul>
 <a name="cacheFlushSeqNum">
@@ -288,7 +288,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreFlu
 <ul class="blockList">
 <li class="blockList">
 <h4>cacheFlushSeqNum</h4>
-<pre>private final&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.StoreFlusherImpl.html#line.2297">cacheFlushSeqNum</a></pre>
+<pre>private final&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.StoreFlusherImpl.html#line.2290">cacheFlushSeqNum</a></pre>
 </li>
 </ul>
 <a name="snapshot">
@@ -297,7 +297,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreFlu
 <ul class="blockList">
 <li class="blockList">
 <h4>snapshot</h4>
-<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreSnapshot.html" title="class in org.apache.hadoop.hbase.regionserver">MemStoreSnapshot</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.StoreFlusherImpl.html#line.2298">snapshot</a></pre>
+<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreSnapshot.html" title="class in org.apache.hadoop.hbase.regionserver">MemStoreSnapshot</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.StoreFlusherImpl.html#line.2291">snapshot</a></pre>
 </li>
 </ul>
 <a name="tempFiles">
@@ -306,7 +306,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreFlu
 <ul class="blockList">
 <li class="blockList">
 <h4>tempFiles</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;org.apache.hadoop.fs.Path&gt; <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.StoreFlusherImpl.html#line.2299">tempFiles</a></pre>
+<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;org.apache.hadoop.fs.Path&gt; <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.StoreFlusherImpl.html#line.2292">tempFiles</a></pre>
 </li>
 </ul>
 <a name="committedFiles">
@@ -315,7 +315,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreFlu
 <ul class="blockList">
 <li class="blockList">
 <h4>committedFiles</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;org.apache.hadoop.fs.Path&gt; <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.StoreFlusherImpl.html#line.2300">committedFiles</a></pre>
+<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;org.apache.hadoop.fs.Path&gt; <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.StoreFlusherImpl.html#line.2293">committedFiles</a></pre>
 </li>
 </ul>
 <a name="cacheFlushCount">
@@ -324,7 +324,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreFlu
 <ul class="blockList">
 <li class="blockList">
 <h4>cacheFlushCount</h4>
-<pre>private&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.StoreFlusherImpl.html#line.2301">cacheFlushCount</a></pre>
+<pre>private&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.StoreFlusherImpl.html#line.2294">cacheFlushCount</a></pre>
 </li>
 </ul>
 <a name="cacheFlushSize">
@@ -333,7 +333,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreFlu
 <ul class="blockList">
 <li class="blockList">
 <h4>cacheFlushSize</h4>
-<pre>private&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.StoreFlusherImpl.html#line.2302">cacheFlushSize</a></pre>
+<pre>private&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.StoreFlusherImpl.html#line.2295">cacheFlushSize</a></pre>
 </li>
 </ul>
 <a name="outputFileSize">
@@ -342,7 +342,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreFlu
 <ul class="blockListLast">
 <li class="blockList">
 <h4>outputFileSize</h4>
-<pre>private&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.StoreFlusherImpl.html#line.2303">outputFileSize</a></pre>
+<pre>private&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.StoreFlusherImpl.html#line.2296">outputFileSize</a></pre>
 </li>
 </ul>
 </li>
@@ -359,7 +359,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreFlu
 <ul class="blockListLast">
 <li class="blockList">
 <h4>StoreFlusherImpl</h4>
-<pre>private&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.StoreFlusherImpl.html#line.2305">StoreFlusherImpl</a>(long&nbsp;cacheFlushSeqNum,
+<pre>private&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.StoreFlusherImpl.html#line.2298">StoreFlusherImpl</a>(long&nbsp;cacheFlushSeqNum,
                          <a href="../../../../../org/apache/hadoop/hbase/regionserver/FlushLifeCycleTracker.html" title="interface in org.apache.hadoop.hbase.regionserver">FlushLifeCycleTracker</a>&nbsp;tracker)</pre>
 </li>
 </ul>
@@ -377,7 +377,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreFlu
 <ul class="blockList">
 <li class="blockList">
 <h4>prepare</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreSize.html" title="class in org.apache.hadoop.hbase.regionserver">MemStoreSize</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.StoreFlusherImpl.html#line.2315">prepare</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreSize.html" title="class in org.apache.hadoop.hbase.regionserver">MemStoreSize</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.StoreFlusherImpl.html#line.2308">prepare</a>()</pre>
 <div class="block">This is not thread safe. The caller should have a lock on the region or the store.
  If necessary, the lock can be added with the patch provided in HBASE-10087</div>
 <dl>
@@ -394,7 +394,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreFlu
 <ul class="blockList">
 <li class="blockList">
 <h4>flushCache</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.StoreFlusherImpl.html#line.2325">flushCache</a>(<a href="../../../../../org/apache/hadoop/hbase/monitoring/MonitoredTask.html" title="interface in org.apache.hadoop.hbase.monitoring">MonitoredTask</a>&nbsp;status)
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.StoreFlusherImpl.html#line.2318">flushCache</a>(<a href="../../../../../org/apache/hadoop/hbase/monitoring/MonitoredTask.html" title="interface in org.apache.hadoop.hbase.monitoring">MonitoredTask</a>&nbsp;status)
                 throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreFlushContext.html#flushCache-org.apache.hadoop.hbase.monitoring.MonitoredTask-">StoreFlushContext</a></code></span></div>
 <div class="block">Flush the cache (create the new store file)
@@ -415,7 +415,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreFlu
 <ul class="blockList">
 <li class="blockList">
 <h4>commit</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.StoreFlusherImpl.html#line.2334">commit</a>(<a href="../../../../../org/apache/hadoop/hbase/monitoring/MonitoredTask.html" title="interface in org.apache.hadoop.hbase.monitoring">MonitoredTask</a>&nbsp;status)
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.StoreFlusherImpl.html#line.2327">commit</a>(<a href="../../../../../org/apache/hadoop/hbase/monitoring/MonitoredTask.html" title="interface in org.apache.hadoop.hbase.monitoring">MonitoredTask</a>&nbsp;status)
                throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreFlushContext.html#commit-org.apache.hadoop.hbase.monitoring.MonitoredTask-">StoreFlushContext</a></code></span></div>
 <div class="block">Commit the flush - add the store file to the store and clear the
@@ -440,7 +440,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreFlu
 <ul class="blockList">
 <li class="blockList">
 <h4>getOutputFileSize</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.StoreFlusherImpl.html#line.2377">getOutputFileSize</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.StoreFlusherImpl.html#line.2370">getOutputFileSize</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreFlushContext.html#getOutputFileSize--">getOutputFileSize</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreFlushContext.html" title="interface in org.apache.hadoop.hbase.regionserver">StoreFlushContext</a></code></dd>
@@ -455,7 +455,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreFlu
 <ul class="blockList">
 <li class="blockList">
 <h4>getCommittedFiles</h4>
-<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;org.apache.hadoop.fs.Path&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.StoreFlusherImpl.html#line.2382">getCommittedFiles</a>()</pre>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;org.apache.hadoop.fs.Path&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.StoreFlusherImpl.html#line.2375">getCommittedFiles</a>()</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreFlushContext.html#getCommittedFiles--">StoreFlushContext</a></code></span></div>
 <div class="block">Returns the newly committed files from the flush. Called only if commit returns true</div>
 <dl>
@@ -472,7 +472,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreFlu
 <ul class="blockList">
 <li class="blockList">
 <h4>replayFlush</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.StoreFlusherImpl.html#line.2395">replayFlush</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="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;fileNames,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.StoreFlusherImpl.html#line.2388">replayFlush</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="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;fileNames,
                         boolean&nbsp;dropMemstoreSnapshot)
                  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">Similar to commit, but called in secondary region replicas for replaying the
@@ -495,7 +495,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreFlu
 <ul class="blockListLast">
 <li class="blockList">
 <h4>abort</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.StoreFlusherImpl.html#line.2427">abort</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.StoreFlusherImpl.html#line.2420">abort</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">Abort the snapshot preparation. Drops the snapshot if any.</div>
 <dl>
diff --git a/devapidocs/org/apache/hadoop/hbase/regionserver/HStore.html b/devapidocs/org/apache/hadoop/hbase/regionserver/HStore.html
index a19cc8b..5d57712 100644
--- a/devapidocs/org/apache/hadoop/hbase/regionserver/HStore.html
+++ b/devapidocs/org/apache/hadoop/hbase/regionserver/HStore.html
@@ -18,7 +18,7 @@
     catch(err) {
     }
 //-->
-var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10,"i16":10,"i17":10,"i18":10,"i19":10,"i20":10,"i21":10,"i22":10,"i23":10,"i24":10,"i25":10,"i26":10,"i27":10,"i28":9,"i29":10,"i30":10,"i31":10,"i32":10,"i33":10,"i34":9,"i35":10,"i36":9,"i37":9,"i38":10,"i39":10,"i40":10,"i41":10,"i42":10,"i43":10,"i44":10,"i45":10,"i46":10,"i47":10,"i48":10,"i49":10,"i50":10,"i51":10,"i52":10,"i53":10,"i54" [...]
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10,"i16":10,"i17":10,"i18":10,"i19":10,"i20":10,"i21":10,"i22":10,"i23":10,"i24":10,"i25":10,"i26":10,"i27":10,"i28":9,"i29":10,"i30":10,"i31":10,"i32":10,"i33":10,"i34":9,"i35":10,"i36":9,"i37":9,"i38":10,"i39":10,"i40":10,"i41":10,"i42":10,"i43":10,"i44":10,"i45":10,"i46":10,"i47":10,"i48":10,"i49":10,"i50":10,"i51":10,"i52":10,"i53":10,"i54" [...]
 var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"],32:["t6","Deprecated Methods"]};
 var altColor = "altColor";
 var rowColor = "rowColor";
@@ -893,7 +893,8 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/Store.ht
 </tr>
 <tr id="i86" class="altColor">
 <td class="colFirst"><code>private long</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#getStoreFileFieldSize-java.util.function.ToLongFunction-">getStoreFileFieldSize</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/function/ToLongFunction.html?is-external=true" title="class or interface in java.util.function">ToLongFunction</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreFileReader.html" title="clas [...]
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#getStorefileFieldSize-org.apache.hadoop.hbase.regionserver.HStoreFile-java.util.function.ToLongFunction-">getStorefileFieldSize</a></span>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/HStoreFile.html" title="class in org.apache.hadoop.hbase.regionserver">HStoreFile</a>&nbsp;file,
+                     <a href="https://docs.oracle.com/javase/8/docs/api/java/util/function/ToLongFunction.html?is-external=true" title="class or interface in java.util.function">ToLongFunction</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreFileReader.html" title="class in org.apache.hadoop.hbase.regionserver">StoreFileReader</a>&gt;&nbsp;f)</code>&nbsp;</td>
 </tr>
 <tr id="i87" class="rowColor">
 <td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/regionserver/HStoreFile.html" title="class in org.apache.hadoop.hbase.regionserver">HStoreFile</a>&gt;</code></td>
@@ -904,29 +905,33 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/Store.ht
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#getStorefilesCount--">getStorefilesCount</a></span>()</code>&nbsp;</td>
 </tr>
 <tr id="i89" class="rowColor">
+<td class="colFirst"><code>private long</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#getStorefilesFieldSize-java.util.function.ToLongFunction-">getStorefilesFieldSize</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/function/ToLongFunction.html?is-external=true" title="class or interface in java.util.function">ToLongFunction</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreFileReader.html" title="cl [...]
+</tr>
+<tr id="i90" class="altColor">
 <td class="colFirst"><code>(package private) long</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#getStoreFileSize-org.apache.hadoop.hbase.regionserver.HStoreFile-">getStoreFileSize</a></span>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/HStoreFile.html" title="class in org.apache.hadoop.hbase.regionserver">HStoreFile</a>&nbsp;file)</code>
 <div class="block">Computes the length of a store file without succumbing to any errors along the way.</div>
 </td>
 </tr>
-<tr id="i90" class="altColor">
+<tr id="i91" class="rowColor">
 <td class="colFirst"><code>long</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#getStorefilesRootLevelIndexSize--">getStorefilesRootLevelIndexSize</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i91" class="rowColor">
+<tr id="i92" class="altColor">
 <td class="colFirst"><code>long</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#getStorefilesSize--">getStorefilesSize</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i92" class="altColor">
+<tr id="i93" class="rowColor">
 <td class="colFirst"><code>private long</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#getStorefilesSize-java.util.Collection-java.util.function.Predicate-">getStorefilesSize</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/regionserver/HStoreFile.html" title="class in org.apache.hadoop. [...]
                  <a href="https://docs.oracle.com/javase/8/docs/api/java/util/function/Predicate.html?is-external=true" title="class or interface in java.util.function">Predicate</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/regionserver/HStoreFile.html" title="class in org.apache.hadoop.hbase.regionserver">HStoreFile</a>&gt;&nbsp;predicate)</code>&nbsp;</td>
 </tr>
-<tr id="i93" class="rowColor">
+<tr id="i94" class="altColor">
 <td class="colFirst"><code>long</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#getStoreFileTtl--">getStoreFileTtl</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i94" class="altColor">
+<tr id="i95" class="rowColor">
 <td class="colFirst"><code>static org.apache.hadoop.fs.Path</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#getStoreHomedir-org.apache.hadoop.fs.Path-org.apache.hadoop.hbase.client.RegionInfo-byte:A-">getStoreHomedir</a></span>(org.apache.hadoop.fs.Path&nbsp;tabledir,
                <a href="../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&nbsp;hri,
@@ -934,7 +939,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/Store.ht
 <div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
 </td>
 </tr>
-<tr id="i95" class="rowColor">
+<tr id="i96" class="altColor">
 <td class="colFirst"><code>static org.apache.hadoop.fs.Path</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#getStoreHomedir-org.apache.hadoop.fs.Path-java.lang.String-byte:A-">getStoreHomedir</a></span>(org.apache.hadoop.fs.Path&nbsp;tabledir,
                <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;encodedName,
@@ -942,29 +947,29 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/Store.ht
 <div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
 </td>
 </tr>
-<tr id="i96" class="altColor">
+<tr id="i97" class="rowColor">
 <td class="colFirst"><code>int</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#getStoreRefCount--">getStoreRefCount</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i97" class="rowColor">
+<tr id="i98" class="altColor">
 <td class="colFirst"><code>long</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#getStoreSizeUncompressed--">getStoreSizeUncompressed</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i98" class="altColor">
+<tr id="i99" class="rowColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#getTableName--">getTableName</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i99" class="rowColor">
+<tr id="i100" class="altColor">
 <td class="colFirst"><code>private long</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#getTotalSize-java.util.Collection-">getTotalSize</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/regionserver/HStoreFile.html" title="class in org.apache.hadoop.hbase.regionserver">HStoreFile</a>&gt;& [...]
 </tr>
-<tr id="i100" class="altColor">
+<tr id="i101" class="rowColor">
 <td class="colFirst"><code>long</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#getTotalStaticBloomSize--">getTotalStaticBloomSize</a></span>()</code>
 <div class="block">Returns the total byte size of all Bloom filter bit arrays.</div>
 </td>
 </tr>
-<tr id="i101" class="rowColor">
+<tr id="i102" class="altColor">
 <td class="colFirst"><code>long</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#getTotalStaticIndexSize--">getTotalStaticIndexSize</a></span>()</code>
 <div class="block">Returns the total size of all index blocks in the data block indexes, including the root level,
@@ -972,38 +977,38 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/Store.ht
  single-level indexes.</div>
 </td>
 </tr>
-<tr id="i102" class="altColor">
+<tr id="i103" class="rowColor">
 <td class="colFirst"><code>private long</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#getTotalUmcompressedBytes-java.util.List-">getTotalUmcompressedBytes</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/regionserver/HStoreFile.html" title="class in org.apache.hadoop.hbase.regionserver">HStoreFile< [...]
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#getTotalUncompressedBytes-java.util.List-">getTotalUncompressedBytes</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/regionserver/HStoreFile.html" title="class in org.apache.hadoop.hbase.regionserver">HStoreFile< [...]
 </tr>
-<tr id="i103" class="rowColor">
+<tr id="i104" class="altColor">
 <td class="colFirst"><code>boolean</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#hasReferences--">hasReferences</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i104" class="altColor">
+<tr id="i105" class="rowColor">
 <td class="colFirst"><code>boolean</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#hasTooManyStoreFiles--">hasTooManyStoreFiles</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i105" class="rowColor">
+<tr id="i106" class="altColor">
 <td class="colFirst"><code>long</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#heapSize--">heapSize</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i106" class="altColor">
+<tr id="i107" class="rowColor">
 <td class="colFirst"><code>boolean</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#isPrimaryReplicaStore--">isPrimaryReplicaStore</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i107" class="rowColor">
+<tr id="i108" class="altColor">
 <td class="colFirst"><code>boolean</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#isSloppyMemStore--">isSloppyMemStore</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i108" class="altColor">
+<tr id="i109" class="rowColor">
 <td class="colFirst"><code>private <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/regionserver/HStoreFile.html" title="class in org.apache.hadoop.hbase.regionserver">HStoreFile</a>&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#loadStoreFiles-boolean-">loadStoreFiles</a></span>(boolean&nbsp;warmup)</code>
 <div class="block">Creates an unsorted list of StoreFile loaded in parallel
  from the given directory.</div>
 </td>
 </tr>
-<tr id="i109" class="rowColor">
+<tr id="i110" class="altColor">
 <td class="colFirst"><code>private void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#logCompactionEndMessage-org.apache.hadoop.hbase.regionserver.compactions.CompactionRequestImpl-java.util.List-long-long-">logCompactionEndMessage</a></span>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/compactions/CompactionRequestImpl.html" title="class in org.apache.hadoop.hbase.regionserver.compactions">CompactionRequestImpl</a>&nbsp;cr,
                        <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/HStoreFile.html" title="class in org.apache.hadoop.hbase.regionserver">HStoreFile</a>&gt;&nbsp;sfs,
@@ -1012,64 +1017,64 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/Store.ht
 <div class="block">Log a very elaborate compaction completion message.</div>
 </td>
 </tr>
-<tr id="i110" class="altColor">
+<tr id="i111" class="rowColor">
 <td class="colFirst"><code>private <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/regionserver/HStoreFile.html" title="class in org.apache.hadoop.hbase.regionserver">HStoreFile</a>&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#moveCompactedFilesIntoPlace-org.apache.hadoop.hbase.regionserver.compactions.CompactionRequestImpl-java.util.List-org.apache.hadoop.hbase.security.User-">moveCompactedFilesIntoPlace</a></span>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/compactions/CompactionRequestImpl.html" title="class in org.apache.hadoop.hbase.regionserver.compactions">Comp [...]
                            <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;org.apache.hadoop.fs.Path&gt;&nbsp;newFiles,
                            <a href="../../../../../org/apache/hadoop/hbase/security/User.html" title="class in org.apache.hadoop.hbase.security">User</a>&nbsp;user)</code>&nbsp;</td>
 </tr>
-<tr id="i111" class="rowColor">
+<tr id="i112" class="altColor">
 <td class="colFirst"><code>(package private) <a href="../../../../../org/apache/hadoop/hbase/regionserver/HStoreFile.html" title="class in org.apache.hadoop.hbase.regionserver">HStoreFile</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#moveFileIntoPlace-org.apache.hadoop.fs.Path-">moveFileIntoPlace</a></span>(org.apache.hadoop.fs.Path&nbsp;newFile)</code>&nbsp;</td>
 </tr>
-<tr id="i112" class="altColor">
+<tr id="i113" class="rowColor">
 <td class="colFirst"><code>boolean</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#needsCompaction--">needsCompaction</a></span>()</code>
 <div class="block">See if there's too much store files in this store</div>
 </td>
 </tr>
-<tr id="i113" class="rowColor">
+<tr id="i114" class="altColor">
 <td class="colFirst"><code>private void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#notifyChangedReadersObservers-java.util.List-">notifyChangedReadersObservers</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/regionserver/HStoreFile.html" title="class in org.apache.hadoop.hbase.regionserver">HSt [...]
 <div class="block">Notify all observers that set of Readers has changed.</div>
 </td>
 </tr>
-<tr id="i114" class="altColor">
+<tr id="i115" class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#onConfigurationChange-org.apache.hadoop.conf.Configuration-">onConfigurationChange</a></span>(org.apache.hadoop.conf.Configuration&nbsp;conf)</code>
 <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>
 </td>
 </tr>
-<tr id="i115" class="rowColor">
+<tr id="i116" class="altColor">
 <td class="colFirst"><code>private <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/regionserver/HStoreFile.html" title="class in org.apache.hadoop.hbase.regionserver">HStoreFile</a>&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#openStoreFiles-java.util.Collection-boolean-">openStoreFiles</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreFileInfo.html" title="class in org.apache.hadoop.hbase.regionserver">Stor [...]
               boolean&nbsp;warmup)</code>&nbsp;</td>
 </tr>
-<tr id="i116" class="altColor">
+<tr id="i117" class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#postSnapshotOperation--">postSnapshotOperation</a></span>()</code>
 <div class="block">Perform tasks needed after the completion of snapshot operation.</div>
 </td>
 </tr>
-<tr id="i117" class="rowColor">
+<tr id="i118" class="altColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/util/Pair.html" title="class in org.apache.hadoop.hbase.util">Pair</a>&lt;org.apache.hadoop.fs.Path,org.apache.hadoop.fs.Path&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#preBulkLoadHFile-java.lang.String-long-">preBulkLoadHFile</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;srcPathStr,
                 long&nbsp;seqNum)</code>
 <div class="block">This method should only be called from Region.</div>
 </td>
 </tr>
-<tr id="i118" class="altColor">
+<tr id="i119" class="rowColor">
 <td class="colFirst"><code><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></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#preFlushSeqIDEstimation--">preFlushSeqIDEstimation</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i119" class="rowColor">
+<tr id="i120" class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#preSnapshotOperation--">preSnapshotOperation</a></span>()</code>
 <div class="block">Sets the store up for a region level snapshot operation.</div>
 </td>
 </tr>
-<tr id="i120" class="altColor">
+<tr id="i121" class="rowColor">
 <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/regionserver/KeyValueScanner.html" title="interface in org.apache.hadoop.hbase.regionserver">KeyValueScanner</a>&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#recreateScanners-java.util.List-boolean-boolean-boolean-org.apache.hadoop.hbase.regionserver.querymatcher.ScanQueryMatcher-byte:A-boolean-byte:A-boolean-long-boolean-">recreateScanners</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org [...]
                 boolean&nbsp;cacheBlocks,
@@ -1085,20 +1090,20 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/Store.ht
 <div class="block">Recreates the scanners on the current list of active store file scanners</div>
 </td>
 </tr>
-<tr id="i121" class="rowColor">
+<tr id="i122" class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#refreshStoreFiles--">refreshStoreFiles</a></span>()</code>
 <div class="block">Checks the underlying store files, and opens the files that have not been opened, and removes
  the store file readers for store files no longer available.</div>
 </td>
 </tr>
-<tr id="i122" class="altColor">
+<tr id="i123" class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#refreshStoreFiles-java.util.Collection-">refreshStoreFiles</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> [...]
 <div class="block">Replaces the store files that the store has with the given files.</div>
 </td>
 </tr>
-<tr id="i123" class="rowColor">
+<tr id="i124" class="altColor">
 <td class="colFirst"><code>private void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#refreshStoreFilesInternal-java.util.Collection-">refreshStoreFilesInternal</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreFileInfo.html" title="class in org.apache.hadoop.hbase.regi [...]
 <div class="block">Checks the underlying store files, and opens the files that  have not
@@ -1106,28 +1111,28 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/Store.ht
  available.</div>
 </td>
 </tr>
-<tr id="i124" class="altColor">
+<tr id="i125" class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#registerChildren-org.apache.hadoop.hbase.conf.ConfigurationManager-">registerChildren</a></span>(<a href="../../../../../org/apache/hadoop/hbase/conf/ConfigurationManager.html" title="class in org.apache.hadoop.hbase.conf">ConfigurationManager</a>&nbsp;manager)</code>
 <div class="block">Needs to be called to register the children to the manager.</div>
 </td>
 </tr>
-<tr id="i125" class="rowColor">
+<tr id="i126" class="altColor">
 <td class="colFirst"><code>private void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#removeCompactedfiles-java.util.Collection-">removeCompactedfiles</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/regionserver/HStoreFile.html" title="class in org.apache.hadoop.hbase.regionserver">HSt [...]
 <div class="block">Archives and removes the compacted files</div>
 </td>
 </tr>
-<tr id="i126" class="altColor">
+<tr id="i127" class="rowColor">
 <td class="colFirst"><code>private void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#removeUnneededFiles--">removeUnneededFiles</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i127" class="rowColor">
+<tr id="i128" class="altColor">
 <td class="colFirst"><code>(package private) void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#replaceStoreFiles-java.util.Collection-java.util.Collection-">replaceStoreFiles</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/regionserver/HStoreFile.html" title="class in org.apache.hadoop.hbase.re [...]
                  <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/regionserver/HStoreFile.html" title="class in org.apache.hadoop.hbase.regionserver">HStoreFile</a>&gt;&nbsp;result)</code>&nbsp;</td>
 </tr>
-<tr id="i128" class="altColor">
+<tr id="i129" class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#replayCompactionMarker-org.apache.hadoop.hbase.shaded.protobuf.generated.WALProtos.CompactionDescriptor-boolean-boolean-">replayCompactionMarker</a></span>(org.apache.hadoop.hbase.shaded.protobuf.generated.WALProtos.CompactionDescriptor&nbsp;compaction,
                       boolean&nbsp;pickCompactionFiles,
@@ -1135,78 +1140,78 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/Store.ht
 <div class="block">Call to complete a compaction.</div>
 </td>
 </tr>
-<tr id="i129" class="rowColor">
+<tr id="i130" class="altColor">
 <td class="colFirst"><code>(package private) void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#reportArchivedFilesForQuota-java.util.List-java.util.List-">reportArchivedFilesForQuota</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;? extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreFile.html" title="interface in org.apache.hadoop [...]
                            <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Long.html?is-external=true" title="class or interface in java.lang">Long</a>&gt;&nbsp;fileSizes)</code>&nbsp;</td>
 </tr>
-<tr id="i130" class="altColor">
+<tr id="i131" class="rowColor">
 <td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Optional.html?is-external=true" title="class or interface in java.util">Optional</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/regionserver/compactions/CompactionContext.html" title="class in org.apache.hadoop.hbase.regionserver.compactions">CompactionContext</a>&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#requestCompaction--">requestCompaction</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i131" class="rowColor">
+<tr id="i132" class="altColor">
 <td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Optional.html?is-external=true" title="class or interface in java.util">Optional</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/regionserver/compactions/CompactionContext.html" title="class in org.apache.hadoop.hbase.regionserver.compactions">CompactionContext</a>&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#requestCompaction-int-org.apache.hadoop.hbase.regionserver.compactions.CompactionLifeCycleTracker-org.apache.hadoop.hbase.security.User-">requestCompaction</a></span>(int&nbsp;priority,
                  <a href="../../../../../org/apache/hadoop/hbase/regionserver/compactions/CompactionLifeCycleTracker.html" title="interface in org.apache.hadoop.hbase.regionserver.compactions">CompactionLifeCycleTracker</a>&nbsp;tracker,
                  <a href="../../../../../org/apache/hadoop/hbase/security/User.html" title="class in org.apache.hadoop.hbase.security">User</a>&nbsp;user)</code>&nbsp;</td>
 </tr>
-<tr id="i132" class="altColor">
+<tr id="i133" class="rowColor">
 <td class="colFirst"><code>(package private) void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#setDataBlockEncoderInTest-org.apache.hadoop.hbase.io.hfile.HFileDataBlockEncoder-">setDataBlockEncoderInTest</a></span>(<a href="../../../../../org/apache/hadoop/hbase/io/hfile/HFileDataBlockEncoder.html" title="interface in org.apache.hadoop.hbase.io.hfile">HFileDataBlockEncoder</a>&nbsp;blockEncoder)</code>
 <div class="block">Should be used only in tests.</div>
 </td>
 </tr>
-<tr id="i133" class="rowColor">
+<tr id="i134" class="altColor">
 <td class="colFirst"><code>(package private) void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#setScanInfo-org.apache.hadoop.hbase.regionserver.ScanInfo-">setScanInfo</a></span>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/ScanInfo.html" title="class in org.apache.hadoop.hbase.regionserver">ScanInfo</a>&nbsp;scanInfo)</code>
 <div class="block">Set scan info, used by test</div>
 </td>
 </tr>
-<tr id="i134" class="altColor">
+<tr id="i135" class="rowColor">
 <td class="colFirst"><code>boolean</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#shouldPerformMajorCompaction--">shouldPerformMajorCompaction</a></span>()</code>
 <div class="block">Tests whether we should run a major compaction.</div>
 </td>
 </tr>
-<tr id="i135" class="rowColor">
+<tr id="i136" class="altColor">
 <td class="colFirst"><code>(package private) void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#snapshot--">snapshot</a></span>()</code>
 <div class="block">Snapshot this stores memstore.</div>
 </td>
 </tr>
-<tr id="i136" class="altColor">
+<tr id="i137" class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#startReplayingFromWAL--">startReplayingFromWAL</a></span>()</code>
 <div class="block">This message intends to inform the MemStore that next coming updates
  are going to be part of the replaying edits from WAL</div>
 </td>
 </tr>
-<tr id="i137" class="rowColor">
+<tr id="i138" class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#stopReplayingFromWAL--">stopReplayingFromWAL</a></span>()</code>
 <div class="block">This message intends to inform the MemStore that the replaying edits from WAL
  are done</div>
 </td>
 </tr>
-<tr id="i138" class="altColor">
+<tr id="i139" class="rowColor">
 <td class="colFirst"><code>boolean</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#throttleCompaction-long-">throttleCompaction</a></span>(long&nbsp;compactionSize)</code>&nbsp;</td>
 </tr>
-<tr id="i139" class="rowColor">
+<tr id="i140" class="altColor">
 <td class="colFirst"><code>long</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#timeOfOldestEdit--">timeOfOldestEdit</a></span>()</code>
 <div class="block">When was the last edit done in the memstore</div>
 </td>
 </tr>
-<tr id="i140" class="altColor">
+<tr id="i141" 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/regionserver/HStore.html#toString--">toString</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i141" class="rowColor">
+<tr id="i142" class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#triggerMajorCompaction--">triggerMajorCompaction</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i142" class="altColor">
+<tr id="i143" class="rowColor">
 <td class="colFirst"><code>(package private) void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#updateSpaceQuotaAfterFileReplacement-org.apache.hadoop.hbase.quotas.RegionSizeStore-org.apache.hadoop.hbase.client.RegionInfo-java.util.Collection-java.util.Collection-">updateSpaceQuotaAfterFileReplacement</a></span>(<a href="../../../../../org/apache/hadoop/hbase/quotas/RegionSizeStore.html" title="interface in org.apache.hadoop.hbase.quotas">RegionSizeStore</ [...]
                                     <a href="../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&nbsp;regionInfo,
@@ -1216,14 +1221,14 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/Store.ht
  and adding in the size for new files.</div>
 </td>
 </tr>
-<tr id="i143" class="rowColor">
+<tr id="i144" class="altColor">
 <td class="colFirst"><code>private boolean</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#updateStorefiles-java.util.List-long-">updateStorefiles</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/regionserver/HStoreFile.html" title="class in org.apache.hadoop.hbase.regionserver">HStoreFile</a>&gt;&nbsp;sfs,
                 long&nbsp;snapshotId)</code>
 <div class="block">Change storeFiles adding into place the Reader produced by this new flush.</div>
 </td>
 </tr>
-<tr id="i144" class="altColor">
+<tr id="i145" class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#upsert-java.lang.Iterable-long-org.apache.hadoop.hbase.regionserver.MemStoreSizing-">upsert</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Iterable.html?is-external=true" title="class or interface in java.lang">Iterable</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a> [...]
       long&nbsp;readpoint,
@@ -1231,17 +1236,17 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/Store.ht
 <div class="block">Adds or replaces the specified KeyValues.</div>
 </td>
 </tr>
-<tr id="i145" class="rowColor">
+<tr id="i146" class="altColor">
 <td class="colFirst"><code>private void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#validateStoreFile-org.apache.hadoop.fs.Path-">validateStoreFile</a></span>(org.apache.hadoop.fs.Path&nbsp;path)</code>
 <div class="block">Validates a store file by opening and closing it.</div>
 </td>
 </tr>
-<tr id="i146" class="altColor">
+<tr id="i147" class="rowColor">
 <td class="colFirst"><code>(package private) int</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#versionsToReturn-int-">versionsToReturn</a></span>(int&nbsp;wantedVersions)</code>&nbsp;</td>
 </tr>
-<tr id="i147" class="rowColor">
+<tr id="i148" class="altColor">
 <td class="colFirst"><code>private void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#writeCompactionWalRecord-java.util.Collection-java.util.Collection-">writeCompactionWalRecord</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/regionserver/HStoreFile.html" title="class in org.apache.h [...]
                         <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/regionserver/HStoreFile.html" title="class in org.apache.hadoop.hbase.regionserver">HStoreFile</a>&gt;&nbsp;newFiles)</code>
@@ -1760,7 +1765,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/Store.ht
 <ul class="blockList">
 <li class="blockList">
 <h4>FIXED_OVERHEAD</h4>
-<pre>public static final&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.html#line.2456">FIXED_OVERHEAD</a></pre>
+<pre>public static final&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.html#line.2449">FIXED_OVERHEAD</a></pre>
 </li>
 </ul>
 <a name="DEEP_OVERHEAD">
@@ -1769,7 +1774,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/Store.ht
 <ul class="blockListLast">
 <li class="blockList">
 <h4>DEEP_OVERHEAD</h4>
-<pre>public static final&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.html#line.2460">DEEP_OVERHEAD</a></pre>
+<pre>public static final&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.html#line.2453">DEEP_OVERHEAD</a></pre>
 </li>
 </ul>
 </li>
@@ -3490,13 +3495,13 @@ public static&nbsp;org.apache.hadoop.fs.Path&nbsp;<a href="../../../../../src-ht
 </dl>
 </li>
 </ul>
-<a name="getTotalUmcompressedBytes-java.util.List-">
+<a name="getTotalUncompressedBytes-java.util.List-">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>getTotalUmcompressedBytes</h4>
-<pre>private&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.html#line.2179">getTotalUmcompressedBytes</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/regionserver/HStoreFile.html" title="class in org.apache.hadoop.hbase.regionserver">HStoreFile</a>&gt;&nbsp;files)</pre>
+<h4>getTotalUncompressedBytes</h4>
+<pre>private&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.html#line.2179">getTotalUncompressedBytes</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/regionserver/HStoreFile.html" title="class in org.apache.hadoop.hbase.regionserver">HStoreFile</a>&gt;&nbsp;files)</pre>
 </li>
 </ul>
 <a name="getStorefilesSize-java.util.Collection-java.util.function.Predicate-">
@@ -3505,17 +3510,27 @@ public static&nbsp;org.apache.hadoop.fs.Path&nbsp;<a href="../../../../../src-ht
 <ul class="blockList">
 <li class="blockList">
 <h4>getStorefilesSize</h4>
-<pre>private&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.html#line.2190">getStorefilesSize</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/regionserver/HStoreFile.html" title="class in org.apache.hadoop.hbase.regionserver">HStoreFile</a>&gt;&nbsp;files,
+<pre>private&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.html#line.2185">getStorefilesSize</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/regionserver/HStoreFile.html" title="class in org.apache.hadoop.hbase.regionserver">HStoreFile</a>&gt;&nbsp;files,
                                <a href="https://docs.oracle.com/javase/8/docs/api/java/util/function/Predicate.html?is-external=true" title="class or interface in java.util.function">Predicate</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/regionserver/HStoreFile.html" title="class in org.apache.hadoop.hbase.regionserver">HStoreFile</a>&gt;&nbsp;predicate)</pre>
 </li>
 </ul>
-<a name="getStoreFileFieldSize-java.util.function.ToLongFunction-">
+<a name="getStorefileFieldSize-org.apache.hadoop.hbase.regionserver.HStoreFile-java.util.function.ToLongFunction-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getStorefileFieldSize</h4>
+<pre>private&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.html#line.2190">getStorefileFieldSize</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/HStoreFile.html" title="class in org.apache.hadoop.hbase.regionserver">HStoreFile</a>&nbsp;file,
+                                   <a href="https://docs.oracle.com/javase/8/docs/api/java/util/function/ToLongFunction.html?is-external=true" title="class or interface in java.util.function">ToLongFunction</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreFileReader.html" title="class in org.apache.hadoop.hbase.regionserver">StoreFileReader</a>&gt;&nbsp;f)</pre>
+</li>
+</ul>
+<a name="getStorefilesFieldSize-java.util.function.ToLongFunction-">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>getStoreFileFieldSize</h4>
-<pre>private&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.html#line.2202">getStoreFileFieldSize</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/function/ToLongFunction.html?is-external=true" title="class or interface in java.util.function">ToLongFunction</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreFileReader.html" title="class in org.apache.hadoop.hbase.regionserver">StoreFileReader</a>&gt;&nbsp; [...]
+<h4>getStorefilesFieldSize</h4>
+<pre>private&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.html#line.2201">getStorefilesFieldSize</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/function/ToLongFunction.html?is-external=true" title="class or interface in java.util.function">ToLongFunction</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreFileReader.html" title="class in org.apache.hadoop.hbase.regionserver">StoreFileReader</a>&gt;&nbsp [...]
 </li>
 </ul>
 <a name="getStorefilesRootLevelIndexSize--">
@@ -3524,7 +3539,7 @@ public static&nbsp;org.apache.hadoop.fs.Path&nbsp;<a href="../../../../../src-ht
 <ul class="blockList">
 <li class="blockList">
 <h4>getStorefilesRootLevelIndexSize</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.html#line.2214">getStorefilesRootLevelIndexSize</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.html#line.2207">getStorefilesRootLevelIndexSize</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Store.html#getStorefilesRootLevelIndexSize--">getStorefilesRootLevelIndexSize</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Store.html" title="interface in org.apache.hadoop.hbase.regionserver">Store</a></code></dd>
@@ -3539,7 +3554,7 @@ public static&nbsp;org.apache.hadoop.fs.Path&nbsp;<a href="../../../../../src-ht
 <ul class="blockList">
 <li class="blockList">
 <h4>getTotalStaticIndexSize</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.html#line.2219">getTotalStaticIndexSize</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.html#line.2212">getTotalStaticIndexSize</a>()</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Store.html#getTotalStaticIndexSize--">Store</a></code></span></div>
 <div class="block">Returns the total size of all index blocks in the data block indexes, including the root level,
  intermediate levels, and the leaf level for multi-level indexes, or just the root level for
@@ -3558,7 +3573,7 @@ public static&nbsp;org.apache.hadoop.fs.Path&nbsp;<a href="../../../../../src-ht
 <ul class="blockList">
 <li class="blockList">
 <h4>getTotalStaticBloomSize</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.html#line.2224">getTotalStaticBloomSize</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.html#line.2217">getTotalStaticBloomSize</a>()</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Store.html#getTotalStaticBloomSize--">Store</a></code></span></div>
 <div class="block">Returns the total byte size of all Bloom filter bit arrays. For compound Bloom filters even the
  Bloom blocks currently not loaded into the block cache are counted.</div>
@@ -3576,7 +3591,7 @@ public static&nbsp;org.apache.hadoop.fs.Path&nbsp;<a href="../../../../../src-ht
 <ul class="blockList">
 <li class="blockList">
 <h4>getMemStoreSize</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreSize.html" title="class in org.apache.hadoop.hbase.regionserver">MemStoreSize</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.html#line.2229">getMemStoreSize</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreSize.html" title="class in org.apache.hadoop.hbase.regionserver">MemStoreSize</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.html#line.2222">getMemStoreSize</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Store.html#getMemStoreSize--">getMemStoreSize</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Store.html" title="interface in org.apache.hadoop.hbase.regionserver">Store</a></code></dd>
@@ -3591,7 +3606,7 @@ public static&nbsp;org.apache.hadoop.fs.Path&nbsp;<a href="../../../../../src-ht
 <ul class="blockList">
 <li class="blockList">
 <h4>getCompactPriority</h4>
-<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.html#line.2234">getCompactPriority</a>()</pre>
+<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.html#line.2227">getCompactPriority</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Store.html#getCompactPriority--">getCompactPriority</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Store.html" title="interface in org.apache.hadoop.hbase.regionserver">Store</a></code></dd>
@@ -3604,7 +3619,7 @@ public static&nbsp;org.apache.hadoop.fs.Path&nbsp;<a href="../../../../../src-ht
 <ul class="blockList">
 <li class="blockList">
 <h4>throttleCompaction</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.html#line.2242">throttleCompaction</a>(long&nbsp;compactionSize)</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.html#line.2235">throttleCompaction</a>(long&nbsp;compactionSize)</pre>
 </li>
 </ul>
 <a name="getHRegion--">
@@ -3613,7 +3628,7 @@ public static&nbsp;org.apache.hadoop.fs.Path&nbsp;<a href="../../../../../src-ht
 <ul class="blockList">
 <li class="blockList">
 <h4>getHRegion</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.html#line.2246">getHRegion</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.html#line.2239">getHRegion</a>()</pre>
 </li>
 </ul>
 <a name="getCoprocessorHost--">
@@ -3622,7 +3637,7 @@ public static&nbsp;org.apache.hadoop.fs.Path&nbsp;<a href="../../../../../src-ht
 <ul class="blockList">
 <li class="blockList">
 <h4>getCoprocessorHost</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionCoprocessorHost.html" title="class in org.apache.hadoop.hbase.regionserver">RegionCoprocessorHost</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.html#line.2250">getCoprocessorHost</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionCoprocessorHost.html" title="class in org.apache.hadoop.hbase.regionserver">RegionCoprocessorHost</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.html#line.2243">getCoprocessorHost</a>()</pre>
 </li>
 </ul>
 <a name="getRegionInfo--">
@@ -3631,7 +3646,7 @@ public static&nbsp;org.apache.hadoop.fs.Path&nbsp;<a href="../../../../../src-ht
 <ul class="blockList">
 <li class="blockList">
 <h4>getRegionInfo</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.html#line.2255">getRegionInfo</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.html#line.2248">getRegionInfo</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Store.html#getRegionInfo--">getRegionInfo</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Store.html" title="interface in org.apache.hadoop.hbase.regionserver">Store</a></code></dd>
@@ -3646,7 +3661,7 @@ public static&nbsp;org.apache.hadoop.fs.Path&nbsp;<a href="../../../../../src-ht
 <ul class="blockList">
 <li class="blockList">
 <h4>areWritesEnabled</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.html#line.2260">areWritesEnabled</a>()</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.html#line.2253">areWritesEnabled</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Store.html#areWritesEnabled--">areWritesEnabled</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Store.html" title="interface in org.apache.hadoop.hbase.regionserver">Store</a></code></dd>
@@ -3659,7 +3674,7 @@ public static&nbsp;org.apache.hadoop.fs.Path&nbsp;<a href="../../../../../src-ht
 <ul class="blockList">
 <li class="blockList">
 <h4>getSmallestReadPoint</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.html#line.2265">getSmallestReadPoint</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.html#line.2258">getSmallestReadPoint</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Store.html#getSmallestReadPoint--">getSmallestReadPoint</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Store.html" title="interface in org.apache.hadoop.hbase.regionserver">Store</a></code></dd>
@@ -3676,7 +3691,7 @@ public static&nbsp;org.apache.hadoop.fs.Path&nbsp;<a href="../../../../../src-ht
 <ul class="blockList">
 <li class="blockList">
 <h4>upsert</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.html#line.2280">upsert</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Iterable.html?is-external=true" title="class or interface in java.lang">Iterable</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&gt;&nbsp;cells,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.html#line.2273">upsert</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Iterable.html?is-external=true" title="class or interface in java.lang">Iterable</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>&gt;&nbsp;cells,
                    long&nbsp;readpoint,
                    <a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreSizing.html" title="interface in org.apache.hadoop.hbase.regionserver">MemStoreSizing</a>&nbsp;memstoreSizing)
             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>
@@ -3701,7 +3716,7 @@ public static&nbsp;org.apache.hadoop.fs.Path&nbsp;<a href="../../../../../src-ht
 <ul class="blockList">
 <li class="blockList">
 <h4>createFlushContext</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreFlushContext.html" title="interface in org.apache.hadoop.hbase.regionserver">StoreFlushContext</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.html#line.2290">createFlushContext</a>(long&nbsp;cacheFlushId,
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreFlushContext.html" title="interface in org.apache.hadoop.hbase.regionserver">StoreFlushContext</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.html#line.2283">createFlushContext</a>(long&nbsp;cacheFlushId,
                                             <a href="../../../../../org/apache/hadoop/hbase/regionserver/FlushLifeCycleTracker.html" title="interface in org.apache.hadoop.hbase.regionserver">FlushLifeCycleTracker</a>&nbsp;tracker)</pre>
 </li>
 </ul>
@@ -3711,7 +3726,7 @@ public static&nbsp;org.apache.hadoop.fs.Path&nbsp;<a href="../../../../../src-ht
 <ul class="blockList">
 <li class="blockList">
 <h4>needsCompaction</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.html#line.2439">needsCompaction</a>()</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.html#line.2432">needsCompaction</a>()</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Store.html#needsCompaction--">Store</a></code></span></div>
 <div class="block">See if there's too much store files in this store</div>
 <dl>
@@ -3729,7 +3744,7 @@ public static&nbsp;org.apache.hadoop.fs.Path&nbsp;<a href="../../../../../src-ht
 <ul class="blockList">
 <li class="blockList">
 <h4>getCacheConfig</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/io/hfile/CacheConfig.html" title="class in org.apache.hadoop.hbase.io.hfile">CacheConfig</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.html#line.2452">getCacheConfig</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/io/hfile/CacheConfig.html" title="class in org.apache.hadoop.hbase.io.hfile">CacheConfig</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.html#line.2445">getCacheConfig</a>()</pre>
 <div class="block">Used for tests.</div>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
@@ -3743,7 +3758,7 @@ public static&nbsp;org.apache.hadoop.fs.Path&nbsp;<a href="../../../../../src-ht
 <ul class="blockList">
 <li class="blockList">
 <h4>heapSize</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.html#line.2467">heapSize</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.html#line.2460">heapSize</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/io/HeapSize.html#heapSize--">heapSize</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/io/HeapSize.html" title="interface in org.apache.hadoop.hbase.io">HeapSize</a></code></dd>
@@ -3759,7 +3774,7 @@ public static&nbsp;org.apache.hadoop.fs.Path&nbsp;<a href="../../../../../src-ht
 <ul class="blockList">
 <li class="blockList">
 <h4>getComparator</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/CellComparator.html" title="interface in org.apache.hadoop.hbase">CellComparator</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.html#line.2473">getComparator</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/CellComparator.html" title="interface in org.apache.hadoop.hbase">CellComparator</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.html#line.2466">getComparator</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Store.html#getComparator--">getComparator</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Store.html" title="interface in org.apache.hadoop.hbase.regionserver">Store</a></code></dd>
@@ -3772,7 +3787,7 @@ public static&nbsp;org.apache.hadoop.fs.Path&nbsp;<a href="../../../../../src-ht
 <ul class="blockList">
 <li class="blockList">
 <h4>getScanInfo</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/ScanInfo.html" title="class in org.apache.hadoop.hbase.regionserver">ScanInfo</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.html#line.2477">getScanInfo</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/ScanInfo.html" title="class in org.apache.hadoop.hbase.regionserver">ScanInfo</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.html#line.2470">getScanInfo</a>()</pre>
 </li>
 </ul>
 <a name="setScanInfo-org.apache.hadoop.hbase.regionserver.ScanInfo-">
@@ -3781,7 +3796,7 @@ public static&nbsp;org.apache.hadoop.fs.Path&nbsp;<a href="../../../../../src-ht
 <ul class="blockList">
 <li class="blockList">
 <h4>setScanInfo</h4>
-<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.html#line.2485">setScanInfo</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/ScanInfo.html" title="class in org.apache.hadoop.hbase.regionserver">ScanInfo</a>&nbsp;scanInfo)</pre>
+<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.html#line.2478">setScanInfo</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/ScanInfo.html" title="class in org.apache.hadoop.hbase.regionserver">ScanInfo</a>&nbsp;scanInfo)</pre>
 <div class="block">Set scan info, used by test</div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
@@ -3795,7 +3810,7 @@ public static&nbsp;org.apache.hadoop.fs.Path&nbsp;<a href="../../../../../src-ht
 <ul class="blockList">
 <li class="blockList">
 <h4>hasTooManyStoreFiles</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.html#line.2490">hasTooManyStoreFiles</a>()</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.html#line.2483">hasTooManyStoreFiles</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Store.html#hasTooManyStoreFiles--">hasTooManyStoreFiles</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Store.html" title="interface in org.apache.hadoop.hbase.regionserver">Store</a></code></dd>
@@ -3810,7 +3825,7 @@ public static&nbsp;org.apache.hadoop.fs.Path&nbsp;<a href="../../../../../src-ht
 <ul class="blockList">
 <li class="blockList">
 <h4>getFlushedCellsCount</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.html#line.2495">getFlushedCellsCount</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.html#line.2488">getFlushedCellsCount</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Store.html#getFlushedCellsCount--">getFlushedCellsCount</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Store.html" title="interface in org.apache.hadoop.hbase.regionserver">Store</a></code></dd>
@@ -3825,7 +3840,7 @@ public static&nbsp;org.apache.hadoop.fs.Path&nbsp;<a href="../../../../../src-ht
 <ul class="blockList">
 <li class="blockList">
 <h4>getFlushedCellsSize</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.html#line.2500">getFlushedCellsSize</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.html#line.2493">getFlushedCellsSize</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Store.html#getFlushedCellsSize--">getFlushedCellsSize</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Store.html" title="interface in org.apache.hadoop.hbase.regionserver">Store</a></code></dd>
@@ -3840,7 +3855,7 @@ public static&nbsp;org.apache.hadoop.fs.Path&nbsp;<a href="../../../../../src-ht
 <ul class="blockList">
 <li class="blockList">
 <h4>getFlushedOutputFileSize</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.html#line.2505">getFlushedOutputFileSize</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.html#line.2498">getFlushedOutputFileSize</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Store.html#getFlushedOutputFileSize--">getFlushedOutputFileSize</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Store.html" title="interface in org.apache.hadoop.hbase.regionserver">Store</a></code></dd>
@@ -3855,7 +3870,7 @@ public static&nbsp;org.apache.hadoop.fs.Path&nbsp;<a href="../../../../../src-ht
 <ul class="blockList">
 <li class="blockList">
 <h4>getCompactedCellsCount</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.html#line.2510">getCompactedCellsCount</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.html#line.2503">getCompactedCellsCount</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Store.html#getCompactedCellsCount--">getCompactedCellsCount</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Store.html" title="interface in org.apache.hadoop.hbase.regionserver">Store</a></code></dd>
@@ -3870,7 +3885,7 @@ public static&nbsp;org.apache.hadoop.fs.Path&nbsp;<a href="../../../../../src-ht
 <ul class="blockList">
 <li class="blockList">
 <h4>getCompactedCellsSize</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.html#line.2515">getCompactedCellsSize</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.html#line.2508">getCompactedCellsSize</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Store.html#getCompactedCellsSize--">getCompactedCellsSize</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Store.html" title="interface in org.apache.hadoop.hbase.regionserver">Store</a></code></dd>
@@ -3885,7 +3900,7 @@ public static&nbsp;org.apache.hadoop.fs.Path&nbsp;<a href="../../../../../src-ht
 <ul class="blockList">
 <li class="blockList">
 <h4>getMajorCompactedCellsCount</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.html#line.2520">getMajorCompactedCellsCount</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.html#line.2513">getMajorCompactedCellsCount</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Store.html#getMajorCompactedCellsCount--">getMajorCompactedCellsCount</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Store.html" title="interface in org.apache.hadoop.hbase.regionserver">Store</a></code></dd>
@@ -3900,7 +3915,7 @@ public static&nbsp;org.apache.hadoop.fs.Path&nbsp;<a href="../../../../../src-ht
 <ul class="blockList">
 <li class="blockList">
 <h4>getMajorCompactedCellsSize</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.html#line.2525">getMajorCompactedCellsSize</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.html#line.2518">getMajorCompactedCellsSize</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Store.html#getMajorCompactedCellsSize--">getMajorCompactedCellsSize</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Store.html" title="interface in org.apache.hadoop.hbase.regionserver">Store</a></code></dd>
@@ -3915,7 +3930,7 @@ public static&nbsp;org.apache.hadoop.fs.Path&nbsp;<a href="../../../../../src-ht
 <ul class="blockList">
 <li class="blockList">
 <h4>getStoreEngine</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreEngine.html" title="class in org.apache.hadoop.hbase.regionserver">StoreEngine</a>&lt;?,?,?,?&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.html#line.2534">getStoreEngine</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreEngine.html" title="class in org.apache.hadoop.hbase.regionserver">StoreEngine</a>&lt;?,?,?,?&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.html#line.2527">getStoreEngine</a>()</pre>
 <div class="block">Returns the StoreEngine that is backing this concrete implementation of Store.</div>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
@@ -3929,7 +3944,7 @@ public static&nbsp;org.apache.hadoop.fs.Path&nbsp;<a href="../../../../../src-ht
 <ul class="blockList">
 <li class="blockList">
 <h4>getOffPeakHours</h4>
-<pre>protected&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/compactions/OffPeakHours.html" title="class in org.apache.hadoop.hbase.regionserver.compactions">OffPeakHours</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.html#line.2538">getOffPeakHours</a>()</pre>
+<pre>protected&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/compactions/OffPeakHours.html" title="class in org.apache.hadoop.hbase.regionserver.compactions">OffPeakHours</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.html#line.2531">getOffPeakHours</a>()</pre>
 </li>
 </ul>
 <a name="onConfigurationChange-org.apache.hadoop.conf.Configuration-">
@@ -3938,7 +3953,7 @@ public static&nbsp;org.apache.hadoop.fs.Path&nbsp;<a href="../../../../../src-ht
 <ul class="blockList">
 <li class="blockList">
 <h4>onConfigurationChange</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.html#line.2546">onConfigurationChange</a>(org.apache.hadoop.conf.Configuration&nbsp;conf)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.html#line.2539">onConfigurationChange</a>(org.apache.hadoop.conf.Configuration&nbsp;conf)</pre>
 <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>
 <dl>
@@ -3953,7 +3968,7 @@ public static&nbsp;org.apache.hadoop.fs.Path&nbsp;<a href="../../../../../src-ht
 <ul class="blockList">
 <li class="blockList">
 <h4>registerChildren</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.html#line.2558">registerChildren</a>(<a href="../../../../../org/apache/hadoop/hbase/conf/ConfigurationManager.html" title="class in org.apache.hadoop.hbase.conf">ConfigurationManager</a>&nbsp;manager)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.html#line.2551">registerChildren</a>(<a href="../../../../../org/apache/hadoop/hbase/conf/ConfigurationManager.html" title="class in org.apache.hadoop.hbase.conf">ConfigurationManager</a>&nbsp;manager)</pre>
 <div class="block">Needs to be called to register the children to the manager.</div>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
@@ -3969,7 +3984,7 @@ public static&nbsp;org.apache.hadoop.fs.Path&nbsp;<a href="../../../../../src-ht
 <ul class="blockList">
 <li class="blockList">
 <h4>deregisterChildren</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.html#line.2566">deregisterChildren</a>(<a href="../../../../../org/apache/hadoop/hbase/conf/ConfigurationManager.html" title="class in org.apache.hadoop.hbase.conf">ConfigurationManager</a>&nbsp;manager)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.html#line.2559">deregisterChildren</a>(<a href="../../../../../org/apache/hadoop/hbase/conf/ConfigurationManager.html" title="class in org.apache.hadoop.hbase.conf">ConfigurationManager</a>&nbsp;manager)</pre>
 <div class="block">Needs to be called to deregister the children from the manager.</div>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
@@ -3985,7 +4000,7 @@ public static&nbsp;org.apache.hadoop.fs.Path&nbsp;<a href="../../../../../src-ht
 <ul class="blockList">
 <li class="blockList">
 <h4>getCompactionPressure</h4>
-<pre>public&nbsp;double&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.html#line.2571">getCompactionPressure</a>()</pre>
+<pre>public&nbsp;double&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.html#line.2564">getCompactionPressure</a>()</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Store.html#getCompactionPressure--">Store</a></code></span></div>
 <div class="block">This value can represent the degree of emergency of compaction for this store. It should be
  greater than or equal to 0.0, any value greater than 1.0 means we have too many store files.
@@ -4012,7 +4027,7 @@ public static&nbsp;org.apache.hadoop.fs.Path&nbsp;<a href="../../../../../src-ht
 <ul class="blockList">
 <li class="blockList">
 <h4>isPrimaryReplicaStore</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.html#line.2576">isPrimaryReplicaStore</a>()</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.html#line.2569">isPrimaryReplicaStore</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Store.html#isPrimaryReplicaStore--">isPrimaryReplicaStore</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Store.html" title="interface in org.apache.hadoop.hbase.regionserver">Store</a></code></dd>
@@ -4025,7 +4040,7 @@ public static&nbsp;org.apache.hadoop.fs.Path&nbsp;<a href="../../../../../src-ht
 <ul class="blockList">
 <li class="blockList">
 <h4>preSnapshotOperation</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.html#line.2584">preSnapshotOperation</a>()</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.html#line.2577">preSnapshotOperation</a>()</pre>
 <div class="block">Sets the store up for a region level snapshot operation.</div>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
@@ -4039,7 +4054,7 @@ public static&nbsp;org.apache.hadoop.fs.Path&nbsp;<a href="../../../../../src-ht
 <ul class="blockList">
 <li class="blockList">
 <h4>postSnapshotOperation</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.html#line.2592">postSnapshotOperation</a>()</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.html#line.2585">postSnapshotOperation</a>()</pre>
 <div class="block">Perform tasks needed after the completion of snapshot operation.</div>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
@@ -4053,7 +4068,7 @@ public static&nbsp;org.apache.hadoop.fs.Path&nbsp;<a href="../../../../../src-ht
 <ul class="blockList">
 <li class="blockList">
 <h4>closeAndArchiveCompactedFiles</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.html#line.2599">closeAndArchiveCompactedFiles</a>()
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.html#line.2592">closeAndArchiveCompactedFiles</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">Closes and archives the compacted files under this store</div>
 <dl>
@@ -4068,7 +4083,7 @@ public static&nbsp;org.apache.hadoop.fs.Path&nbsp;<a href="../../../../../src-ht
 <ul class="blockList">
 <li class="blockList">
 <h4>removeCompactedfiles</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.html#line.2629">removeCompactedfiles</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/regionserver/HStoreFile.html" title="class in org.apache.hadoop.hbase.regionserver">HStoreFile</a>&gt;&nbsp;compactedfiles)
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.html#line.2622">removeCompactedfiles</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/regionserver/HStoreFile.html" title="class in org.apache.hadoop.hbase.regionserver">HStoreFile</a>&gt;&nbsp;compactedfiles)
                            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">Archives and removes the compacted files</div>
 <dl>
@@ -4085,7 +4100,7 @@ public static&nbsp;org.apache.hadoop.fs.Path&nbsp;<a href="../../../../../src-ht
 <ul class="blockList">
 <li class="blockList">
 <h4>getStoreFileSize</h4>
-<pre>long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.html#line.2716">getStoreFileSize</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/HStoreFile.html" title="class in org.apache.hadoop.hbase.regionserver">HStoreFile</a>&nbsp;file)</pre>
+<pre>long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.html#line.2709">getStoreFileSize</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/HStoreFile.html" title="class in org.apache.hadoop.hbase.regionserver">HStoreFile</a>&nbsp;file)</pre>
 <div class="block">Computes the length of a store file without succumbing to any errors along the way. If an
  error is encountered, the implementation returns <code>0</code> instead of the actual size.</div>
 <dl>
@@ -4102,7 +4117,7 @@ public static&nbsp;org.apache.hadoop.fs.Path&nbsp;<a href="../../../../../src-ht
 <ul class="blockList">
 <li class="blockList">
 <h4>preFlushSeqIDEstimation</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/HStore.html#line.2734">preFlushSeqIDEstimation</a>()</pre>
+<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/HStore.html#line.2727">preFlushSeqIDEstimation</a>()</pre>
 </li>
 </ul>
 <a name="isSloppyMemStore--">
@@ -4111,7 +4126,7 @@ public static&nbsp;org.apache.hadoop.fs.Path&nbsp;<a href="../../../../../src-ht
 <ul class="blockList">
 <li class="blockList">
 <h4>isSloppyMemStore</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.html#line.2739">isSloppyMemStore</a>()</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.html#line.2732">isSloppyMemStore</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Store.html#isSloppyMemStore--">isSloppyMemStore</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Store.html" title="interface in org.apache.hadoop.hbase.regionserver">Store</a></code></dd>
@@ -4126,7 +4141,7 @@ public static&nbsp;org.apache.hadoop.fs.Path&nbsp;<a href="../../../../../src-ht
 <ul class="blockList">
 <li class="blockList">
 <h4>clearCompactedfiles</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.html#line.2743">clearCompactedfiles</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/regionserver/HStoreFile.html" title="class in org.apache.hadoop.hbase.regionserver">HStoreFile</a>&gt;&nbsp;filesToRemove)
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.html#line.2736">clearCompactedfiles</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/regionserver/HStoreFile.html" title="class in org.apache.hadoop.hbase.regionserver">HStoreFile</a>&gt;&nbsp;filesToRemove)
                           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>
@@ -4140,7 +4155,7 @@ public static&nbsp;org.apache.hadoop.fs.Path&nbsp;<a href="../../../../../src-ht
 <ul class="blockList">
 <li class="blockList">
 <h4>reportArchivedFilesForQuota</h4>
-<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.html#line.2753">reportArchivedFilesForQuota</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;? extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreFile.html" title="interface in org.apache.hadoop.hbase.regionserver">StoreFile</a>&gt;&nbsp;archivedFiles,
+<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.html#line.2746">reportArchivedFilesForQuota</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;? extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreFile.html" title="interface in org.apache.hadoop.hbase.regionserver">StoreFile</a>&gt;&nbsp;archivedFiles,
                                  <a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Long.html?is-external=true" title="class or interface in java.lang">Long</a>&gt;&nbsp;fileSizes)</pre>
 </li>
 </ul>
@@ -4150,7 +4165,7 @@ public static&nbsp;org.apache.hadoop.fs.Path&nbsp;<a href="../../../../../src-ht
 <ul class="blockList">
 <li class="blockList">
 <h4>getCurrentParallelPutCount</h4>
-<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.html#line.2781">getCurrentParallelPutCount</a>()</pre>
+<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.html#line.2774">getCurrentParallelPutCount</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Store.html#getCurrentParallelPutCount--">getCurrentParallelPutCount</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/Store.html" title="interface in org.apache.hadoop.hbase.regionserver">Store</a></code></dd>
@@ -4163,7 +4178,7 @@ public static&nbsp;org.apache.hadoop.fs.Path&nbsp;<a href="../../../../../src-ht
 <ul class="blockListLast">
 <li class="blockList">
 <h4>getStoreRefCount</h4>
-<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.html#line.2785">getStoreRefCount</a>()</pre>
+<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HStore.html#line.2778">getStoreRefCount</a>()</pre>
 </li>
 </ul>
 </li>
diff --git a/devapidocs/org/apache/hadoop/hbase/regionserver/class-use/HStoreFile.html b/devapidocs/org/apache/hadoop/hbase/regionserver/class-use/HStoreFile.html
index 428ead1..b8903ff 100644
--- a/devapidocs/org/apache/hadoop/hbase/regionserver/class-use/HStoreFile.html
+++ b/devapidocs/org/apache/hadoop/hbase/regionserver/class-use/HStoreFile.html
@@ -843,19 +843,24 @@
 </td>
 </tr>
 <tr class="altColor">
+<td class="colFirst"><code>private long</code></td>
+<td class="colLast"><span class="typeNameLabel">HStore.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#getStorefileFieldSize-org.apache.hadoop.hbase.regionserver.HStoreFile-java.util.function.ToLongFunction-">getStorefileFieldSize</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/regionserver/HStoreFile.html" title="class in org.apache.hadoop.hbase.regionserver">HStoreFile</a>&nbsp;file,
+                     <a href="https://docs.oracle.com/javase/8/docs/api/java/util/function/ToLongFunction.html?is-external=true" title="class or interface in java.util.function">ToLongFunction</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/regionserver/StoreFileReader.html" title="class in org.apache.hadoop.hbase.regionserver">StoreFileReader</a>&gt;&nbsp;f)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
 <td class="colFirst"><code>(package private) long</code></td>
 <td class="colLast"><span class="typeNameLabel">HStore.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#getStoreFileSize-org.apache.hadoop.hbase.regionserver.HStoreFile-">getStoreFileSize</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/regionserver/HStoreFile.html" title="class in org.apache.hadoop.hbase.regionserver">HStoreFile</a>&nbsp;file)</code>
 <div class="block">Computes the length of a store file without succumbing to any errors along the way.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>private static void</code></td>
 <td class="colLast"><span class="typeNameLabel">StripeStoreFileManager.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/StripeStoreFileManager.html#insertFileIntoStripe-java.util.ArrayList-org.apache.hadoop.hbase.regionserver.HStoreFile-">insertFileIntoStripe</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html?is-external=true" title="class or interface in java.util">ArrayList</a>&lt;<a href="../. [...]
                     <a href="../../../../../../org/apache/hadoop/hbase/regionserver/HStoreFile.html" title="class in org.apache.hadoop.hbase.regionserver">HStoreFile</a>&nbsp;sf)</code>
 <div class="block">Inserts a file in the correct place (by seqnum) in a stripe copy.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>org.apache.hadoop.fs.Path</code></td>
 <td class="colLast"><span class="typeNameLabel">HRegionFileSystem.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/HRegionFileSystem.html#mergeStoreFile-org.apache.hadoop.hbase.client.RegionInfo-java.lang.String-org.apache.hadoop.hbase.regionserver.HStoreFile-org.apache.hadoop.fs.Path-">mergeStoreFile</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.cl [...]
               <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;familyName,
@@ -864,7 +869,7 @@
 <div class="block">Write out a merge reference under the given merges directory.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="typeNameLabel">RegionCoprocessorHost.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/RegionCoprocessorHost.html#postCompact-org.apache.hadoop.hbase.regionserver.HStore-org.apache.hadoop.hbase.regionserver.HStoreFile-org.apache.hadoop.hbase.regionserver.compactions.CompactionLifeCycleTracker-org.apache.hadoop.hbase.regionserver.compactions.CompactionRequest-org.apache.hadoop.hbase.security.User-">po [...]
            <a href="../../../../../../org/apache/hadoop/hbase/regionserver/HStoreFile.html" title="class in org.apache.hadoop.hbase.regionserver">HStoreFile</a>&nbsp;resultFile,
@@ -874,7 +879,7 @@
 <div class="block">Called after the store compaction has completed.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><span class="typeNameLabel">RegionCoprocessorHost.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/RegionCoprocessorHost.html#postFlush-org.apache.hadoop.hbase.regionserver.HStore-org.apache.hadoop.hbase.regionserver.HStoreFile-org.apache.hadoop.hbase.regionserver.FlushLifeCycleTracker-">postFlush</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/regionserver/HStore.html" title="class in org.apache.h [...]
          <a href="../../../../../../org/apache/hadoop/hbase/regionserver/HStoreFile.html" title="class in org.apache.hadoop.hbase.regionserver">HStoreFile</a>&nbsp;storeFile,
@@ -882,7 +887,7 @@
 <div class="block">Invoked after a memstore flush</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>org.apache.hadoop.fs.Path</code></td>
 <td class="colLast"><span class="typeNameLabel">HRegionFileSystem.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/HRegionFileSystem.html#splitStoreFile-org.apache.hadoop.hbase.client.RegionInfo-java.lang.String-org.apache.hadoop.hbase.regionserver.HStoreFile-byte:A-boolean-org.apache.hadoop.hbase.regionserver.RegionSplitPolicy-">splitStoreFile</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" ti [...]
               <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;familyName,
@@ -893,7 +898,7 @@
 <div class="block">Write out a split reference.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>private byte[]</code></td>
 <td class="colLast"><span class="typeNameLabel">StripeStoreFileManager.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/StripeStoreFileManager.html#startOf-org.apache.hadoop.hbase.regionserver.HStoreFile-">startOf</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/regionserver/HStoreFile.html" title="class in org.apache.hadoop.hbase.regionserver">HStoreFile</a>&nbsp;sf)</code>&nbsp;</td>
 </tr>
@@ -1126,7 +1131,7 @@
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><code>private long</code></td>
-<td class="colLast"><span class="typeNameLabel">HStore.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#getTotalUmcompressedBytes-java.util.List-">getTotalUmcompressedBytes</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/regionserver/HStoreFile.html" title="class in o [...]
+<td class="colLast"><span class="typeNameLabel">HStore.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#getTotalUncompressedBytes-java.util.List-">getTotalUncompressedBytes</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/regionserver/HStoreFile.html" title="class in o [...]
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/regionserver/HStoreFile.html" title="class in org.apache.hadoop.hbase.regionserver">HStoreFile</a>&gt;</code></td>
diff --git a/devapidocs/org/apache/hadoop/hbase/regionserver/class-use/StoreFileReader.html b/devapidocs/org/apache/hadoop/hbase/regionserver/class-use/StoreFileReader.html
index 3b9eb84..21006dd 100644
--- a/devapidocs/org/apache/hadoop/hbase/regionserver/class-use/StoreFileReader.html
+++ b/devapidocs/org/apache/hadoop/hbase/regionserver/class-use/StoreFileReader.html
@@ -312,7 +312,12 @@
 <tbody>
 <tr class="altColor">
 <td class="colFirst"><code>private long</code></td>
-<td class="colLast"><span class="typeNameLabel">HStore.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#getStoreFileFieldSize-java.util.function.ToLongFunction-">getStoreFileFieldSize</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/function/ToLongFunction.html?is-external=true" title="class or interface in java.util.function">ToLongFunction</a>&lt;<a href="../../../../../../org/apache/hadoop/hbas [...]
+<td class="colLast"><span class="typeNameLabel">HStore.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#getStorefileFieldSize-org.apache.hadoop.hbase.regionserver.HStoreFile-java.util.function.ToLongFunction-">getStorefileFieldSize</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/regionserver/HStoreFile.html" title="class in org.apache.hadoop.hbase.regionserver">HStoreFile</a>&nbsp;file,
+                     <a href="https://docs.oracle.com/javase/8/docs/api/java/util/function/ToLongFunction.html?is-external=true" title="class or interface in java.util.function">ToLongFunction</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/regionserver/StoreFileReader.html" title="class in org.apache.hadoop.hbase.regionserver">StoreFileReader</a>&gt;&nbsp;f)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>private long</code></td>
+<td class="colLast"><span class="typeNameLabel">HStore.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/HStore.html#getStorefilesFieldSize-java.util.function.ToLongFunction-">getStorefilesFieldSize</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/function/ToLongFunction.html?is-external=true" title="class or interface in java.util.function">ToLongFunction</a>&lt;<a href="../../../../../../org/apache/hadoop/hb [...]
 </tr>
 </tbody>
 </table>
diff --git a/devapidocs/org/apache/hadoop/hbase/regionserver/package-tree.html b/devapidocs/org/apache/hadoop/hbase/regionserver/package-tree.html
index 6f64ca1..d1124a3 100644
--- a/devapidocs/org/apache/hadoop/hbase/regionserver/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/regionserver/package-tree.html
@@ -718,20 +718,20 @@
 <ul>
 <li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true [...]
 <ul>
-<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/TimeRangeTracker.Type.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">TimeRangeTracker.Type</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/ChunkCreator.ChunkType.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">ChunkCreator.ChunkType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/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/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/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/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/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/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/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/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/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.NextState.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">ScannerContext.NextState</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/ScannerContext.LimitScope.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">ScannerContext.LimitScope</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceFactoryImpl.FactoryStorage.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">MetricsRegionServerSourceFactoryImpl.FactoryStorage</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/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/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/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/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/Region.Operation.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">Region.Operation</span></a></li>
 </ul>
 </li>
 </ul>
diff --git a/devapidocs/org/apache/hadoop/hbase/regionserver/querymatcher/package-tree.html b/devapidocs/org/apache/hadoop/hbase/regionserver/querymatcher/package-tree.html
index 45a338f..03a894e 100644
--- a/devapidocs/org/apache/hadoop/hbase/regionserver/querymatcher/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/regionserver/querymatcher/package-tree.html
@@ -130,9 +130,9 @@
 <ul>
 <li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true [...]
 <ul>
-<li type="circle">org.apache.hadoop.hbase.regionserver.querymatcher.<a href="../../../../../../org/apache/hadoop/hbase/regionserver/querymatcher/ScanQueryMatcher.MatchCode.html" title="enum in org.apache.hadoop.hbase.regionserver.querymatcher"><span class="typeNameLink">ScanQueryMatcher.MatchCode</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.regionserver.querymatcher.<a href="../../../../../../org/apache/hadoop/hbase/regionserver/querymatcher/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>
diff --git a/devapidocs/org/apache/hadoop/hbase/regionserver/wal/package-tree.html b/devapidocs/org/apache/hadoop/hbase/regionserver/wal/package-tree.html
index 835d3e3..7291aff 100644
--- a/devapidocs/org/apache/hadoop/hbase/regionserver/wal/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/regionserver/wal/package-tree.html
@@ -247,10 +247,10 @@
 <ul>
 <li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true [...]
 <ul>
-<li type="circle">org.apache.hadoop.hbase.regionserver.wal.<a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/ProtobufLogReader.WALHdrResult.html" title="enum in org.apache.hadoop.hbase.regionserver.wal"><span class="typeNameLink">ProtobufLogReader.WALHdrResult</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.regionserver.wal.<a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/WALActionsListener.RollRequestReason.html" title="enum in org.apache.hadoop.hbase.regionserver.wal"><span class="typeNameLink">WALActionsListener.RollRequestReason</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.regionserver.wal.<a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/CompressionContext.DictionaryIndex.html" title="enum in org.apache.hadoop.hbase.regionserver.wal"><span class="typeNameLink">CompressionContext.DictionaryIndex</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.regionserver.wal.<a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/WALActionsListener.RollRequestReason.html" title="enum in org.apache.hadoop.hbase.regionserver.wal"><span class="typeNameLink">WALActionsListener.RollRequestReason</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.regionserver.wal.<a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/RingBufferTruck.Type.html" title="enum in org.apache.hadoop.hbase.regionserver.wal"><span class="typeNameLink">RingBufferTruck.Type</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.regionserver.wal.<a href="../../../../../../org/apache/hadoop/hbase/regionserver/wal/ProtobufLogReader.WALHdrResult.html" title="enum in org.apache.hadoop.hbase.regionserver.wal"><span class="typeNameLink">ProtobufLogReader.WALHdrResult</span></a></li>
 </ul>
 </li>
 </ul>
diff --git a/devapidocs/org/apache/hadoop/hbase/replication/regionserver/package-tree.html b/devapidocs/org/apache/hadoop/hbase/replication/regionserver/package-tree.html
index 800a66a..c9ac434 100644
--- a/devapidocs/org/apache/hadoop/hbase/replication/regionserver/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/replication/regionserver/package-tree.html
@@ -192,8 +192,8 @@
 <ul>
 <li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true [...]
 <ul>
-<li type="circle">org.apache.hadoop.hbase.replication.regionserver.<a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceShipper.WorkerState.html" title="enum in org.apache.hadoop.hbase.replication.regionserver"><span class="typeNameLink">ReplicationSourceShipper.WorkerState</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.replication.regionserver.<a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/MetricsReplicationSourceFactoryImpl.SourceHolder.html" title="enum in org.apache.hadoop.hbase.replication.regionserver"><span class="typeNameLink">MetricsReplicationSourceFactoryImpl.SourceHolder</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.replication.regionserver.<a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceShipper.WorkerState.html" title="enum in org.apache.hadoop.hbase.replication.regionserver"><span class="typeNameLink">ReplicationSourceShipper.WorkerState</span></a></li>
 </ul>
 </li>
 </ul>
diff --git a/devapidocs/org/apache/hadoop/hbase/rest/model/package-tree.html b/devapidocs/org/apache/hadoop/hbase/rest/model/package-tree.html
index 7d70035..3aa879d 100644
--- a/devapidocs/org/apache/hadoop/hbase/rest/model/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/rest/model/package-tree.html
@@ -110,8 +110,8 @@
 <ul>
 <li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true [...]
 <ul>
-<li type="circle">org.apache.hadoop.hbase.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>
diff --git a/devapidocs/org/apache/hadoop/hbase/security/access/package-tree.html b/devapidocs/org/apache/hadoop/hbase/security/access/package-tree.html
index e476f6c..4105c6a 100644
--- a/devapidocs/org/apache/hadoop/hbase/security/access/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/security/access/package-tree.html
@@ -162,12 +162,12 @@
 <ul>
 <li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true [...]
 <ul>
-<li type="circle">org.apache.hadoop.hbase.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/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/SnapshotScannerHDFSAclHelper.HDFSAclOperation.AclType.html" title="enum in org.apache.hadoop.hbase.security.access"><span class="typeNameLink">SnapshotScannerHDFSAclHelper.HDFSAclOperation.AclType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.security.access.<a href="../../../../../../org/apache/hadoop/hbase/security/access/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/SnapshotScannerHDFSAclHelper.HDFSAclOperation.OperationType.html" title="enum in org.apache.hadoop.hbase.security.access"><span class="typeNameLink">SnapshotScannerHDFSAclHelper.HDFSAclOperation.OperationType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.security.access.<a href="../../../../../../org/apache/hadoop/hbase/security/access/Permission.Action.html" title="enum in org.apache.hadoop.hbase.security.access"><span class="typeNameLink">Permission.Action</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.security.access.<a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessControlFilter.Strategy.html" title="enum in org.apache.hadoop.hbase.security.access"><span class="typeNameLink">AccessControlFilter.Strategy</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.security.access.<a href="../../../../../../org/apache/hadoop/hbase/security/access/Permission.Scope.html" title="enum in org.apache.hadoop.hbase.security.access"><span class="typeNameLink">Permission.Scope</span></a></li>
 </ul>
 </li>
 </ul>
diff --git a/devapidocs/org/apache/hadoop/hbase/thrift/package-tree.html b/devapidocs/org/apache/hadoop/hbase/thrift/package-tree.html
index c4e6dcd..2d9b08d 100644
--- a/devapidocs/org/apache/hadoop/hbase/thrift/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/thrift/package-tree.html
@@ -211,9 +211,9 @@
 <ul>
 <li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true [...]
 <ul>
+<li type="circle">org.apache.hadoop.hbase.thrift.<a href="../../../../../org/apache/hadoop/hbase/thrift/MetricsThriftServerSourceFactoryImpl.FactoryStorage.html" title="enum in org.apache.hadoop.hbase.thrift"><span class="typeNameLink">MetricsThriftServerSourceFactoryImpl.FactoryStorage</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.thrift.<a href="../../../../../org/apache/hadoop/hbase/thrift/ThriftMetrics.ThriftServerType.html" title="enum in org.apache.hadoop.hbase.thrift"><span class="typeNameLink">ThriftMetrics.ThriftServerType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.thrift.<a href="../../../../../org/apache/hadoop/hbase/thrift/ImplType.html" title="enum in org.apache.hadoop.hbase.thrift"><span class="typeNameLink">ImplType</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.thrift.<a href="../../../../../org/apache/hadoop/hbase/thrift/MetricsThriftServerSourceFactoryImpl.FactoryStorage.html" title="enum in org.apache.hadoop.hbase.thrift"><span class="typeNameLink">MetricsThriftServerSourceFactoryImpl.FactoryStorage</span></a></li>
 </ul>
 </li>
 </ul>
diff --git a/devapidocs/org/apache/hadoop/hbase/util/package-tree.html b/devapidocs/org/apache/hadoop/hbase/util/package-tree.html
index 9fc4fa3..8803fac 100644
--- a/devapidocs/org/apache/hadoop/hbase/util/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/util/package-tree.html
@@ -541,14 +541,14 @@
 <ul>
 <li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true [...]
 <ul>
-<li type="circle">org.apache.hadoop.hbase.util.<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.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/HbckErrorReporter.ERROR_CODE.html" title="enum in org.apache.hadoop.hbase.util"><span class="typeNameLink">HbckErrorReporter.ERROR_CODE</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/PrettyPrinter.Unit.html" title="enum in org.apache.hadoop.hbase.util"><span class="typeNameLink">PrettyPrinter.Unit</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/ChecksumType.html" title="enum in org.apache.hadoop.hbase.util"><span class="typeNameLink">ChecksumType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/Bytes.LexicographicalComparerHolder.PureJavaComparer.html" title="enum in org.apache.hadoop.hbase.util"><span class="typeNameLink">Bytes.LexicographicalComparerHolder.PureJavaComparer</span></a> (implements org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/Bytes.Comparer.html" title="interface in org.apache.hadoop.hbase.util">Bytes.Comparer</a>&lt;T&gt;)</li>
 <li type="circle">org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/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/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/Order.html" title="enum in org.apache.hadoop.hbase.util"><span class="typeNameLink">Order</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/PrettyPrinter.Unit.html" title="enum in org.apache.hadoop.hbase.util"><span class="typeNameLink">PrettyPrinter.Unit</span></a></li>
 </ul>
 </li>
 </ul>
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/Version.html b/devapidocs/src-html/org/apache/hadoop/hbase/Version.html
index df29a29..85a7a96 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/Version.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/Version.html
@@ -18,9 +18,9 @@
 <span class="sourceLineNo">010</span>  justification="Intentional; to be modified in test")<a name="line.10"></a>
 <span class="sourceLineNo">011</span>public class Version {<a name="line.11"></a>
 <span class="sourceLineNo">012</span>  public static final String version = new String("3.0.0-SNAPSHOT");<a name="line.12"></a>
-<span class="sourceLineNo">013</span>  public static final String revision = "9e628b715d68c180a73f89b82ef8203fd66ef39d";<a name="line.13"></a>
+<span class="sourceLineNo">013</span>  public static final String revision = "6aec958d66fe88be8cbc175f52162645d22e996f";<a name="line.13"></a>
 <span class="sourceLineNo">014</span>  public static final String user = "jenkins";<a name="line.14"></a>
-<span class="sourceLineNo">015</span>  public static final String date = "Sun Oct 13 14:35:10 UTC 2019";<a name="line.15"></a>
+<span class="sourceLineNo">015</span>  public static final String date = "Mon Oct 14 14:38:46 UTC 2019";<a name="line.15"></a>
 <span class="sourceLineNo">016</span>  public static final String url = "git://jenkins-websites-he-de.apache.org/home/jenkins/jenkins-slave/workspace/hbase_generate_website/hbase";<a name="line.16"></a>
 <span class="sourceLineNo">017</span>  public static final String srcChecksum = "(stdin)=";<a name="line.17"></a>
 <span class="sourceLineNo">018</span>}<a name="line.18"></a>
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HStore.StoreFlusherImpl.html b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HStore.StoreFlusherImpl.html
index b550f48..ed71d07 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HStore.StoreFlusherImpl.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HStore.StoreFlusherImpl.html
@@ -317,7 +317,7 @@
 <span class="sourceLineNo">309</span>    // update the storeSize in the completeCompaction(..) finally (just like compaction) , so<a name="line.309"></a>
 <span class="sourceLineNo">310</span>    // no need calculate the storeSize twice.<a name="line.310"></a>
 <span class="sourceLineNo">311</span>    this.storeSize.addAndGet(getStorefilesSize(hStoreFiles, sf -&gt; true));<a name="line.311"></a>
-<span class="sourceLineNo">312</span>    this.totalUncompressedBytes.addAndGet(getTotalUmcompressedBytes(hStoreFiles));<a name="line.312"></a>
+<span class="sourceLineNo">312</span>    this.totalUncompressedBytes.addAndGet(getTotalUncompressedBytes(hStoreFiles));<a name="line.312"></a>
 <span class="sourceLineNo">313</span>    this.storeEngine.getStoreFileManager().loadFiles(hStoreFiles);<a name="line.313"></a>
 <span class="sourceLineNo">314</span><a name="line.314"></a>
 <span class="sourceLineNo">315</span>    // Initialize checksum type from name. The names are CRC32, CRC32C, etc.<a name="line.315"></a>
@@ -2184,618 +2184,611 @@
 <span class="sourceLineNo">2176</span>      HStoreFile::isHFile);<a name="line.2176"></a>
 <span class="sourceLineNo">2177</span>  }<a name="line.2177"></a>
 <span class="sourceLineNo">2178</span><a name="line.2178"></a>
-<span class="sourceLineNo">2179</span>  private long getTotalUmcompressedBytes(List&lt;HStoreFile&gt; files) {<a name="line.2179"></a>
-<span class="sourceLineNo">2180</span>    return files.stream().filter(f -&gt; f != null).mapToLong(f -&gt; {<a name="line.2180"></a>
-<span class="sourceLineNo">2181</span>      StoreFileReader reader = f.getReader();<a name="line.2181"></a>
-<span class="sourceLineNo">2182</span>      if (reader == null) {<a name="line.2182"></a>
-<span class="sourceLineNo">2183</span>        return 0;<a name="line.2183"></a>
-<span class="sourceLineNo">2184</span>      } else {<a name="line.2184"></a>
-<span class="sourceLineNo">2185</span>        return reader.getTotalUncompressedBytes();<a name="line.2185"></a>
-<span class="sourceLineNo">2186</span>      }<a name="line.2186"></a>
-<span class="sourceLineNo">2187</span>    }).sum();<a name="line.2187"></a>
+<span class="sourceLineNo">2179</span>  private long getTotalUncompressedBytes(List&lt;HStoreFile&gt; files) {<a name="line.2179"></a>
+<span class="sourceLineNo">2180</span>    return files.stream()<a name="line.2180"></a>
+<span class="sourceLineNo">2181</span>      .mapToLong(file -&gt; getStorefileFieldSize(file, StoreFileReader::getTotalUncompressedBytes))<a name="line.2181"></a>
+<span class="sourceLineNo">2182</span>      .sum();<a name="line.2182"></a>
+<span class="sourceLineNo">2183</span>  }<a name="line.2183"></a>
+<span class="sourceLineNo">2184</span><a name="line.2184"></a>
+<span class="sourceLineNo">2185</span>  private long getStorefilesSize(Collection&lt;HStoreFile&gt; files, Predicate&lt;HStoreFile&gt; predicate) {<a name="line.2185"></a>
+<span class="sourceLineNo">2186</span>    return files.stream().filter(predicate)<a name="line.2186"></a>
+<span class="sourceLineNo">2187</span>      .mapToLong(file -&gt; getStorefileFieldSize(file, StoreFileReader::length)).sum();<a name="line.2187"></a>
 <span class="sourceLineNo">2188</span>  }<a name="line.2188"></a>
 <span class="sourceLineNo">2189</span><a name="line.2189"></a>
-<span class="sourceLineNo">2190</span>  private long getStorefilesSize(Collection&lt;HStoreFile&gt; files, Predicate&lt;HStoreFile&gt; predicate) {<a name="line.2190"></a>
-<span class="sourceLineNo">2191</span>    return files.stream().filter(f -&gt; f != null &amp;&amp; f.getReader() != null).filter(predicate)<a name="line.2191"></a>
-<span class="sourceLineNo">2192</span>        .mapToLong(f -&gt; {<a name="line.2192"></a>
-<span class="sourceLineNo">2193</span>          StoreFileReader reader = f.getReader();<a name="line.2193"></a>
-<span class="sourceLineNo">2194</span>          if (reader == null) {<a name="line.2194"></a>
-<span class="sourceLineNo">2195</span>            return 0;<a name="line.2195"></a>
-<span class="sourceLineNo">2196</span>          } else {<a name="line.2196"></a>
-<span class="sourceLineNo">2197</span>            return reader.length();<a name="line.2197"></a>
-<span class="sourceLineNo">2198</span>          }<a name="line.2198"></a>
-<span class="sourceLineNo">2199</span>        }).sum();<a name="line.2199"></a>
-<span class="sourceLineNo">2200</span>  }<a name="line.2200"></a>
-<span class="sourceLineNo">2201</span><a name="line.2201"></a>
-<span class="sourceLineNo">2202</span>  private long getStoreFileFieldSize(ToLongFunction&lt;StoreFileReader&gt; f) {<a name="line.2202"></a>
-<span class="sourceLineNo">2203</span>    return this.storeEngine.getStoreFileManager().getStorefiles().stream()<a name="line.2203"></a>
-<span class="sourceLineNo">2204</span>        .map(HStoreFile::getReader).filter(reader -&gt; {<a name="line.2204"></a>
-<span class="sourceLineNo">2205</span>          if (reader == null) {<a name="line.2205"></a>
-<span class="sourceLineNo">2206</span>            return false;<a name="line.2206"></a>
-<span class="sourceLineNo">2207</span>          } else {<a name="line.2207"></a>
-<span class="sourceLineNo">2208</span>            return true;<a name="line.2208"></a>
-<span class="sourceLineNo">2209</span>          }<a name="line.2209"></a>
-<span class="sourceLineNo">2210</span>        }).mapToLong(f).sum();<a name="line.2210"></a>
-<span class="sourceLineNo">2211</span>  }<a name="line.2211"></a>
-<span class="sourceLineNo">2212</span><a name="line.2212"></a>
-<span class="sourceLineNo">2213</span>  @Override<a name="line.2213"></a>
-<span class="sourceLineNo">2214</span>  public long getStorefilesRootLevelIndexSize() {<a name="line.2214"></a>
-<span class="sourceLineNo">2215</span>    return getStoreFileFieldSize(StoreFileReader::indexSize);<a name="line.2215"></a>
-<span class="sourceLineNo">2216</span>  }<a name="line.2216"></a>
-<span class="sourceLineNo">2217</span><a name="line.2217"></a>
-<span class="sourceLineNo">2218</span>  @Override<a name="line.2218"></a>
-<span class="sourceLineNo">2219</span>  public long getTotalStaticIndexSize() {<a name="line.2219"></a>
-<span class="sourceLineNo">2220</span>    return getStoreFileFieldSize(StoreFileReader::getUncompressedDataIndexSize);<a name="line.2220"></a>
-<span class="sourceLineNo">2221</span>  }<a name="line.2221"></a>
-<span class="sourceLineNo">2222</span><a name="line.2222"></a>
-<span class="sourceLineNo">2223</span>  @Override<a name="line.2223"></a>
-<span class="sourceLineNo">2224</span>  public long getTotalStaticBloomSize() {<a name="line.2224"></a>
-<span class="sourceLineNo">2225</span>    return getStoreFileFieldSize(StoreFileReader::getTotalBloomSize);<a name="line.2225"></a>
-<span class="sourceLineNo">2226</span>  }<a name="line.2226"></a>
-<span class="sourceLineNo">2227</span><a name="line.2227"></a>
-<span class="sourceLineNo">2228</span>  @Override<a name="line.2228"></a>
-<span class="sourceLineNo">2229</span>  public MemStoreSize getMemStoreSize() {<a name="line.2229"></a>
-<span class="sourceLineNo">2230</span>    return this.memstore.size();<a name="line.2230"></a>
-<span class="sourceLineNo">2231</span>  }<a name="line.2231"></a>
-<span class="sourceLineNo">2232</span><a name="line.2232"></a>
-<span class="sourceLineNo">2233</span>  @Override<a name="line.2233"></a>
-<span class="sourceLineNo">2234</span>  public int getCompactPriority() {<a name="line.2234"></a>
-<span class="sourceLineNo">2235</span>    int priority = this.storeEngine.getStoreFileManager().getStoreCompactionPriority();<a name="line.2235"></a>
-<span class="sourceLineNo">2236</span>    if (priority == PRIORITY_USER) {<a name="line.2236"></a>
-<span class="sourceLineNo">2237</span>      LOG.warn("Compaction priority is USER despite there being no user compaction");<a name="line.2237"></a>
-<span class="sourceLineNo">2238</span>    }<a name="line.2238"></a>
-<span class="sourceLineNo">2239</span>    return priority;<a name="line.2239"></a>
-<span class="sourceLineNo">2240</span>  }<a name="line.2240"></a>
-<span class="sourceLineNo">2241</span><a name="line.2241"></a>
-<span class="sourceLineNo">2242</span>  public boolean throttleCompaction(long compactionSize) {<a name="line.2242"></a>
-<span class="sourceLineNo">2243</span>    return storeEngine.getCompactionPolicy().throttleCompaction(compactionSize);<a name="line.2243"></a>
-<span class="sourceLineNo">2244</span>  }<a name="line.2244"></a>
-<span class="sourceLineNo">2245</span><a name="line.2245"></a>
-<span class="sourceLineNo">2246</span>  public HRegion getHRegion() {<a name="line.2246"></a>
-<span class="sourceLineNo">2247</span>    return this.region;<a name="line.2247"></a>
-<span class="sourceLineNo">2248</span>  }<a name="line.2248"></a>
-<span class="sourceLineNo">2249</span><a name="line.2249"></a>
-<span class="sourceLineNo">2250</span>  public RegionCoprocessorHost getCoprocessorHost() {<a name="line.2250"></a>
-<span class="sourceLineNo">2251</span>    return this.region.getCoprocessorHost();<a name="line.2251"></a>
-<span class="sourceLineNo">2252</span>  }<a name="line.2252"></a>
-<span class="sourceLineNo">2253</span><a name="line.2253"></a>
-<span class="sourceLineNo">2254</span>  @Override<a name="line.2254"></a>
-<span class="sourceLineNo">2255</span>  public RegionInfo getRegionInfo() {<a name="line.2255"></a>
-<span class="sourceLineNo">2256</span>    return this.fs.getRegionInfo();<a name="line.2256"></a>
-<span class="sourceLineNo">2257</span>  }<a name="line.2257"></a>
-<span class="sourceLineNo">2258</span><a name="line.2258"></a>
-<span class="sourceLineNo">2259</span>  @Override<a name="line.2259"></a>
-<span class="sourceLineNo">2260</span>  public boolean areWritesEnabled() {<a name="line.2260"></a>
-<span class="sourceLineNo">2261</span>    return this.region.areWritesEnabled();<a name="line.2261"></a>
-<span class="sourceLineNo">2262</span>  }<a name="line.2262"></a>
-<span class="sourceLineNo">2263</span><a name="line.2263"></a>
-<span class="sourceLineNo">2264</span>  @Override<a name="line.2264"></a>
-<span class="sourceLineNo">2265</span>  public long getSmallestReadPoint() {<a name="line.2265"></a>
-<span class="sourceLineNo">2266</span>    return this.region.getSmallestReadPoint();<a name="line.2266"></a>
-<span class="sourceLineNo">2267</span>  }<a name="line.2267"></a>
-<span class="sourceLineNo">2268</span><a name="line.2268"></a>
-<span class="sourceLineNo">2269</span>  /**<a name="line.2269"></a>
-<span class="sourceLineNo">2270</span>   * Adds or replaces the specified KeyValues.<a name="line.2270"></a>
-<span class="sourceLineNo">2271</span>   * &lt;p&gt;<a name="line.2271"></a>
-<span class="sourceLineNo">2272</span>   * For each KeyValue specified, if a cell with the same row, family, and qualifier exists in<a name="line.2272"></a>
-<span class="sourceLineNo">2273</span>   * MemStore, it will be replaced. Otherwise, it will just be inserted to MemStore.<a name="line.2273"></a>
-<span class="sourceLineNo">2274</span>   * &lt;p&gt;<a name="line.2274"></a>
-<span class="sourceLineNo">2275</span>   * This operation is atomic on each KeyValue (row/family/qualifier) but not necessarily atomic<a name="line.2275"></a>
-<span class="sourceLineNo">2276</span>   * across all of them.<a name="line.2276"></a>
-<span class="sourceLineNo">2277</span>   * @param readpoint readpoint below which we can safely remove duplicate KVs<a name="line.2277"></a>
-<span class="sourceLineNo">2278</span>   * @throws IOException<a name="line.2278"></a>
-<span class="sourceLineNo">2279</span>   */<a name="line.2279"></a>
-<span class="sourceLineNo">2280</span>  public void upsert(Iterable&lt;Cell&gt; cells, long readpoint, MemStoreSizing memstoreSizing)<a name="line.2280"></a>
-<span class="sourceLineNo">2281</span>      throws IOException {<a name="line.2281"></a>
-<span class="sourceLineNo">2282</span>    this.lock.readLock().lock();<a name="line.2282"></a>
-<span class="sourceLineNo">2283</span>    try {<a name="line.2283"></a>
-<span class="sourceLineNo">2284</span>      this.memstore.upsert(cells, readpoint, memstoreSizing);<a name="line.2284"></a>
-<span class="sourceLineNo">2285</span>    } finally {<a name="line.2285"></a>
-<span class="sourceLineNo">2286</span>      this.lock.readLock().unlock();<a name="line.2286"></a>
-<span class="sourceLineNo">2287</span>    }<a name="line.2287"></a>
-<span class="sourceLineNo">2288</span>  }<a name="line.2288"></a>
-<span class="sourceLineNo">2289</span><a name="line.2289"></a>
-<span class="sourceLineNo">2290</span>  public StoreFlushContext createFlushContext(long cacheFlushId, FlushLifeCycleTracker tracker) {<a name="line.2290"></a>
-<span class="sourceLineNo">2291</span>    return new StoreFlusherImpl(cacheFlushId, tracker);<a name="line.2291"></a>
-<span class="sourceLineNo">2292</span>  }<a name="line.2292"></a>
-<span class="sourceLineNo">2293</span><a name="line.2293"></a>
-<span class="sourceLineNo">2294</span>  private final class StoreFlusherImpl implements StoreFlushContext {<a name="line.2294"></a>
-<span class="sourceLineNo">2295</span><a name="line.2295"></a>
-<span class="sourceLineNo">2296</span>    private final FlushLifeCycleTracker tracker;<a name="line.2296"></a>
-<span class="sourceLineNo">2297</span>    private final long cacheFlushSeqNum;<a name="line.2297"></a>
-<span class="sourceLineNo">2298</span>    private MemStoreSnapshot snapshot;<a name="line.2298"></a>
-<span class="sourceLineNo">2299</span>    private List&lt;Path&gt; tempFiles;<a name="line.2299"></a>
-<span class="sourceLineNo">2300</span>    private List&lt;Path&gt; committedFiles;<a name="line.2300"></a>
-<span class="sourceLineNo">2301</span>    private long cacheFlushCount;<a name="line.2301"></a>
-<span class="sourceLineNo">2302</span>    private long cacheFlushSize;<a name="line.2302"></a>
-<span class="sourceLineNo">2303</span>    private long outputFileSize;<a name="line.2303"></a>
-<span class="sourceLineNo">2304</span><a name="line.2304"></a>
-<span class="sourceLineNo">2305</span>    private StoreFlusherImpl(long cacheFlushSeqNum, FlushLifeCycleTracker tracker) {<a name="line.2305"></a>
-<span class="sourceLineNo">2306</span>      this.cacheFlushSeqNum = cacheFlushSeqNum;<a name="line.2306"></a>
-<span class="sourceLineNo">2307</span>      this.tracker = tracker;<a name="line.2307"></a>
-<span class="sourceLineNo">2308</span>    }<a name="line.2308"></a>
-<span class="sourceLineNo">2309</span><a name="line.2309"></a>
-<span class="sourceLineNo">2310</span>    /**<a name="line.2310"></a>
-<span class="sourceLineNo">2311</span>     * This is not thread safe. The caller should have a lock on the region or the store.<a name="line.2311"></a>
-<span class="sourceLineNo">2312</span>     * If necessary, the lock can be added with the patch provided in HBASE-10087<a name="line.2312"></a>
-<span class="sourceLineNo">2313</span>     */<a name="line.2313"></a>
-<span class="sourceLineNo">2314</span>    @Override<a name="line.2314"></a>
-<span class="sourceLineNo">2315</span>    public MemStoreSize prepare() {<a name="line.2315"></a>
-<span class="sourceLineNo">2316</span>      // passing the current sequence number of the wal - to allow bookkeeping in the memstore<a name="line.2316"></a>
-<span class="sourceLineNo">2317</span>      this.snapshot = memstore.snapshot();<a name="line.2317"></a>
-<span class="sourceLineNo">2318</span>      this.cacheFlushCount = snapshot.getCellsCount();<a name="line.2318"></a>
-<span class="sourceLineNo">2319</span>      this.cacheFlushSize = snapshot.getDataSize();<a name="line.2319"></a>
-<span class="sourceLineNo">2320</span>      committedFiles = new ArrayList&lt;&gt;(1);<a name="line.2320"></a>
-<span class="sourceLineNo">2321</span>      return snapshot.getMemStoreSize();<a name="line.2321"></a>
-<span class="sourceLineNo">2322</span>    }<a name="line.2322"></a>
-<span class="sourceLineNo">2323</span><a name="line.2323"></a>
-<span class="sourceLineNo">2324</span>    @Override<a name="line.2324"></a>
-<span class="sourceLineNo">2325</span>    public void flushCache(MonitoredTask status) throws IOException {<a name="line.2325"></a>
-<span class="sourceLineNo">2326</span>      RegionServerServices rsService = region.getRegionServerServices();<a name="line.2326"></a>
-<span class="sourceLineNo">2327</span>      ThroughputController throughputController =<a name="line.2327"></a>
-<span class="sourceLineNo">2328</span>          rsService == null ? null : rsService.getFlushThroughputController();<a name="line.2328"></a>
-<span class="sourceLineNo">2329</span>      tempFiles =<a name="line.2329"></a>
-<span class="sourceLineNo">2330</span>          HStore.this.flushCache(cacheFlushSeqNum, snapshot, status, throughputController, tracker);<a name="line.2330"></a>
-<span class="sourceLineNo">2331</span>    }<a name="line.2331"></a>
-<span class="sourceLineNo">2332</span><a name="line.2332"></a>
-<span class="sourceLineNo">2333</span>    @Override<a name="line.2333"></a>
-<span class="sourceLineNo">2334</span>    public boolean commit(MonitoredTask status) throws IOException {<a name="line.2334"></a>
-<span class="sourceLineNo">2335</span>      if (CollectionUtils.isEmpty(this.tempFiles)) {<a name="line.2335"></a>
-<span class="sourceLineNo">2336</span>        return false;<a name="line.2336"></a>
-<span class="sourceLineNo">2337</span>      }<a name="line.2337"></a>
-<span class="sourceLineNo">2338</span>      List&lt;HStoreFile&gt; storeFiles = new ArrayList&lt;&gt;(this.tempFiles.size());<a name="line.2338"></a>
-<span class="sourceLineNo">2339</span>      for (Path storeFilePath : tempFiles) {<a name="line.2339"></a>
-<span class="sourceLineNo">2340</span>        try {<a name="line.2340"></a>
-<span class="sourceLineNo">2341</span>          HStoreFile sf = HStore.this.commitFile(storeFilePath, cacheFlushSeqNum, status);<a name="line.2341"></a>
-<span class="sourceLineNo">2342</span>          outputFileSize += sf.getReader().length();<a name="line.2342"></a>
-<span class="sourceLineNo">2343</span>          storeFiles.add(sf);<a name="line.2343"></a>
-<span class="sourceLineNo">2344</span>        } catch (IOException ex) {<a name="line.2344"></a>
-<span class="sourceLineNo">2345</span>          LOG.error("Failed to commit store file {}", storeFilePath, ex);<a name="line.2345"></a>
-<span class="sourceLineNo">2346</span>          // Try to delete the files we have committed before.<a name="line.2346"></a>
-<span class="sourceLineNo">2347</span>          for (HStoreFile sf : storeFiles) {<a name="line.2347"></a>
-<span class="sourceLineNo">2348</span>            Path pathToDelete = sf.getPath();<a name="line.2348"></a>
-<span class="sourceLineNo">2349</span>            try {<a name="line.2349"></a>
-<span class="sourceLineNo">2350</span>              sf.deleteStoreFile();<a name="line.2350"></a>
-<span class="sourceLineNo">2351</span>            } catch (IOException deleteEx) {<a name="line.2351"></a>
-<span class="sourceLineNo">2352</span>              LOG.error(HBaseMarkers.FATAL, "Failed to delete store file we committed, "<a name="line.2352"></a>
-<span class="sourceLineNo">2353</span>                  + "halting {}", pathToDelete, ex);<a name="line.2353"></a>
-<span class="sourceLineNo">2354</span>              Runtime.getRuntime().halt(1);<a name="line.2354"></a>
-<span class="sourceLineNo">2355</span>            }<a name="line.2355"></a>
-<span class="sourceLineNo">2356</span>          }<a name="line.2356"></a>
-<span class="sourceLineNo">2357</span>          throw new IOException("Failed to commit the flush", ex);<a name="line.2357"></a>
-<span class="sourceLineNo">2358</span>        }<a name="line.2358"></a>
+<span class="sourceLineNo">2190</span>  private long getStorefileFieldSize(HStoreFile file, ToLongFunction&lt;StoreFileReader&gt; f) {<a name="line.2190"></a>
+<span class="sourceLineNo">2191</span>    if (file == null) {<a name="line.2191"></a>
+<span class="sourceLineNo">2192</span>      return 0L;<a name="line.2192"></a>
+<span class="sourceLineNo">2193</span>    }<a name="line.2193"></a>
+<span class="sourceLineNo">2194</span>    StoreFileReader reader = file.getReader();<a name="line.2194"></a>
+<span class="sourceLineNo">2195</span>    if (reader == null) {<a name="line.2195"></a>
+<span class="sourceLineNo">2196</span>      return 0L;<a name="line.2196"></a>
+<span class="sourceLineNo">2197</span>    }<a name="line.2197"></a>
+<span class="sourceLineNo">2198</span>    return f.applyAsLong(reader);<a name="line.2198"></a>
+<span class="sourceLineNo">2199</span>  }<a name="line.2199"></a>
+<span class="sourceLineNo">2200</span><a name="line.2200"></a>
+<span class="sourceLineNo">2201</span>  private long getStorefilesFieldSize(ToLongFunction&lt;StoreFileReader&gt; f) {<a name="line.2201"></a>
+<span class="sourceLineNo">2202</span>    return this.storeEngine.getStoreFileManager().getStorefiles().stream()<a name="line.2202"></a>
+<span class="sourceLineNo">2203</span>      .mapToLong(file -&gt; getStorefileFieldSize(file, f)).sum();<a name="line.2203"></a>
+<span class="sourceLineNo">2204</span>  }<a name="line.2204"></a>
+<span class="sourceLineNo">2205</span><a name="line.2205"></a>
+<span class="sourceLineNo">2206</span>  @Override<a name="line.2206"></a>
+<span class="sourceLineNo">2207</span>  public long getStorefilesRootLevelIndexSize() {<a name="line.2207"></a>
+<span class="sourceLineNo">2208</span>    return getStorefilesFieldSize(StoreFileReader::indexSize);<a name="line.2208"></a>
+<span class="sourceLineNo">2209</span>  }<a name="line.2209"></a>
+<span class="sourceLineNo">2210</span><a name="line.2210"></a>
+<span class="sourceLineNo">2211</span>  @Override<a name="line.2211"></a>
+<span class="sourceLineNo">2212</span>  public long getTotalStaticIndexSize() {<a name="line.2212"></a>
+<span class="sourceLineNo">2213</span>    return getStorefilesFieldSize(StoreFileReader::getUncompressedDataIndexSize);<a name="line.2213"></a>
+<span class="sourceLineNo">2214</span>  }<a name="line.2214"></a>
+<span class="sourceLineNo">2215</span><a name="line.2215"></a>
+<span class="sourceLineNo">2216</span>  @Override<a name="line.2216"></a>
+<span class="sourceLineNo">2217</span>  public long getTotalStaticBloomSize() {<a name="line.2217"></a>
+<span class="sourceLineNo">2218</span>    return getStorefilesFieldSize(StoreFileReader::getTotalBloomSize);<a name="line.2218"></a>
+<span class="sourceLineNo">2219</span>  }<a name="line.2219"></a>
+<span class="sourceLineNo">2220</span><a name="line.2220"></a>
+<span class="sourceLineNo">2221</span>  @Override<a name="line.2221"></a>
+<span class="sourceLineNo">2222</span>  public MemStoreSize getMemStoreSize() {<a name="line.2222"></a>
+<span class="sourceLineNo">2223</span>    return this.memstore.size();<a name="line.2223"></a>
+<span class="sourceLineNo">2224</span>  }<a name="line.2224"></a>
+<span class="sourceLineNo">2225</span><a name="line.2225"></a>
+<span class="sourceLineNo">2226</span>  @Override<a name="line.2226"></a>
+<span class="sourceLineNo">2227</span>  public int getCompactPriority() {<a name="line.2227"></a>
+<span class="sourceLineNo">2228</span>    int priority = this.storeEngine.getStoreFileManager().getStoreCompactionPriority();<a name="line.2228"></a>
+<span class="sourceLineNo">2229</span>    if (priority == PRIORITY_USER) {<a name="line.2229"></a>
+<span class="sourceLineNo">2230</span>      LOG.warn("Compaction priority is USER despite there being no user compaction");<a name="line.2230"></a>
+<span class="sourceLineNo">2231</span>    }<a name="line.2231"></a>
+<span class="sourceLineNo">2232</span>    return priority;<a name="line.2232"></a>
+<span class="sourceLineNo">2233</span>  }<a name="line.2233"></a>
+<span class="sourceLineNo">2234</span><a name="line.2234"></a>
+<span class="sourceLineNo">2235</span>  public boolean throttleCompaction(long compactionSize) {<a name="line.2235"></a>
+<span class="sourceLineNo">2236</span>    return storeEngine.getCompactionPolicy().throttleCompaction(compactionSize);<a name="line.2236"></a>
+<span class="sourceLineNo">2237</span>  }<a name="line.2237"></a>
+<span class="sourceLineNo">2238</span><a name="line.2238"></a>
+<span class="sourceLineNo">2239</span>  public HRegion getHRegion() {<a name="line.2239"></a>
+<span class="sourceLineNo">2240</span>    return this.region;<a name="line.2240"></a>
+<span class="sourceLineNo">2241</span>  }<a name="line.2241"></a>
+<span class="sourceLineNo">2242</span><a name="line.2242"></a>
+<span class="sourceLineNo">2243</span>  public RegionCoprocessorHost getCoprocessorHost() {<a name="line.2243"></a>
+<span class="sourceLineNo">2244</span>    return this.region.getCoprocessorHost();<a name="line.2244"></a>
+<span class="sourceLineNo">2245</span>  }<a name="line.2245"></a>
+<span class="sourceLineNo">2246</span><a name="line.2246"></a>
+<span class="sourceLineNo">2247</span>  @Override<a name="line.2247"></a>
+<span class="sourceLineNo">2248</span>  public RegionInfo getRegionInfo() {<a name="line.2248"></a>
+<span class="sourceLineNo">2249</span>    return this.fs.getRegionInfo();<a name="line.2249"></a>
+<span class="sourceLineNo">2250</span>  }<a name="line.2250"></a>
+<span class="sourceLineNo">2251</span><a name="line.2251"></a>
+<span class="sourceLineNo">2252</span>  @Override<a name="line.2252"></a>
+<span class="sourceLineNo">2253</span>  public boolean areWritesEnabled() {<a name="line.2253"></a>
+<span class="sourceLineNo">2254</span>    return this.region.areWritesEnabled();<a name="line.2254"></a>
+<span class="sourceLineNo">2255</span>  }<a name="line.2255"></a>
+<span class="sourceLineNo">2256</span><a name="line.2256"></a>
+<span class="sourceLineNo">2257</span>  @Override<a name="line.2257"></a>
+<span class="sourceLineNo">2258</span>  public long getSmallestReadPoint() {<a name="line.2258"></a>
+<span class="sourceLineNo">2259</span>    return this.region.getSmallestReadPoint();<a name="line.2259"></a>
+<span class="sourceLineNo">2260</span>  }<a name="line.2260"></a>
+<span class="sourceLineNo">2261</span><a name="line.2261"></a>
+<span class="sourceLineNo">2262</span>  /**<a name="line.2262"></a>
+<span class="sourceLineNo">2263</span>   * Adds or replaces the specified KeyValues.<a name="line.2263"></a>
+<span class="sourceLineNo">2264</span>   * &lt;p&gt;<a name="line.2264"></a>
+<span class="sourceLineNo">2265</span>   * For each KeyValue specified, if a cell with the same row, family, and qualifier exists in<a name="line.2265"></a>
+<span class="sourceLineNo">2266</span>   * MemStore, it will be replaced. Otherwise, it will just be inserted to MemStore.<a name="line.2266"></a>
+<span class="sourceLineNo">2267</span>   * &lt;p&gt;<a name="line.2267"></a>
+<span class="sourceLineNo">2268</span>   * This operation is atomic on each KeyValue (row/family/qualifier) but not necessarily atomic<a name="line.2268"></a>
+<span class="sourceLineNo">2269</span>   * across all of them.<a name="line.2269"></a>
+<span class="sourceLineNo">2270</span>   * @param readpoint readpoint below which we can safely remove duplicate KVs<a name="line.2270"></a>
+<span class="sourceLineNo">2271</span>   * @throws IOException<a name="line.2271"></a>
+<span class="sourceLineNo">2272</span>   */<a name="line.2272"></a>
+<span class="sourceLineNo">2273</span>  public void upsert(Iterable&lt;Cell&gt; cells, long readpoint, MemStoreSizing memstoreSizing)<a name="line.2273"></a>
+<span class="sourceLineNo">2274</span>      throws IOException {<a name="line.2274"></a>
+<span class="sourceLineNo">2275</span>    this.lock.readLock().lock();<a name="line.2275"></a>
+<span class="sourceLineNo">2276</span>    try {<a name="line.2276"></a>
+<span class="sourceLineNo">2277</span>      this.memstore.upsert(cells, readpoint, memstoreSizing);<a name="line.2277"></a>
+<span class="sourceLineNo">2278</span>    } finally {<a name="line.2278"></a>
+<span class="sourceLineNo">2279</span>      this.lock.readLock().unlock();<a name="line.2279"></a>
+<span class="sourceLineNo">2280</span>    }<a name="line.2280"></a>
+<span class="sourceLineNo">2281</span>  }<a name="line.2281"></a>
+<span class="sourceLineNo">2282</span><a name="line.2282"></a>
+<span class="sourceLineNo">2283</span>  public StoreFlushContext createFlushContext(long cacheFlushId, FlushLifeCycleTracker tracker) {<a name="line.2283"></a>
+<span class="sourceLineNo">2284</span>    return new StoreFlusherImpl(cacheFlushId, tracker);<a name="line.2284"></a>
+<span class="sourceLineNo">2285</span>  }<a name="line.2285"></a>
+<span class="sourceLineNo">2286</span><a name="line.2286"></a>
+<span class="sourceLineNo">2287</span>  private final class StoreFlusherImpl implements StoreFlushContext {<a name="line.2287"></a>
+<span class="sourceLineNo">2288</span><a name="line.2288"></a>
+<span class="sourceLineNo">2289</span>    private final FlushLifeCycleTracker tracker;<a name="line.2289"></a>
+<span class="sourceLineNo">2290</span>    private final long cacheFlushSeqNum;<a name="line.2290"></a>
+<span class="sourceLineNo">2291</span>    private MemStoreSnapshot snapshot;<a name="line.2291"></a>
+<span class="sourceLineNo">2292</span>    private List&lt;Path&gt; tempFiles;<a name="line.2292"></a>
+<span class="sourceLineNo">2293</span>    private List&lt;Path&gt; committedFiles;<a name="line.2293"></a>
+<span class="sourceLineNo">2294</span>    private long cacheFlushCount;<a name="line.2294"></a>
+<span class="sourceLineNo">2295</span>    private long cacheFlushSize;<a name="line.2295"></a>
+<span class="sourceLineNo">2296</span>    private long outputFileSize;<a name="line.2296"></a>
+<span class="sourceLineNo">2297</span><a name="line.2297"></a>
+<span class="sourceLineNo">2298</span>    private StoreFlusherImpl(long cacheFlushSeqNum, FlushLifeCycleTracker tracker) {<a name="line.2298"></a>
+<span class="sourceLineNo">2299</span>      this.cacheFlushSeqNum = cacheFlushSeqNum;<a name="line.2299"></a>
+<span class="sourceLineNo">2300</span>      this.tracker = tracker;<a name="line.2300"></a>
+<span class="sourceLineNo">2301</span>    }<a name="line.2301"></a>
+<span class="sourceLineNo">2302</span><a name="line.2302"></a>
+<span class="sourceLineNo">2303</span>    /**<a name="line.2303"></a>
+<span class="sourceLineNo">2304</span>     * This is not thread safe. The caller should have a lock on the region or the store.<a name="line.2304"></a>
+<span class="sourceLineNo">2305</span>     * If necessary, the lock can be added with the patch provided in HBASE-10087<a name="line.2305"></a>
+<span class="sourceLineNo">2306</span>     */<a name="line.2306"></a>
+<span class="sourceLineNo">2307</span>    @Override<a name="line.2307"></a>
+<span class="sourceLineNo">2308</span>    public MemStoreSize prepare() {<a name="line.2308"></a>
+<span class="sourceLineNo">2309</span>      // passing the current sequence number of the wal - to allow bookkeeping in the memstore<a name="line.2309"></a>
+<span class="sourceLineNo">2310</span>      this.snapshot = memstore.snapshot();<a name="line.2310"></a>
+<span class="sourceLineNo">2311</span>      this.cacheFlushCount = snapshot.getCellsCount();<a name="line.2311"></a>
+<span class="sourceLineNo">2312</span>      this.cacheFlushSize = snapshot.getDataSize();<a name="line.2312"></a>
+<span class="sourceLineNo">2313</span>      committedFiles = new ArrayList&lt;&gt;(1);<a name="line.2313"></a>
+<span class="sourceLineNo">2314</span>      return snapshot.getMemStoreSize();<a name="line.2314"></a>
+<span class="sourceLineNo">2315</span>    }<a name="line.2315"></a>
+<span class="sourceLineNo">2316</span><a name="line.2316"></a>
+<span class="sourceLineNo">2317</span>    @Override<a name="line.2317"></a>
+<span class="sourceLineNo">2318</span>    public void flushCache(MonitoredTask status) throws IOException {<a name="line.2318"></a>
+<span class="sourceLineNo">2319</span>      RegionServerServices rsService = region.getRegionServerServices();<a name="line.2319"></a>
+<span class="sourceLineNo">2320</span>      ThroughputController throughputController =<a name="line.2320"></a>
+<span class="sourceLineNo">2321</span>          rsService == null ? null : rsService.getFlushThroughputController();<a name="line.2321"></a>
+<span class="sourceLineNo">2322</span>      tempFiles =<a name="line.2322"></a>
+<span class="sourceLineNo">2323</span>          HStore.this.flushCache(cacheFlushSeqNum, snapshot, status, throughputController, tracker);<a name="line.2323"></a>
+<span class="sourceLineNo">2324</span>    }<a name="line.2324"></a>
+<span class="sourceLineNo">2325</span><a name="line.2325"></a>
+<span class="sourceLineNo">2326</span>    @Override<a name="line.2326"></a>
+<span class="sourceLineNo">2327</span>    public boolean commit(MonitoredTask status) throws IOException {<a name="line.2327"></a>
+<span class="sourceLineNo">2328</span>      if (CollectionUtils.isEmpty(this.tempFiles)) {<a name="line.2328"></a>
+<span class="sourceLineNo">2329</span>        return false;<a name="line.2329"></a>
+<span class="sourceLineNo">2330</span>      }<a name="line.2330"></a>
+<span class="sourceLineNo">2331</span>      List&lt;HStoreFile&gt; storeFiles = new ArrayList&lt;&gt;(this.tempFiles.size());<a name="line.2331"></a>
+<span class="sourceLineNo">2332</span>      for (Path storeFilePath : tempFiles) {<a name="line.2332"></a>
+<span class="sourceLineNo">2333</span>        try {<a name="line.2333"></a>
+<span class="sourceLineNo">2334</span>          HStoreFile sf = HStore.this.commitFile(storeFilePath, cacheFlushSeqNum, status);<a name="line.2334"></a>
+<span class="sourceLineNo">2335</span>          outputFileSize += sf.getReader().length();<a name="line.2335"></a>
+<span class="sourceLineNo">2336</span>          storeFiles.add(sf);<a name="line.2336"></a>
+<span class="sourceLineNo">2337</span>        } catch (IOException ex) {<a name="line.2337"></a>
+<span class="sourceLineNo">2338</span>          LOG.error("Failed to commit store file {}", storeFilePath, ex);<a name="line.2338"></a>
+<span class="sourceLineNo">2339</span>          // Try to delete the files we have committed before.<a name="line.2339"></a>
+<span class="sourceLineNo">2340</span>          for (HStoreFile sf : storeFiles) {<a name="line.2340"></a>
+<span class="sourceLineNo">2341</span>            Path pathToDelete = sf.getPath();<a name="line.2341"></a>
+<span class="sourceLineNo">2342</span>            try {<a name="line.2342"></a>
+<span class="sourceLineNo">2343</span>              sf.deleteStoreFile();<a name="line.2343"></a>
+<span class="sourceLineNo">2344</span>            } catch (IOException deleteEx) {<a name="line.2344"></a>
+<span class="sourceLineNo">2345</span>              LOG.error(HBaseMarkers.FATAL, "Failed to delete store file we committed, "<a name="line.2345"></a>
+<span class="sourceLineNo">2346</span>                  + "halting {}", pathToDelete, ex);<a name="line.2346"></a>
+<span class="sourceLineNo">2347</span>              Runtime.getRuntime().halt(1);<a name="line.2347"></a>
+<span class="sourceLineNo">2348</span>            }<a name="line.2348"></a>
+<span class="sourceLineNo">2349</span>          }<a name="line.2349"></a>
+<span class="sourceLineNo">2350</span>          throw new IOException("Failed to commit the flush", ex);<a name="line.2350"></a>
+<span class="sourceLineNo">2351</span>        }<a name="line.2351"></a>
+<span class="sourceLineNo">2352</span>      }<a name="line.2352"></a>
+<span class="sourceLineNo">2353</span><a name="line.2353"></a>
+<span class="sourceLineNo">2354</span>      for (HStoreFile sf : storeFiles) {<a name="line.2354"></a>
+<span class="sourceLineNo">2355</span>        if (HStore.this.getCoprocessorHost() != null) {<a name="line.2355"></a>
+<span class="sourceLineNo">2356</span>          HStore.this.getCoprocessorHost().postFlush(HStore.this, sf, tracker);<a name="line.2356"></a>
+<span class="sourceLineNo">2357</span>        }<a name="line.2357"></a>
+<span class="sourceLineNo">2358</span>        committedFiles.add(sf.getPath());<a name="line.2358"></a>
 <span class="sourceLineNo">2359</span>      }<a name="line.2359"></a>
 <span class="sourceLineNo">2360</span><a name="line.2360"></a>
-<span class="sourceLineNo">2361</span>      for (HStoreFile sf : storeFiles) {<a name="line.2361"></a>
-<span class="sourceLineNo">2362</span>        if (HStore.this.getCoprocessorHost() != null) {<a name="line.2362"></a>
-<span class="sourceLineNo">2363</span>          HStore.this.getCoprocessorHost().postFlush(HStore.this, sf, tracker);<a name="line.2363"></a>
-<span class="sourceLineNo">2364</span>        }<a name="line.2364"></a>
-<span class="sourceLineNo">2365</span>        committedFiles.add(sf.getPath());<a name="line.2365"></a>
-<span class="sourceLineNo">2366</span>      }<a name="line.2366"></a>
-<span class="sourceLineNo">2367</span><a name="line.2367"></a>
-<span class="sourceLineNo">2368</span>      HStore.this.flushedCellsCount.addAndGet(cacheFlushCount);<a name="line.2368"></a>
-<span class="sourceLineNo">2369</span>      HStore.this.flushedCellsSize.addAndGet(cacheFlushSize);<a name="line.2369"></a>
-<span class="sourceLineNo">2370</span>      HStore.this.flushedOutputFileSize.addAndGet(outputFileSize);<a name="line.2370"></a>
-<span class="sourceLineNo">2371</span><a name="line.2371"></a>
-<span class="sourceLineNo">2372</span>      // Add new file to store files.  Clear snapshot too while we have the Store write lock.<a name="line.2372"></a>
-<span class="sourceLineNo">2373</span>      return HStore.this.updateStorefiles(storeFiles, snapshot.getId());<a name="line.2373"></a>
-<span class="sourceLineNo">2374</span>    }<a name="line.2374"></a>
-<span class="sourceLineNo">2375</span><a name="line.2375"></a>
-<span class="sourceLineNo">2376</span>    @Override<a name="line.2376"></a>
-<span class="sourceLineNo">2377</span>    public long getOutputFileSize() {<a name="line.2377"></a>
-<span class="sourceLineNo">2378</span>      return outputFileSize;<a name="line.2378"></a>
-<span class="sourceLineNo">2379</span>    }<a name="line.2379"></a>
-<span class="sourceLineNo">2380</span><a name="line.2380"></a>
-<span class="sourceLineNo">2381</span>    @Override<a name="line.2381"></a>
-<span class="sourceLineNo">2382</span>    public List&lt;Path&gt; getCommittedFiles() {<a name="line.2382"></a>
-<span class="sourceLineNo">2383</span>      return committedFiles;<a name="line.2383"></a>
-<span class="sourceLineNo">2384</span>    }<a name="line.2384"></a>
-<span class="sourceLineNo">2385</span><a name="line.2385"></a>
-<span class="sourceLineNo">2386</span>    /**<a name="line.2386"></a>
-<span class="sourceLineNo">2387</span>     * Similar to commit, but called in secondary region replicas for replaying the<a name="line.2387"></a>
-<span class="sourceLineNo">2388</span>     * flush cache from primary region. Adds the new files to the store, and drops the<a name="line.2388"></a>
-<span class="sourceLineNo">2389</span>     * snapshot depending on dropMemstoreSnapshot argument.<a name="line.2389"></a>
-<span class="sourceLineNo">2390</span>     * @param fileNames names of the flushed files<a name="line.2390"></a>
-<span class="sourceLineNo">2391</span>     * @param dropMemstoreSnapshot whether to drop the prepared memstore snapshot<a name="line.2391"></a>
-<span class="sourceLineNo">2392</span>     * @throws IOException<a name="line.2392"></a>
-<span class="sourceLineNo">2393</span>     */<a name="line.2393"></a>
-<span class="sourceLineNo">2394</span>    @Override<a name="line.2394"></a>
-<span class="sourceLineNo">2395</span>    public void replayFlush(List&lt;String&gt; fileNames, boolean dropMemstoreSnapshot)<a name="line.2395"></a>
-<span class="sourceLineNo">2396</span>        throws IOException {<a name="line.2396"></a>
-<span class="sourceLineNo">2397</span>      List&lt;HStoreFile&gt; storeFiles = new ArrayList&lt;&gt;(fileNames.size());<a name="line.2397"></a>
-<span class="sourceLineNo">2398</span>      for (String file : fileNames) {<a name="line.2398"></a>
-<span class="sourceLineNo">2399</span>        // open the file as a store file (hfile link, etc)<a name="line.2399"></a>
-<span class="sourceLineNo">2400</span>        StoreFileInfo storeFileInfo = fs.getStoreFileInfo(getColumnFamilyName(), file);<a name="line.2400"></a>
-<span class="sourceLineNo">2401</span>        HStoreFile storeFile = createStoreFileAndReader(storeFileInfo);<a name="line.2401"></a>
-<span class="sourceLineNo">2402</span>        storeFiles.add(storeFile);<a name="line.2402"></a>
-<span class="sourceLineNo">2403</span>        HStore.this.storeSize.addAndGet(storeFile.getReader().length());<a name="line.2403"></a>
-<span class="sourceLineNo">2404</span>        HStore.this.totalUncompressedBytes<a name="line.2404"></a>
-<span class="sourceLineNo">2405</span>            .addAndGet(storeFile.getReader().getTotalUncompressedBytes());<a name="line.2405"></a>
-<span class="sourceLineNo">2406</span>        if (LOG.isInfoEnabled()) {<a name="line.2406"></a>
-<span class="sourceLineNo">2407</span>          LOG.info("Region: " + HStore.this.getRegionInfo().getEncodedName() +<a name="line.2407"></a>
-<span class="sourceLineNo">2408</span>            " added " + storeFile + ", entries=" + storeFile.getReader().getEntries() +<a name="line.2408"></a>
-<span class="sourceLineNo">2409</span>              ", sequenceid=" + storeFile.getReader().getSequenceID() + ", filesize="<a name="line.2409"></a>
-<span class="sourceLineNo">2410</span>              + TraditionalBinaryPrefix.long2String(storeFile.getReader().length(), "", 1));<a name="line.2410"></a>
-<span class="sourceLineNo">2411</span>        }<a name="line.2411"></a>
-<span class="sourceLineNo">2412</span>      }<a name="line.2412"></a>
-<span class="sourceLineNo">2413</span><a name="line.2413"></a>
-<span class="sourceLineNo">2414</span>      long snapshotId = -1; // -1 means do not drop<a name="line.2414"></a>
-<span class="sourceLineNo">2415</span>      if (dropMemstoreSnapshot &amp;&amp; snapshot != null) {<a name="line.2415"></a>
-<span class="sourceLineNo">2416</span>        snapshotId = snapshot.getId();<a name="line.2416"></a>
-<span class="sourceLineNo">2417</span>        snapshot.close();<a name="line.2417"></a>
-<span class="sourceLineNo">2418</span>      }<a name="line.2418"></a>
-<span class="sourceLineNo">2419</span>      HStore.this.updateStorefiles(storeFiles, snapshotId);<a name="line.2419"></a>
-<span class="sourceLineNo">2420</span>    }<a name="line.2420"></a>
-<span class="sourceLineNo">2421</span><a name="line.2421"></a>
-<span class="sourceLineNo">2422</span>    /**<a name="line.2422"></a>
-<span class="sourceLineNo">2423</span>     * Abort the snapshot preparation. Drops the snapshot if any.<a name="line.2423"></a>
-<span class="sourceLineNo">2424</span>     * @throws IOException<a name="line.2424"></a>
-<span class="sourceLineNo">2425</span>     */<a name="line.2425"></a>
-<span class="sourceLineNo">2426</span>    @Override<a name="line.2426"></a>
-<span class="sourceLineNo">2427</span>    public void abort() throws IOException {<a name="line.2427"></a>
-<span class="sourceLineNo">2428</span>      if (snapshot != null) {<a name="line.2428"></a>
-<span class="sourceLineNo">2429</span>        //We need to close the snapshot when aborting, otherwise, the segment scanner<a name="line.2429"></a>
-<span class="sourceLineNo">2430</span>        //won't be closed. If we are using MSLAB, the chunk referenced by those scanners<a name="line.2430"></a>
-<span class="sourceLineNo">2431</span>        //can't be released, thus memory leak<a name="line.2431"></a>
-<span class="sourceLineNo">2432</span>        snapshot.close();<a name="line.2432"></a>
-<span class="sourceLineNo">2433</span>        HStore.this.updateStorefiles(Collections.emptyList(), snapshot.getId());<a name="line.2433"></a>
-<span class="sourceLineNo">2434</span>      }<a name="line.2434"></a>
-<span class="sourceLineNo">2435</span>    }<a name="line.2435"></a>
-<span class="sourceLineNo">2436</span>  }<a name="line.2436"></a>
-<span class="sourceLineNo">2437</span><a name="line.2437"></a>
-<span class="sourceLineNo">2438</span>  @Override<a name="line.2438"></a>
-<span class="sourceLineNo">2439</span>  public boolean needsCompaction() {<a name="line.2439"></a>
-<span class="sourceLineNo">2440</span>    List&lt;HStoreFile&gt; filesCompactingClone = null;<a name="line.2440"></a>
-<span class="sourceLineNo">2441</span>    synchronized (filesCompacting) {<a name="line.2441"></a>
-<span class="sourceLineNo">2442</span>      filesCompactingClone = Lists.newArrayList(filesCompacting);<a name="line.2442"></a>
-<span class="sourceLineNo">2443</span>    }<a name="line.2443"></a>
-<span class="sourceLineNo">2444</span>    return this.storeEngine.needsCompaction(filesCompactingClone);<a name="line.2444"></a>
-<span class="sourceLineNo">2445</span>  }<a name="line.2445"></a>
-<span class="sourceLineNo">2446</span><a name="line.2446"></a>
-<span class="sourceLineNo">2447</span>  /**<a name="line.2447"></a>
-<span class="sourceLineNo">2448</span>   * Used for tests.<a name="line.2448"></a>
-<span class="sourceLineNo">2449</span>   * @return cache configuration for this Store.<a name="line.2449"></a>
-<span class="sourceLineNo">2450</span>   */<a name="line.2450"></a>
-<span class="sourceLineNo">2451</span>  @VisibleForTesting<a name="line.2451"></a>
-<span class="sourceLineNo">2452</span>  public CacheConfig getCacheConfig() {<a name="line.2452"></a>
-<span class="sourceLineNo">2453</span>    return this.cacheConf;<a name="line.2453"></a>
-<span class="sourceLineNo">2454</span>  }<a name="line.2454"></a>
-<span class="sourceLineNo">2455</span><a name="line.2455"></a>
-<span class="sourceLineNo">2456</span>  public static final long FIXED_OVERHEAD =<a name="line.2456"></a>
-<span class="sourceLineNo">2457</span>      ClassSize.align(ClassSize.OBJECT + (27 * ClassSize.REFERENCE) + (2 * Bytes.SIZEOF_LONG)<a name="line.2457"></a>
-<span class="sourceLineNo">2458</span>              + (6 * Bytes.SIZEOF_INT) + (2 * Bytes.SIZEOF_BOOLEAN));<a name="line.2458"></a>
-<span class="sourceLineNo">2459</span><a name="line.2459"></a>
-<span class="sourceLineNo">2460</span>  public static final long DEEP_OVERHEAD = ClassSize.align(FIXED_OVERHEAD<a name="line.2460"></a>
-<span class="sourceLineNo">2461</span>      + ClassSize.OBJECT + ClassSize.REENTRANT_LOCK<a name="line.2461"></a>
-<span class="sourceLineNo">2462</span>      + ClassSize.CONCURRENT_SKIPLISTMAP<a name="line.2462"></a>
-<span class="sourceLineNo">2463</span>      + ClassSize.CONCURRENT_SKIPLISTMAP_ENTRY + ClassSize.OBJECT<a name="line.2463"></a>
-<span class="sourceLineNo">2464</span>      + ScanInfo.FIXED_OVERHEAD);<a name="line.2464"></a>
-<span class="sourceLineNo">2465</span><a name="line.2465"></a>
-<span class="sourceLineNo">2466</span>  @Override<a name="line.2466"></a>
-<span class="sourceLineNo">2467</span>  public long heapSize() {<a name="line.2467"></a>
-<span class="sourceLineNo">2468</span>    MemStoreSize memstoreSize = this.memstore.size();<a name="line.2468"></a>
-<span class="sourceLineNo">2469</span>    return DEEP_OVERHEAD + memstoreSize.getHeapSize();<a name="line.2469"></a>
-<span class="sourceLineNo">2470</span>  }<a name="line.2470"></a>
-<span class="sourceLineNo">2471</span><a name="line.2471"></a>
-<span class="sourceLineNo">2472</span>  @Override<a name="line.2472"></a>
-<span class="sourceLineNo">2473</span>  public CellComparator getComparator() {<a name="line.2473"></a>
-<span class="sourceLineNo">2474</span>    return comparator;<a name="line.2474"></a>
-<span class="sourceLineNo">2475</span>  }<a name="line.2475"></a>
-<span class="sourceLineNo">2476</span><a name="line.2476"></a>
-<span class="sourceLineNo">2477</span>  public ScanInfo getScanInfo() {<a name="line.2477"></a>
-<span class="sourceLineNo">2478</span>    return scanInfo;<a name="line.2478"></a>
-<span class="sourceLineNo">2479</span>  }<a name="line.2479"></a>
-<span class="sourceLineNo">2480</span><a name="line.2480"></a>
-<span class="sourceLineNo">2481</span>  /**<a name="line.2481"></a>
-<span class="sourceLineNo">2482</span>   * Set scan info, used by test<a name="line.2482"></a>
-<span class="sourceLineNo">2483</span>   * @param scanInfo new scan info to use for test<a name="line.2483"></a>
-<span class="sourceLineNo">2484</span>   */<a name="line.2484"></a>
-<span class="sourceLineNo">2485</span>  void setScanInfo(ScanInfo scanInfo) {<a name="line.2485"></a>
-<span class="sourceLineNo">2486</span>    this.scanInfo = scanInfo;<a name="line.2486"></a>
-<span class="sourceLineNo">2487</span>  }<a name="line.2487"></a>
-<span class="sourceLineNo">2488</span><a name="line.2488"></a>
-<span class="sourceLineNo">2489</span>  @Override<a name="line.2489"></a>
-<span class="sourceLineNo">2490</span>  public boolean hasTooManyStoreFiles() {<a name="line.2490"></a>
-<span class="sourceLineNo">2491</span>    return getStorefilesCount() &gt; this.blockingFileCount;<a name="line.2491"></a>
-<span class="sourceLineNo">2492</span>  }<a name="line.2492"></a>
-<span class="sourceLineNo">2493</span><a name="line.2493"></a>
-<span class="sourceLineNo">2494</span>  @Override<a name="line.2494"></a>
-<span class="sourceLineNo">2495</span>  public long getFlushedCellsCount() {<a name="line.2495"></a>
-<span class="sourceLineNo">2496</span>    return flushedCellsCount.get();<a name="line.2496"></a>
-<span class="sourceLineNo">2497</span>  }<a name="line.2497"></a>
-<span class="sourceLineNo">2498</span><a name="line.2498"></a>
-<span class="sourceLineNo">2499</span>  @Override<a name="line.2499"></a>
-<span class="sourceLineNo">2500</span>  public long getFlushedCellsSize() {<a name="line.2500"></a>
-<span class="sourceLineNo">2501</span>    return flushedCellsSize.get();<a name="line.2501"></a>
-<span class="sourceLineNo">2502</span>  }<a name="line.2502"></a>
-<span class="sourceLineNo">2503</span><a name="line.2503"></a>
-<span class="sourceLineNo">2504</span>  @Override<a name="line.2504"></a>
-<span class="sourceLineNo">2505</span>  public long getFlushedOutputFileSize() {<a name="line.2505"></a>
-<span class="sourceLineNo">2506</span>    return flushedOutputFileSize.get();<a name="line.2506"></a>
-<span class="sourceLineNo">2507</span>  }<a name="line.2507"></a>
-<span class="sourceLineNo">2508</span><a name="line.2508"></a>
-<span class="sourceLineNo">2509</span>  @Override<a name="line.2509"></a>
-<span class="sourceLineNo">2510</span>  public long getCompactedCellsCount() {<a name="line.2510"></a>
-<span class="sourceLineNo">2511</span>    return compactedCellsCount.get();<a name="line.2511"></a>
-<span class="sourceLineNo">2512</span>  }<a name="line.2512"></a>
-<span class="sourceLineNo">2513</span><a name="line.2513"></a>
-<span class="sourceLineNo">2514</span>  @Override<a name="line.2514"></a>
-<span class="sourceLineNo">2515</span>  public long getCompactedCellsSize() {<a name="line.2515"></a>
-<span class="sourceLineNo">2516</span>    return compactedCellsSize.get();<a name="line.2516"></a>
-<span class="sourceLineNo">2517</span>  }<a name="line.2517"></a>
-<span class="sourceLineNo">2518</span><a name="line.2518"></a>
-<span class="sourceLineNo">2519</span>  @Override<a name="line.2519"></a>
-<span class="sourceLineNo">2520</span>  public long getMajorCompactedCellsCount() {<a name="line.2520"></a>
-<span class="sourceLineNo">2521</span>    return majorCompactedCellsCount.get();<a name="line.2521"></a>
-<span class="sourceLineNo">2522</span>  }<a name="line.2522"></a>
-<span class="sourceLineNo">2523</span><a name="line.2523"></a>
-<span class="sourceLineNo">2524</span>  @Override<a name="line.2524"></a>
-<span class="sourceLineNo">2525</span>  public long getMajorCompactedCellsSize() {<a name="line.2525"></a>
-<span class="sourceLineNo">2526</span>    return majorCompactedCellsSize.get();<a name="line.2526"></a>
-<span class="sourceLineNo">2527</span>  }<a name="line.2527"></a>
-<span class="sourceLineNo">2528</span><a name="line.2528"></a>
-<span class="sourceLineNo">2529</span>  /**<a name="line.2529"></a>
-<span class="sourceLineNo">2530</span>   * Returns the StoreEngine that is backing this concrete implementation of Store.<a name="line.2530"></a>
-<span class="sourceLineNo">2531</span>   * @return Returns the {@link StoreEngine} object used internally inside this HStore object.<a name="line.2531"></a>
-<span class="sourceLineNo">2532</span>   */<a name="line.2532"></a>
-<span class="sourceLineNo">2533</span>  @VisibleForTesting<a name="line.2533"></a>
-<span class="sourceLineNo">2534</span>  public StoreEngine&lt;?, ?, ?, ?&gt; getStoreEngine() {<a name="line.2534"></a>
-<span class="sourceLineNo">2535</span>    return this.storeEngine;<a name="line.2535"></a>
-<span class="sourceLineNo">2536</span>  }<a name="line.2536"></a>
-<span class="sourceLineNo">2537</span><a name="line.2537"></a>
-<span class="sourceLineNo">2538</span>  protected OffPeakHours getOffPeakHours() {<a name="line.2538"></a>
-<span class="sourceLineNo">2539</span>    return this.offPeakHours;<a name="line.2539"></a>
-<span class="sourceLineNo">2540</span>  }<a name="line.2540"></a>
-<span class="sourceLineNo">2541</span><a name="line.2541"></a>
-<span class="sourceLineNo">2542</span>  /**<a name="line.2542"></a>
-<span class="sourceLineNo">2543</span>   * {@inheritDoc}<a name="line.2543"></a>
-<span class="sourceLineNo">2544</span>   */<a name="line.2544"></a>
-<span class="sourceLineNo">2545</span>  @Override<a name="line.2545"></a>
-<span class="sourceLineNo">2546</span>  public void onConfigurationChange(Configuration conf) {<a name="line.2546"></a>
-<span class="sourceLineNo">2547</span>    this.conf = new CompoundConfiguration()<a name="line.2547"></a>
-<span class="sourceLineNo">2548</span>            .add(conf)<a name="line.2548"></a>
-<span class="sourceLineNo">2549</span>            .addBytesMap(family.getValues());<a name="line.2549"></a>
-<span class="sourceLineNo">2550</span>    this.storeEngine.compactionPolicy.setConf(conf);<a name="line.2550"></a>
-<span class="sourceLineNo">2551</span>    this.offPeakHours = OffPeakHours.getInstance(conf);<a name="line.2551"></a>
-<span class="sourceLineNo">2552</span>  }<a name="line.2552"></a>
-<span class="sourceLineNo">2553</span><a name="line.2553"></a>
-<span class="sourceLineNo">2554</span>  /**<a name="line.2554"></a>
-<span class="sourceLineNo">2555</span>   * {@inheritDoc}<a name="line.2555"></a>
-<span class="sourceLineNo">2556</span>   */<a name="line.2556"></a>
-<span class="sourceLineNo">2557</span>  @Override<a name="line.2557"></a>
-<span class="sourceLineNo">2558</span>  public void registerChildren(ConfigurationManager manager) {<a name="line.2558"></a>
-<span class="sourceLineNo">2559</span>    // No children to register<a name="line.2559"></a>
-<span class="sourceLineNo">2560</span>  }<a name="line.2560"></a>
-<span class="sourceLineNo">2561</span><a name="line.2561"></a>
-<span class="sourceLineNo">2562</span>  /**<a name="line.2562"></a>
-<span class="sourceLineNo">2563</span>   * {@inheritDoc}<a name="line.2563"></a>
-<span class="sourceLineNo">2564</span>   */<a name="line.2564"></a>
-<span class="sourceLineNo">2565</span>  @Override<a name="line.2565"></a>
-<span class="sourceLineNo">2566</span>  public void deregisterChildren(ConfigurationManager manager) {<a name="line.2566"></a>
-<span class="sourceLineNo">2567</span>    // No children to deregister<a name="line.2567"></a>
-<span class="sourceLineNo">2568</span>  }<a name="line.2568"></a>
-<span class="sourceLineNo">2569</span><a name="line.2569"></a>
-<span class="sourceLineNo">2570</span>  @Override<a name="line.2570"></a>
-<span class="sourceLineNo">2571</span>  public double getCompactionPressure() {<a name="line.2571"></a>
-<span class="sourceLineNo">2572</span>    return storeEngine.getStoreFileManager().getCompactionPressure();<a name="line.2572"></a>
-<span class="sourceLineNo">2573</span>  }<a name="line.2573"></a>
-<span class="sourceLineNo">2574</span><a name="line.2574"></a>
-<span class="sourceLineNo">2575</span>  @Override<a name="line.2575"></a>
-<span class="sourceLineNo">2576</span>  public boolean isPrimaryReplicaStore() {<a name="line.2576"></a>
-<span class="sourceLineNo">2577</span>    return getRegionInfo().getReplicaId() == RegionInfo.DEFAULT_REPLICA_ID;<a name="line.2577"></a>
-<span class="sourceLineNo">2578</span>  }<a name="line.2578"></a>
-<span class="sourceLineNo">2579</span><a name="line.2579"></a>
-<span class="sourceLineNo">2580</span>  /**<a name="line.2580"></a>
-<span class="sourceLineNo">2581</span>   * Sets the store up for a region level snapshot operation.<a name="line.2581"></a>
-<span class="sourceLineNo">2582</span>   * @see #postSnapshotOperation()<a name="line.2582"></a>
-<span class="sourceLineNo">2583</span>   */<a name="line.2583"></a>
-<span class="sourceLineNo">2584</span>  public void preSnapshotOperation() {<a name="line.2584"></a>
-<span class="sourceLineNo">2585</span>    archiveLock.lock();<a name="line.2585"></a>
-<span class="sourceLineNo">2586</span>  }<a name="line.2586"></a>
-<span class="sourceLineNo">2587</span><a name="line.2587"></a>
-<span class="sourceLineNo">2588</span>  /**<a name="line.2588"></a>
-<span class="sourceLineNo">2589</span>   * Perform tasks needed after the completion of snapshot operation.<a name="line.2589"></a>
-<span class="sourceLineNo">2590</span>   * @see #preSnapshotOperation()<a name="line.2590"></a>
+<span class="sourceLineNo">2361</span>      HStore.this.flushedCellsCount.addAndGet(cacheFlushCount);<a name="line.2361"></a>
+<span class="sourceLineNo">2362</span>      HStore.this.flushedCellsSize.addAndGet(cacheFlushSize);<a name="line.2362"></a>
+<span class="sourceLineNo">2363</span>      HStore.this.flushedOutputFileSize.addAndGet(outputFileSize);<a name="line.2363"></a>
+<span class="sourceLineNo">2364</span><a name="line.2364"></a>
+<span class="sourceLineNo">2365</span>      // Add new file to store files.  Clear snapshot too while we have the Store write lock.<a name="line.2365"></a>
+<span class="sourceLineNo">2366</span>      return HStore.this.updateStorefiles(storeFiles, snapshot.getId());<a name="line.2366"></a>
+<span class="sourceLineNo">2367</span>    }<a name="line.2367"></a>
+<span class="sourceLineNo">2368</span><a name="line.2368"></a>
+<span class="sourceLineNo">2369</span>    @Override<a name="line.2369"></a>
+<span class="sourceLineNo">2370</span>    public long getOutputFileSize() {<a name="line.2370"></a>
+<span class="sourceLineNo">2371</span>      return outputFileSize;<a name="line.2371"></a>
+<span class="sourceLineNo">2372</span>    }<a name="line.2372"></a>
+<span class="sourceLineNo">2373</span><a name="line.2373"></a>
+<span class="sourceLineNo">2374</span>    @Override<a name="line.2374"></a>
+<span class="sourceLineNo">2375</span>    public List&lt;Path&gt; getCommittedFiles() {<a name="line.2375"></a>
+<span class="sourceLineNo">2376</span>      return committedFiles;<a name="line.2376"></a>
+<span class="sourceLineNo">2377</span>    }<a name="line.2377"></a>
+<span class="sourceLineNo">2378</span><a name="line.2378"></a>
+<span class="sourceLineNo">2379</span>    /**<a name="line.2379"></a>
+<span class="sourceLineNo">2380</span>     * Similar to commit, but called in secondary region replicas for replaying the<a name="line.2380"></a>
+<span class="sourceLineNo">2381</span>     * flush cache from primary region. Adds the new files to the store, and drops the<a name="line.2381"></a>
+<span class="sourceLineNo">2382</span>     * snapshot depending on dropMemstoreSnapshot argument.<a name="line.2382"></a>
+<span class="sourceLineNo">2383</span>     * @param fileNames names of the flushed files<a name="line.2383"></a>
+<span class="sourceLineNo">2384</span>     * @param dropMemstoreSnapshot whether to drop the prepared memstore snapshot<a name="line.2384"></a>
+<span class="sourceLineNo">2385</span>     * @throws IOException<a name="line.2385"></a>
+<span class="sourceLineNo">2386</span>     */<a name="line.2386"></a>
+<span class="sourceLineNo">2387</span>    @Override<a name="line.2387"></a>
+<span class="sourceLineNo">2388</span>    public void replayFlush(List&lt;String&gt; fileNames, boolean dropMemstoreSnapshot)<a name="line.2388"></a>
+<span class="sourceLineNo">2389</span>        throws IOException {<a name="line.2389"></a>
+<span class="sourceLineNo">2390</span>      List&lt;HStoreFile&gt; storeFiles = new ArrayList&lt;&gt;(fileNames.size());<a name="line.2390"></a>
+<span class="sourceLineNo">2391</span>      for (String file : fileNames) {<a name="line.2391"></a>
+<span class="sourceLineNo">2392</span>        // open the file as a store file (hfile link, etc)<a name="line.2392"></a>
+<span class="sourceLineNo">2393</span>        StoreFileInfo storeFileInfo = fs.getStoreFileInfo(getColumnFamilyName(), file);<a name="line.2393"></a>
+<span class="sourceLineNo">2394</span>        HStoreFile storeFile = createStoreFileAndReader(storeFileInfo);<a name="line.2394"></a>
+<span class="sourceLineNo">2395</span>        storeFiles.add(storeFile);<a name="line.2395"></a>
+<span class="sourceLineNo">2396</span>        HStore.this.storeSize.addAndGet(storeFile.getReader().length());<a name="line.2396"></a>
+<span class="sourceLineNo">2397</span>        HStore.this.totalUncompressedBytes<a name="line.2397"></a>
+<span class="sourceLineNo">2398</span>            .addAndGet(storeFile.getReader().getTotalUncompressedBytes());<a name="line.2398"></a>
+<span class="sourceLineNo">2399</span>        if (LOG.isInfoEnabled()) {<a name="line.2399"></a>
+<span class="sourceLineNo">2400</span>          LOG.info("Region: " + HStore.this.getRegionInfo().getEncodedName() +<a name="line.2400"></a>
+<span class="sourceLineNo">2401</span>            " added " + storeFile + ", entries=" + storeFile.getReader().getEntries() +<a name="line.2401"></a>
+<span class="sourceLineNo">2402</span>              ", sequenceid=" + storeFile.getReader().getSequenceID() + ", filesize="<a name="line.2402"></a>
+<span class="sourceLineNo">2403</span>              + TraditionalBinaryPrefix.long2String(storeFile.getReader().length(), "", 1));<a name="line.2403"></a>
+<span class="sourceLineNo">2404</span>        }<a name="line.2404"></a>
+<span class="sourceLineNo">2405</span>      }<a name="line.2405"></a>
+<span class="sourceLineNo">2406</span><a name="line.2406"></a>
+<span class="sourceLineNo">2407</span>      long snapshotId = -1; // -1 means do not drop<a name="line.2407"></a>
+<span class="sourceLineNo">2408</span>      if (dropMemstoreSnapshot &amp;&amp; snapshot != null) {<a name="line.2408"></a>
+<span class="sourceLineNo">2409</span>        snapshotId = snapshot.getId();<a name="line.2409"></a>
+<span class="sourceLineNo">2410</span>        snapshot.close();<a name="line.2410"></a>
+<span class="sourceLineNo">2411</span>      }<a name="line.2411"></a>
+<span class="sourceLineNo">2412</span>      HStore.this.updateStorefiles(storeFiles, snapshotId);<a name="line.2412"></a>
+<span class="sourceLineNo">2413</span>    }<a name="line.2413"></a>
+<span class="sourceLineNo">2414</span><a name="line.2414"></a>
+<span class="sourceLineNo">2415</span>    /**<a name="line.2415"></a>
+<span class="sourceLineNo">2416</span>     * Abort the snapshot preparation. Drops the snapshot if any.<a name="line.2416"></a>
+<span class="sourceLineNo">2417</span>     * @throws IOException<a name="line.2417"></a>
+<span class="sourceLineNo">2418</span>     */<a name="line.2418"></a>
+<span class="sourceLineNo">2419</span>    @Override<a name="line.2419"></a>
+<span class="sourceLineNo">2420</span>    public void abort() throws IOException {<a name="line.2420"></a>
+<span class="sourceLineNo">2421</span>      if (snapshot != null) {<a name="line.2421"></a>
+<span class="sourceLineNo">2422</span>        //We need to close the snapshot when aborting, otherwise, the segment scanner<a name="line.2422"></a>
+<span class="sourceLineNo">2423</span>        //won't be closed. If we are using MSLAB, the chunk referenced by those scanners<a name="line.2423"></a>
+<span class="sourceLineNo">2424</span>        //can't be released, thus memory leak<a name="line.2424"></a>
+<span class="sourceLineNo">2425</span>        snapshot.close();<a name="line.2425"></a>
+<span class="sourceLineNo">2426</span>        HStore.this.updateStorefiles(Collections.emptyList(), snapshot.getId());<a name="line.2426"></a>
+<span class="sourceLineNo">2427</span>      }<a name="line.2427"></a>
+<span class="sourceLineNo">2428</span>    }<a name="line.2428"></a>
+<span class="sourceLineNo">2429</span>  }<a name="line.2429"></a>
+<span class="sourceLineNo">2430</span><a name="line.2430"></a>
+<span class="sourceLineNo">2431</span>  @Override<a name="line.2431"></a>
+<span class="sourceLineNo">2432</span>  public boolean needsCompaction() {<a name="line.2432"></a>
+<span class="sourceLineNo">2433</span>    List&lt;HStoreFile&gt; filesCompactingClone = null;<a name="line.2433"></a>
+<span class="sourceLineNo">2434</span>    synchronized (filesCompacting) {<a name="line.2434"></a>
+<span class="sourceLineNo">2435</span>      filesCompactingClone = Lists.newArrayList(filesCompacting);<a name="line.2435"></a>
+<span class="sourceLineNo">2436</span>    }<a name="line.2436"></a>
+<span class="sourceLineNo">2437</span>    return this.storeEngine.needsCompaction(filesCompactingClone);<a name="line.2437"></a>
+<span class="sourceLineNo">2438</span>  }<a name="line.2438"></a>
+<span class="sourceLineNo">2439</span><a name="line.2439"></a>
+<span class="sourceLineNo">2440</span>  /**<a name="line.2440"></a>
+<span class="sourceLineNo">2441</span>   * Used for tests.<a name="line.2441"></a>
+<span class="sourceLineNo">2442</span>   * @return cache configuration for this Store.<a name="line.2442"></a>
+<span class="sourceLineNo">2443</span>   */<a name="line.2443"></a>
+<span class="sourceLineNo">2444</span>  @VisibleForTesting<a name="line.2444"></a>
+<span class="sourceLineNo">2445</span>  public CacheConfig getCacheConfig() {<a name="line.2445"></a>
+<span class="sourceLineNo">2446</span>    return this.cacheConf;<a name="line.2446"></a>
+<span class="sourceLineNo">2447</span>  }<a name="line.2447"></a>
+<span class="sourceLineNo">2448</span><a name="line.2448"></a>
+<span class="sourceLineNo">2449</span>  public static final long FIXED_OVERHEAD =<a name="line.2449"></a>
+<span class="sourceLineNo">2450</span>      ClassSize.align(ClassSize.OBJECT + (27 * ClassSize.REFERENCE) + (2 * Bytes.SIZEOF_LONG)<a name="line.2450"></a>
+<span class="sourceLineNo">2451</span>              + (6 * Bytes.SIZEOF_INT) + (2 * Bytes.SIZEOF_BOOLEAN));<a name="line.2451"></a>
+<span class="sourceLineNo">2452</span><a name="line.2452"></a>
+<span class="sourceLineNo">2453</span>  public static final long DEEP_OVERHEAD = ClassSize.align(FIXED_OVERHEAD<a name="line.2453"></a>
+<span class="sourceLineNo">2454</span>      + ClassSize.OBJECT + ClassSize.REENTRANT_LOCK<a name="line.2454"></a>
+<span class="sourceLineNo">2455</span>      + ClassSize.CONCURRENT_SKIPLISTMAP<a name="line.2455"></a>
+<span class="sourceLineNo">2456</span>      + ClassSize.CONCURRENT_SKIPLISTMAP_ENTRY + ClassSize.OBJECT<a name="line.2456"></a>
+<span class="sourceLineNo">2457</span>      + ScanInfo.FIXED_OVERHEAD);<a name="line.2457"></a>
+<span class="sourceLineNo">2458</span><a name="line.2458"></a>
+<span class="sourceLineNo">2459</span>  @Override<a name="line.2459"></a>
+<span class="sourceLineNo">2460</span>  public long heapSize() {<a name="line.2460"></a>
+<span class="sourceLineNo">2461</span>    MemStoreSize memstoreSize = this.memstore.size();<a name="line.2461"></a>
+<span class="sourceLineNo">2462</span>    return DEEP_OVERHEAD + memstoreSize.getHeapSize();<a name="line.2462"></a>
+<span class="sourceLineNo">2463</span>  }<a name="line.2463"></a>
+<span class="sourceLineNo">2464</span><a name="line.2464"></a>
+<span class="sourceLineNo">2465</span>  @Override<a name="line.2465"></a>
+<span class="sourceLineNo">2466</span>  public CellComparator getComparator() {<a name="line.2466"></a>
+<span class="sourceLineNo">2467</span>    return comparator;<a name="line.2467"></a>
+<span class="sourceLineNo">2468</span>  }<a name="line.2468"></a>
+<span class="sourceLineNo">2469</span><a name="line.2469"></a>
+<span class="sourceLineNo">2470</span>  public ScanInfo getScanInfo() {<a name="line.2470"></a>
+<span class="sourceLineNo">2471</span>    return scanInfo;<a name="line.2471"></a>
+<span class="sourceLineNo">2472</span>  }<a name="line.2472"></a>
+<span class="sourceLineNo">2473</span><a name="line.2473"></a>
+<span class="sourceLineNo">2474</span>  /**<a name="line.2474"></a>
+<span class="sourceLineNo">2475</span>   * Set scan info, used by test<a name="line.2475"></a>
+<span class="sourceLineNo">2476</span>   * @param scanInfo new scan info to use for test<a name="line.2476"></a>
+<span class="sourceLineNo">2477</span>   */<a name="line.2477"></a>
+<span class="sourceLineNo">2478</span>  void setScanInfo(ScanInfo scanInfo) {<a name="line.2478"></a>
+<span class="sourceLineNo">2479</span>    this.scanInfo = scanInfo;<a name="line.2479"></a>
+<span class="sourceLineNo">2480</span>  }<a name="line.2480"></a>
+<span class="sourceLineNo">2481</span><a name="line.2481"></a>
+<span class="sourceLineNo">2482</span>  @Override<a name="line.2482"></a>
+<span class="sourceLineNo">2483</span>  public boolean hasTooManyStoreFiles() {<a name="line.2483"></a>
+<span class="sourceLineNo">2484</span>    return getStorefilesCount() &gt; this.blockingFileCount;<a name="line.2484"></a>
+<span class="sourceLineNo">2485</span>  }<a name="line.2485"></a>
+<span class="sourceLineNo">2486</span><a name="line.2486"></a>
+<span class="sourceLineNo">2487</span>  @Override<a name="line.2487"></a>
+<span class="sourceLineNo">2488</span>  public long getFlushedCellsCount() {<a name="line.2488"></a>
+<span class="sourceLineNo">2489</span>    return flushedCellsCount.get();<a name="line.2489"></a>
+<span class="sourceLineNo">2490</span>  }<a name="line.2490"></a>
+<span class="sourceLineNo">2491</span><a name="line.2491"></a>
+<span class="sourceLineNo">2492</span>  @Override<a name="line.2492"></a>
+<span class="sourceLineNo">2493</span>  public long getFlushedCellsSize() {<a name="line.2493"></a>
+<span class="sourceLineNo">2494</span>    return flushedCellsSize.get();<a name="line.2494"></a>
+<span class="sourceLineNo">2495</span>  }<a name="line.2495"></a>
+<span class="sourceLineNo">2496</span><a name="line.2496"></a>
+<span class="sourceLineNo">2497</span>  @Override<a name="line.2497"></a>
+<span class="sourceLineNo">2498</span>  public long getFlushedOutputFileSize() {<a name="line.2498"></a>
+<span class="sourceLineNo">2499</span>    return flushedOutputFileSize.get();<a name="line.2499"></a>
+<span class="sourceLineNo">2500</span>  }<a name="line.2500"></a>
+<span class="sourceLineNo">2501</span><a name="line.2501"></a>
+<span class="sourceLineNo">2502</span>  @Override<a name="line.2502"></a>
+<span class="sourceLineNo">2503</span>  public long getCompactedCellsCount() {<a name="line.2503"></a>
+<span class="sourceLineNo">2504</span>    return compactedCellsCount.get();<a name="line.2504"></a>
+<span class="sourceLineNo">2505</span>  }<a name="line.2505"></a>
+<span class="sourceLineNo">2506</span><a name="line.2506"></a>
+<span class="sourceLineNo">2507</span>  @Override<a name="line.2507"></a>
+<span class="sourceLineNo">2508</span>  public long getCompactedCellsSize() {<a name="line.2508"></a>
+<span class="sourceLineNo">2509</span>    return compactedCellsSize.get();<a name="line.2509"></a>
+<span class="sourceLineNo">2510</span>  }<a name="line.2510"></a>
+<span class="sourceLineNo">2511</span><a name="line.2511"></a>
+<span class="sourceLineNo">2512</span>  @Override<a name="line.2512"></a>
+<span class="sourceLineNo">2513</span>  public long getMajorCompactedCellsCount() {<a name="line.2513"></a>
+<span class="sourceLineNo">2514</span>    return majorCompactedCellsCount.get();<a name="line.2514"></a>
+<span class="sourceLineNo">2515</span>  }<a name="line.2515"></a>
+<span class="sourceLineNo">2516</span><a name="line.2516"></a>
+<span class="sourceLineNo">2517</span>  @Override<a name="line.2517"></a>
+<span class="sourceLineNo">2518</span>  public long getMajorCompactedCellsSize() {<a name="line.2518"></a>
+<span class="sourceLineNo">2519</span>    return majorCompactedCellsSize.get();<a name="line.2519"></a>
+<span class="sourceLineNo">2520</span>  }<a name="line.2520"></a>
+<span class="sourceLineNo">2521</span><a name="line.2521"></a>
+<span class="sourceLineNo">2522</span>  /**<a name="line.2522"></a>
+<span class="sourceLineNo">2523</span>   * Returns the StoreEngine that is backing this concrete implementation of Store.<a name="line.2523"></a>
+<span class="sourceLineNo">2524</span>   * @return Returns the {@link StoreEngine} object used internally inside this HStore object.<a name="line.2524"></a>
+<span class="sourceLineNo">2525</span>   */<a name="line.2525"></a>
+<span class="sourceLineNo">2526</span>  @VisibleForTesting<a name="line.2526"></a>
+<span class="sourceLineNo">2527</span>  public StoreEngine&lt;?, ?, ?, ?&gt; getStoreEngine() {<a name="line.2527"></a>
+<span class="sourceLineNo">2528</span>    return this.storeEngine;<a name="line.2528"></a>
+<span class="sourceLineNo">2529</span>  }<a name="line.2529"></a>
+<span class="sourceLineNo">2530</span><a name="line.2530"></a>
+<span class="sourceLineNo">2531</span>  protected OffPeakHours getOffPeakHours() {<a name="line.2531"></a>
+<span class="sourceLineNo">2532</span>    return this.offPeakHours;<a name="line.2532"></a>
+<span class="sourceLineNo">2533</span>  }<a name="line.2533"></a>
+<span class="sourceLineNo">2534</span><a name="line.2534"></a>
+<span class="sourceLineNo">2535</span>  /**<a name="line.2535"></a>
+<span class="sourceLineNo">2536</span>   * {@inheritDoc}<a name="line.2536"></a>
+<span class="sourceLineNo">2537</span>   */<a name="line.2537"></a>
+<span class="sourceLineNo">2538</span>  @Override<a name="line.2538"></a>
+<span class="sourceLineNo">2539</span>  public void onConfigurationChange(Configuration conf) {<a name="line.2539"></a>
+<span class="sourceLineNo">2540</span>    this.conf = new CompoundConfiguration()<a name="line.2540"></a>
+<span class="sourceLineNo">2541</span>            .add(conf)<a name="line.2541"></a>
+<span class="sourceLineNo">2542</span>            .addBytesMap(family.getValues());<a name="line.2542"></a>
+<span class="sourceLineNo">2543</span>    this.storeEngine.compactionPolicy.setConf(conf);<a name="line.2543"></a>
+<span class="sourceLineNo">2544</span>    this.offPeakHours = OffPeakHours.getInstance(conf);<a name="line.2544"></a>
+<span class="sourceLineNo">2545</span>  }<a name="line.2545"></a>
+<span class="sourceLineNo">2546</span><a name="line.2546"></a>
+<span class="sourceLineNo">2547</span>  /**<a name="line.2547"></a>
+<span class="sourceLineNo">2548</span>   * {@inheritDoc}<a name="line.2548"></a>
+<span class="sourceLineNo">2549</span>   */<a name="line.2549"></a>
+<span class="sourceLineNo">2550</span>  @Override<a name="line.2550"></a>
+<span class="sourceLineNo">2551</span>  public void registerChildren(ConfigurationManager manager) {<a name="line.2551"></a>
+<span class="sourceLineNo">2552</span>    // No children to register<a name="line.2552"></a>
+<span class="sourceLineNo">2553</span>  }<a name="line.2553"></a>
+<span class="sourceLineNo">2554</span><a name="line.2554"></a>
+<span class="sourceLineNo">2555</span>  /**<a name="line.2555"></a>
+<span class="sourceLineNo">2556</span>   * {@inheritDoc}<a name="line.2556"></a>
+<span class="sourceLineNo">2557</span>   */<a name="line.2557"></a>
+<span class="sourceLineNo">2558</span>  @Override<a name="line.2558"></a>
+<span class="sourceLineNo">2559</span>  public void deregisterChildren(ConfigurationManager manager) {<a name="line.2559"></a>
+<span class="sourceLineNo">2560</span>    // No children to deregister<a name="line.2560"></a>
+<span class="sourceLineNo">2561</span>  }<a name="line.2561"></a>
+<span class="sourceLineNo">2562</span><a name="line.2562"></a>
+<span class="sourceLineNo">2563</span>  @Override<a name="line.2563"></a>
+<span class="sourceLineNo">2564</span>  public double getCompactionPressure() {<a name="line.2564"></a>
+<span class="sourceLineNo">2565</span>    return storeEngine.getStoreFileManager().getCompactionPressure();<a name="line.2565"></a>
+<span class="sourceLineNo">2566</span>  }<a name="line.2566"></a>
+<span class="sourceLineNo">2567</span><a name="line.2567"></a>
+<span class="sourceLineNo">2568</span>  @Override<a name="line.2568"></a>
+<span class="sourceLineNo">2569</span>  public boolean isPrimaryReplicaStore() {<a name="line.2569"></a>
+<span class="sourceLineNo">2570</span>    return getRegionInfo().getReplicaId() == RegionInfo.DEFAULT_REPLICA_ID;<a name="line.2570"></a>
+<span class="sourceLineNo">2571</span>  }<a name="line.2571"></a>
+<span class="sourceLineNo">2572</span><a name="line.2572"></a>
+<span class="sourceLineNo">2573</span>  /**<a name="line.2573"></a>
+<span class="sourceLineNo">2574</span>   * Sets the store up for a region level snapshot operation.<a name="line.2574"></a>
+<span class="sourceLineNo">2575</span>   * @see #postSnapshotOperation()<a name="line.2575"></a>
+<span class="sourceLineNo">2576</span>   */<a name="line.2576"></a>
+<span class="sourceLineNo">2577</span>  public void preSnapshotOperation() {<a name="line.2577"></a>
+<span class="sourceLineNo">2578</span>    archiveLock.lock();<a name="line.2578"></a>
+<span class="sourceLineNo">2579</span>  }<a name="line.2579"></a>
+<span class="sourceLineNo">2580</span><a name="line.2580"></a>
+<span class="sourceLineNo">2581</span>  /**<a name="line.2581"></a>
+<span class="sourceLineNo">2582</span>   * Perform tasks needed after the completion of snapshot operation.<a name="line.2582"></a>
+<span class="sourceLineNo">2583</span>   * @see #preSnapshotOperation()<a name="line.2583"></a>
+<span class="sourceLineNo">2584</span>   */<a name="line.2584"></a>
+<span class="sourceLineNo">2585</span>  public void postSnapshotOperation() {<a name="line.2585"></a>
+<span class="sourceLineNo">2586</span>    archiveLock.unlock();<a name="line.2586"></a>
+<span class="sourceLineNo">2587</span>  }<a name="line.2587"></a>
+<span class="sourceLineNo">2588</span><a name="line.2588"></a>
+<span class="sourceLineNo">2589</span>  /**<a name="line.2589"></a>
+<span class="sourceLineNo">2590</span>   * Closes and archives the compacted files under this store<a name="line.2590"></a>
 <span class="sourceLineNo">2591</span>   */<a name="line.2591"></a>
-<span class="sourceLineNo">2592</span>  public void postSnapshotOperation() {<a name="line.2592"></a>
-<span class="sourceLineNo">2593</span>    archiveLock.unlock();<a name="line.2593"></a>
-<span class="sourceLineNo">2594</span>  }<a name="line.2594"></a>
-<span class="sourceLineNo">2595</span><a name="line.2595"></a>
-<span class="sourceLineNo">2596</span>  /**<a name="line.2596"></a>
-<span class="sourceLineNo">2597</span>   * Closes and archives the compacted files under this store<a name="line.2597"></a>
-<span class="sourceLineNo">2598</span>   */<a name="line.2598"></a>
-<span class="sourceLineNo">2599</span>  public synchronized void closeAndArchiveCompactedFiles() throws IOException {<a name="line.2599"></a>
-<span class="sourceLineNo">2600</span>    // ensure other threads do not attempt to archive the same files on close()<a name="line.2600"></a>
-<span class="sourceLineNo">2601</span>    archiveLock.lock();<a name="line.2601"></a>
-<span class="sourceLineNo">2602</span>    try {<a name="line.2602"></a>
-<span class="sourceLineNo">2603</span>      lock.readLock().lock();<a name="line.2603"></a>
-<span class="sourceLineNo">2604</span>      Collection&lt;HStoreFile&gt; copyCompactedfiles = null;<a name="line.2604"></a>
-<span class="sourceLineNo">2605</span>      try {<a name="line.2605"></a>
-<span class="sourceLineNo">2606</span>        Collection&lt;HStoreFile&gt; compactedfiles =<a name="line.2606"></a>
-<span class="sourceLineNo">2607</span>            this.getStoreEngine().getStoreFileManager().getCompactedfiles();<a name="line.2607"></a>
-<span class="sourceLineNo">2608</span>        if (CollectionUtils.isNotEmpty(compactedfiles)) {<a name="line.2608"></a>
-<span class="sourceLineNo">2609</span>          // Do a copy under read lock<a name="line.2609"></a>
-<span class="sourceLineNo">2610</span>          copyCompactedfiles = new ArrayList&lt;&gt;(compactedfiles);<a name="line.2610"></a>
-<span class="sourceLineNo">2611</span>        } else {<a name="line.2611"></a>
-<span class="sourceLineNo">2612</span>          LOG.trace("No compacted files to archive");<a name="line.2612"></a>
-<span class="sourceLineNo">2613</span>        }<a name="line.2613"></a>
-<span class="sourceLineNo">2614</span>      } finally {<a name="line.2614"></a>
-<span class="sourceLineNo">2615</span>        lock.readLock().unlock();<a name="line.2615"></a>
-<span class="sourceLineNo">2616</span>      }<a name="line.2616"></a>
-<span class="sourceLineNo">2617</span>      if (CollectionUtils.isNotEmpty(copyCompactedfiles)) {<a name="line.2617"></a>
-<span class="sourceLineNo">2618</span>        removeCompactedfiles(copyCompactedfiles);<a name="line.2618"></a>
-<span class="sourceLineNo">2619</span>      }<a name="line.2619"></a>
-<span class="sourceLineNo">2620</span>    } finally {<a name="line.2620"></a>
-<span class="sourceLineNo">2621</span>      archiveLock.unlock();<a name="line.2621"></a>
-<span class="sourceLineNo">2622</span>    }<a name="line.2622"></a>
-<span class="sourceLineNo">2623</span>  }<a name="line.2623"></a>
-<span class="sourceLineNo">2624</span><a name="line.2624"></a>
-<span class="sourceLineNo">2625</span>  /**<a name="line.2625"></a>
-<span class="sourceLineNo">2626</span>   * Archives and removes the compacted files<a name="line.2626"></a>
-<span class="sourceLineNo">2627</span>   * @param compactedfiles The compacted files in this store that are not active in reads<a name="line.2627"></a>
-<span class="sourceLineNo">2628</span>   */<a name="line.2628"></a>
-<span class="sourceLineNo">2629</span>  private void removeCompactedfiles(Collection&lt;HStoreFile&gt; compactedfiles)<a name="line.2629"></a>
-<span class="sourceLineNo">2630</span>      throws IOException {<a name="line.2630"></a>
-<span class="sourceLineNo">2631</span>    final List&lt;HStoreFile&gt; filesToRemove = new ArrayList&lt;&gt;(compactedfiles.size());<a name="line.2631"></a>
-<span class="sourceLineNo">2632</span>    final List&lt;Long&gt; storeFileSizes = new ArrayList&lt;&gt;(compactedfiles.size());<a name="line.2632"></a>
-<span class="sourceLineNo">2633</span>    for (final HStoreFile file : compactedfiles) {<a name="line.2633"></a>
-<span class="sourceLineNo">2634</span>      synchronized (file) {<a name="line.2634"></a>
-<span class="sourceLineNo">2635</span>        try {<a name="line.2635"></a>
-<span class="sourceLineNo">2636</span>          StoreFileReader r = file.getReader();<a name="line.2636"></a>
-<span class="sourceLineNo">2637</span>          if (r == null) {<a name="line.2637"></a>
-<span class="sourceLineNo">2638</span>            LOG.debug("The file {} was closed but still not archived", file);<a name="line.2638"></a>
-<span class="sourceLineNo">2639</span>            // HACK: Temporarily re-open the reader so we can get the size of the file. Ideally,<a name="line.2639"></a>
-<span class="sourceLineNo">2640</span>            // we should know the size of an HStoreFile without having to ask the HStoreFileReader<a name="line.2640"></a>
-<span class="sourceLineNo">2641</span>            // for that.<a name="line.2641"></a>
-<span class="sourceLineNo">2642</span>            long length = getStoreFileSize(file);<a name="line.2642"></a>
-<span class="sourceLineNo">2643</span>            filesToRemove.add(file);<a name="line.2643"></a>
-<span class="sourceLineNo">2644</span>            storeFileSizes.add(length);<a name="line.2644"></a>
-<span class="sourceLineNo">2645</span>            continue;<a name="line.2645"></a>
-<span class="sourceLineNo">2646</span>          }<a name="line.2646"></a>
-<span class="sourceLineNo">2647</span><a name="line.2647"></a>
-<span class="sourceLineNo">2648</span>          if (file.isCompactedAway() &amp;&amp; !file.isReferencedInReads()) {<a name="line.2648"></a>
-<span class="sourceLineNo">2649</span>            // Even if deleting fails we need not bother as any new scanners won't be<a name="line.2649"></a>
-<span class="sourceLineNo">2650</span>            // able to use the compacted file as the status is already compactedAway<a name="line.2650"></a>
-<span class="sourceLineNo">2651</span>            LOG.trace("Closing and archiving the file {}", file);<a name="line.2651"></a>
-<span class="sourceLineNo">2652</span>            // Copy the file size before closing the reader<a name="line.2652"></a>
-<span class="sourceLineNo">2653</span>            final long length = r.length();<a name="line.2653"></a>
-<span class="sourceLineNo">2654</span>            r.close(true);<a name="line.2654"></a>
-<span class="sourceLineNo">2655</span>            // Just close and return<a name="line.2655"></a>
-<span class="sourceLineNo">2656</span>            filesToRemove.add(file);<a name="line.2656"></a>
-<span class="sourceLineNo">2657</span>            // Only add the length if we successfully added the file to `filesToRemove`<a name="line.2657"></a>
-<span class="sourceLineNo">2658</span>            storeFileSizes.add(length);<a name="line.2658"></a>
-<span class="sourceLineNo">2659</span>          } else {<a name="line.2659"></a>
-<span class="sourceLineNo">2660</span>            LOG.info("Can't archive compacted file " + file.getPath()<a name="line.2660"></a>
-<span class="sourceLineNo">2661</span>                + " because of either isCompactedAway=" + file.isCompactedAway()<a name="line.2661"></a>
-<span class="sourceLineNo">2662</span>                + " or file has reference, isReferencedInReads=" + file.isReferencedInReads()<a name="line.2662"></a>
-<span class="sourceLineNo">2663</span>                + ", refCount=" + r.getRefCount() + ", skipping for now.");<a name="line.2663"></a>
-<span class="sourceLineNo">2664</span>          }<a name="line.2664"></a>
-<span class="sourceLineNo">2665</span>        } catch (Exception e) {<a name="line.2665"></a>
-<span class="sourceLineNo">2666</span>          LOG.error("Exception while trying to close the compacted store file {}", file.getPath(),<a name="line.2666"></a>
-<span class="sourceLineNo">2667</span>              e);<a name="line.2667"></a>
-<span class="sourceLineNo">2668</span>        }<a name="line.2668"></a>
-<span class="sourceLineNo">2669</span>      }<a name="line.2669"></a>
-<span class="sourceLineNo">2670</span>    }<a name="line.2670"></a>
-<span class="sourceLineNo">2671</span>    if (this.isPrimaryReplicaStore()) {<a name="line.2671"></a>
-<span class="sourceLineNo">2672</span>      // Only the primary region is allowed to move the file to archive.<a name="line.2672"></a>
-<span class="sourceLineNo">2673</span>      // The secondary region does not move the files to archive. Any active reads from<a name="line.2673"></a>
-<span class="sourceLineNo">2674</span>      // the secondary region will still work because the file as such has active readers on it.<a name="line.2674"></a>
-<span class="sourceLineNo">2675</span>      if (!filesToRemove.isEmpty()) {<a name="line.2675"></a>
-<span class="sourceLineNo">2676</span>        LOG.debug("Moving the files {} to archive", filesToRemove);<a name="line.2676"></a>
-<span class="sourceLineNo">2677</span>        // Only if this is successful it has to be removed<a name="line.2677"></a>
-<span class="sourceLineNo">2678</span>        try {<a name="line.2678"></a>
-<span class="sourceLineNo">2679</span>          this.fs.removeStoreFiles(this.getColumnFamilyDescriptor().getNameAsString(), filesToRemove);<a name="line.2679"></a>
-<span class="sourceLineNo">2680</span>        } catch (FailedArchiveException fae) {<a name="line.2680"></a>
-<span class="sourceLineNo">2681</span>          // Even if archiving some files failed, we still need to clear out any of the<a name="line.2681"></a>
-<span class="sourceLineNo">2682</span>          // files which were successfully archived.  Otherwise we will receive a<a name="line.2682"></a>
-<span class="sourceLineNo">2683</span>          // FileNotFoundException when we attempt to re-archive them in the next go around.<a name="line.2683"></a>
-<span class="sourceLineNo">2684</span>          Collection&lt;Path&gt; failedFiles = fae.getFailedFiles();<a name="line.2684"></a>
-<span class="sourceLineNo">2685</span>          Iterator&lt;HStoreFile&gt; iter = filesToRemove.iterator();<a name="line.2685"></a>
-<span class="sourceLineNo">2686</span>          Iterator&lt;Long&gt; sizeIter = storeFileSizes.iterator();<a name="line.2686"></a>
-<span class="sourceLineNo">2687</span>          while (iter.hasNext()) {<a name="line.2687"></a>
-<span class="sourceLineNo">2688</span>            sizeIter.next();<a name="line.2688"></a>
-<span class="sourceLineNo">2689</span>            if (failedFiles.contains(iter.next().getPath())) {<a name="line.2689"></a>
-<span class="sourceLineNo">2690</span>              iter.remove();<a name="line.2690"></a>
-<span class="sourceLineNo">2691</span>              sizeIter.remove();<a name="line.2691"></a>
-<span class="sourceLineNo">2692</span>            }<a name="line.2692"></a>
-<span class="sourceLineNo">2693</span>          }<a name="line.2693"></a>
-<span class="sourceLineNo">2694</span>          if (!filesToRemove.isEmpty()) {<a name="line.2694"></a>
-<span class="sourceLineNo">2695</span>            clearCompactedfiles(filesToRemove);<a name="line.2695"></a>
-<span class="sourceLineNo">2696</span>          }<a name="line.2696"></a>
-<span class="sourceLineNo">2697</span>          throw fae;<a name="line.2697"></a>
-<span class="sourceLineNo">2698</span>        }<a name="line.2698"></a>
-<span class="sourceLineNo">2699</span>      }<a name="line.2699"></a>
-<span class="sourceLineNo">2700</span>    }<a name="line.2700"></a>
-<span class="sourceLineNo">2701</span>    if (!filesToRemove.isEmpty()) {<a name="line.2701"></a>
-<span class="sourceLineNo">2702</span>      // Clear the compactedfiles from the store file manager<a name="line.2702"></a>
-<span class="sourceLineNo">2703</span>      clearCompactedfiles(filesToRemove);<a name="line.2703"></a>
-<span class="sourceLineNo">2704</span>      // Try to send report of this archival to the Master for updating quota usage faster<a name="line.2704"></a>
-<span class="sourceLineNo">2705</span>      reportArchivedFilesForQuota(filesToRemove, storeFileSizes);<a name="line.2705"></a>
-<span class="sourceLineNo">2706</span>    }<a name="line.2706"></a>
-<span class="sourceLineNo">2707</span>  }<a name="line.2707"></a>
-<span class="sourceLineNo">2708</span><a name="line.2708"></a>
-<span class="sourceLineNo">2709</span>  /**<a name="line.2709"></a>
-<span class="sourceLineNo">2710</span>   * Computes the length of a store file without succumbing to any errors along the way. If an<a name="line.2710"></a>
-<span class="sourceLineNo">2711</span>   * error is encountered, the implementation returns {@code 0} instead of the actual size.<a name="line.2711"></a>
-<span class="sourceLineNo">2712</span>   *<a name="line.2712"></a>
-<span class="sourceLineNo">2713</span>   * @param file The file to compute the size of.<a name="line.2713"></a>
-<span class="sourceLineNo">2714</span>   * @return The size in bytes of the provided {@code file}.<a name="line.2714"></a>
-<span class="sourceLineNo">2715</span>   */<a name="line.2715"></a>
-<span class="sourceLineNo">2716</span>  long getStoreFileSize(HStoreFile file) {<a name="line.2716"></a>
-<span class="sourceLineNo">2717</span>    long length = 0;<a name="line.2717"></a>
-<span class="sourceLineNo">2718</span>    try {<a name="line.2718"></a>
-<span class="sourceLineNo">2719</span>      file.initReader();<a name="line.2719"></a>
-<span class="sourceLineNo">2720</span>      length = file.getReader().length();<a name="line.2720"></a>
-<span class="sourceLineNo">2721</span>    } catch (IOException e) {<a name="line.2721"></a>
-<span class="sourceLineNo">2722</span>      LOG.trace("Failed to open reader when trying to compute store file size, ignoring", e);<a name="line.2722"></a>
-<span class="sourceLineNo">2723</span>    } finally {<a name="line.2723"></a>
-<span class="sourceLineNo">2724</span>      try {<a name="line.2724"></a>
-<span class="sourceLineNo">2725</span>        file.closeStoreFile(<a name="line.2725"></a>
-<span class="sourceLineNo">2726</span>            file.getCacheConf() != null ? file.getCacheConf().shouldEvictOnClose() : true);<a name="line.2726"></a>
-<span class="sourceLineNo">2727</span>      } catch (IOException e) {<a name="line.2727"></a>
-<span class="sourceLineNo">2728</span>        LOG.trace("Failed to close reader after computing store file size, ignoring", e);<a name="line.2728"></a>
-<span class="sourceLineNo">2729</span>      }<a name="line.2729"></a>
-<span class="sourceLineNo">2730</span>    }<a name="line.2730"></a>
-<span class="sourceLineNo">2731</span>    return length;<a name="line.2731"></a>
-<span class="sourceLineNo">2732</span>  }<a name="line.2732"></a>
-<span class="sourceLineNo">2733</span><a name="line.2733"></a>
-<span class="sourceLineNo">2734</span>  public Long preFlushSeqIDEstimation() {<a name="line.2734"></a>
-<span class="sourceLineNo">2735</span>    return memstore.preFlushSeqIDEstimation();<a name="line.2735"></a>
-<span class="sourceLineNo">2736</span>  }<a name="line.2736"></a>
-<span class="sourceLineNo">2737</span><a name="line.2737"></a>
-<span class="sourceLineNo">2738</span>  @Override<a name="line.2738"></a>
-<span class="sourceLineNo">2739</span>  public boolean isSloppyMemStore() {<a name="line.2739"></a>
-<span class="sourceLineNo">2740</span>    return this.memstore.isSloppy();<a name="line.2740"></a>
-<span class="sourceLineNo">2741</span>  }<a name="line.2741"></a>
-<span class="sourceLineNo">2742</span><a name="line.2742"></a>
-<span class="sourceLineNo">2743</span>  private void clearCompactedfiles(List&lt;HStoreFile&gt; filesToRemove) throws IOException {<a name="line.2743"></a>
-<span class="sourceLineNo">2744</span>    LOG.trace("Clearing the compacted file {} from this store", filesToRemove);<a name="line.2744"></a>
-<span class="sourceLineNo">2745</span>    try {<a name="line.2745"></a>
-<span class="sourceLineNo">2746</span>      lock.writeLock().lock();<a name="line.2746"></a>
-<span class="sourceLineNo">2747</span>      this.getStoreEngine().getStoreFileManager().removeCompactedFiles(filesToRemove);<a name="line.2747"></a>
-<span class="sourceLineNo">2748</span>    } finally {<a name="line.2748"></a>
-<span class="sourceLineNo">2749</span>      lock.writeLock().unlock();<a name="line.2749"></a>
+<span class="sourceLineNo">2592</span>  public synchronized void closeAndArchiveCompactedFiles() throws IOException {<a name="line.2592"></a>
+<span class="sourceLineNo">2593</span>    // ensure other threads do not attempt to archive the same files on close()<a name="line.2593"></a>
+<span class="sourceLineNo">2594</span>    archiveLock.lock();<a name="line.2594"></a>
+<span class="sourceLineNo">2595</span>    try {<a name="line.2595"></a>
+<span class="sourceLineNo">2596</span>      lock.readLock().lock();<a name="line.2596"></a>
+<span class="sourceLineNo">2597</span>      Collection&lt;HStoreFile&gt; copyCompactedfiles = null;<a name="line.2597"></a>
+<span class="sourceLineNo">2598</span>      try {<a name="line.2598"></a>
+<span class="sourceLineNo">2599</span>        Collection&lt;HStoreFile&gt; compactedfiles =<a name="line.2599"></a>
+<span class="sourceLineNo">2600</span>            this.getStoreEngine().getStoreFileManager().getCompactedfiles();<a name="line.2600"></a>
+<span class="sourceLineNo">2601</span>        if (CollectionUtils.isNotEmpty(compactedfiles)) {<a name="line.2601"></a>
+<span class="sourceLineNo">2602</span>          // Do a copy under read lock<a name="line.2602"></a>
+<span class="sourceLineNo">2603</span>          copyCompactedfiles = new ArrayList&lt;&gt;(compactedfiles);<a name="line.2603"></a>
+<span class="sourceLineNo">2604</span>        } else {<a name="line.2604"></a>
+<span class="sourceLineNo">2605</span>          LOG.trace("No compacted files to archive");<a name="line.2605"></a>
+<span class="sourceLineNo">2606</span>        }<a name="line.2606"></a>
+<span class="sourceLineNo">2607</span>      } finally {<a name="line.2607"></a>
+<span class="sourceLineNo">2608</span>        lock.readLock().unlock();<a name="line.2608"></a>
+<span class="sourceLineNo">2609</span>      }<a name="line.2609"></a>
+<span class="sourceLineNo">2610</span>      if (CollectionUtils.isNotEmpty(copyCompactedfiles)) {<a name="line.2610"></a>
+<span class="sourceLineNo">2611</span>        removeCompactedfiles(copyCompactedfiles);<a name="line.2611"></a>
+<span class="sourceLineNo">2612</span>      }<a name="line.2612"></a>
+<span class="sourceLineNo">2613</span>    } finally {<a name="line.2613"></a>
+<span class="sourceLineNo">2614</span>      archiveLock.unlock();<a name="line.2614"></a>
+<span class="sourceLineNo">2615</span>    }<a name="line.2615"></a>
+<span class="sourceLineNo">2616</span>  }<a name="line.2616"></a>
+<span class="sourceLineNo">2617</span><a name="line.2617"></a>
+<span class="sourceLineNo">2618</span>  /**<a name="line.2618"></a>
+<span class="sourceLineNo">2619</span>   * Archives and removes the compacted files<a name="line.2619"></a>
+<span class="sourceLineNo">2620</span>   * @param compactedfiles The compacted files in this store that are not active in reads<a name="line.2620"></a>
+<span class="sourceLineNo">2621</span>   */<a name="line.2621"></a>
+<span class="sourceLineNo">2622</span>  private void removeCompactedfiles(Collection&lt;HStoreFile&gt; compactedfiles)<a name="line.2622"></a>
+<span class="sourceLineNo">2623</span>      throws IOException {<a name="line.2623"></a>
+<span class="sourceLineNo">2624</span>    final List&lt;HStoreFile&gt; filesToRemove = new ArrayList&lt;&gt;(compactedfiles.size());<a name="line.2624"></a>
+<span class="sourceLineNo">2625</span>    final List&lt;Long&gt; storeFileSizes = new ArrayList&lt;&gt;(compactedfiles.size());<a name="line.2625"></a>
+<span class="sourceLineNo">2626</span>    for (final HStoreFile file : compactedfiles) {<a name="line.2626"></a>
+<span class="sourceLineNo">2627</span>      synchronized (file) {<a name="line.2627"></a>
+<span class="sourceLineNo">2628</span>        try {<a name="line.2628"></a>
+<span class="sourceLineNo">2629</span>          StoreFileReader r = file.getReader();<a name="line.2629"></a>
+<span class="sourceLineNo">2630</span>          if (r == null) {<a name="line.2630"></a>
+<span class="sourceLineNo">2631</span>            LOG.debug("The file {} was closed but still not archived", file);<a name="line.2631"></a>
+<span class="sourceLineNo">2632</span>            // HACK: Temporarily re-open the reader so we can get the size of the file. Ideally,<a name="line.2632"></a>
+<span class="sourceLineNo">2633</span>            // we should know the size of an HStoreFile without having to ask the HStoreFileReader<a name="line.2633"></a>
+<span class="sourceLineNo">2634</span>            // for that.<a name="line.2634"></a>
+<span class="sourceLineNo">2635</span>            long length = getStoreFileSize(file);<a name="line.2635"></a>
+<span class="sourceLineNo">2636</span>            filesToRemove.add(file);<a name="line.2636"></a>
+<span class="sourceLineNo">2637</span>            storeFileSizes.add(length);<a name="line.2637"></a>
+<span class="sourceLineNo">2638</span>            continue;<a name="line.2638"></a>
+<span class="sourceLineNo">2639</span>          }<a name="line.2639"></a>
+<span class="sourceLineNo">2640</span><a name="line.2640"></a>
+<span class="sourceLineNo">2641</span>          if (file.isCompactedAway() &amp;&amp; !file.isReferencedInReads()) {<a name="line.2641"></a>
+<span class="sourceLineNo">2642</span>            // Even if deleting fails we need not bother as any new scanners won't be<a name="line.2642"></a>
+<span class="sourceLineNo">2643</span>            // able to use the compacted file as the status is already compactedAway<a name="line.2643"></a>
+<span class="sourceLineNo">2644</span>            LOG.trace("Closing and archiving the file {}", file);<a name="line.2644"></a>
+<span class="sourceLineNo">2645</span>            // Copy the file size before closing the reader<a name="line.2645"></a>
+<span class="sourceLineNo">2646</span>            final long length = r.length();<a name="line.2646"></a>
+<span class="sourceLineNo">2647</span>            r.close(true);<a name="line.2647"></a>
+<span class="sourceLineNo">2648</span>            // Just close and return<a name="line.2648"></a>
+<span class="sourceLineNo">2649</span>            filesToRemove.add(file);<a name="line.2649"></a>
+<span class="sourceLineNo">2650</span>            // Only add the length if we successfully added the file to `filesToRemove`<a name="line.2650"></a>
+<span class="sourceLineNo">2651</span>            storeFileSizes.add(length);<a name="line.2651"></a>
+<span class="sourceLineNo">2652</span>          } else {<a name="line.2652"></a>
+<span class="sourceLineNo">2653</span>            LOG.info("Can't archive compacted file " + file.getPath()<a name="line.2653"></a>
+<span class="sourceLineNo">2654</span>                + " because of either isCompactedAway=" + file.isCompactedAway()<a name="line.2654"></a>
+<span class="sourceLineNo">2655</span>                + " or file has reference, isReferencedInReads=" + file.isReferencedInReads()<a name="line.2655"></a>
+<span class="sourceLineNo">2656</span>                + ", refCount=" + r.getRefCount() + ", skipping for now.");<a name="line.2656"></a>
+<span class="sourceLineNo">2657</span>          }<a name="line.2657"></a>
+<span class="sourceLineNo">2658</span>        } catch (Exception e) {<a name="line.2658"></a>
+<span class="sourceLineNo">2659</span>          LOG.error("Exception while trying to close the compacted store file {}", file.getPath(),<a name="line.2659"></a>
+<span class="sourceLineNo">2660</span>              e);<a name="line.2660"></a>
+<span class="sourceLineNo">2661</span>        }<a name="line.2661"></a>
+<span class="sourceLineNo">2662</span>      }<a name="line.2662"></a>
+<span class="sourceLineNo">2663</span>    }<a name="line.2663"></a>
+<span class="sourceLineNo">2664</span>    if (this.isPrimaryReplicaStore()) {<a name="line.2664"></a>
+<span class="sourceLineNo">2665</span>      // Only the primary region is allowed to move the file to archive.<a name="line.2665"></a>
+<span class="sourceLineNo">2666</span>      // The secondary region does not move the files to archive. Any active reads from<a name="line.2666"></a>
+<span class="sourceLineNo">2667</span>      // the secondary region will still work because the file as such has active readers on it.<a name="line.2667"></a>
+<span class="sourceLineNo">2668</span>      if (!filesToRemove.isEmpty()) {<a name="line.2668"></a>
+<span class="sourceLineNo">2669</span>        LOG.debug("Moving the files {} to archive", filesToRemove);<a name="line.2669"></a>
+<span class="sourceLineNo">2670</span>        // Only if this is successful it has to be removed<a name="line.2670"></a>
+<span class="sourceLineNo">2671</span>        try {<a name="line.2671"></a>
+<span class="sourceLineNo">2672</span>          this.fs.removeStoreFiles(this.getColumnFamilyDescriptor().getNameAsString(), filesToRemove);<a name="line.2672"></a>
+<span class="sourceLineNo">2673</span>        } catch (FailedArchiveException fae) {<a name="line.2673"></a>
+<span class="sourceLineNo">2674</span>          // Even if archiving some files failed, we still need to clear out any of the<a name="line.2674"></a>
+<span class="sourceLineNo">2675</span>          // files which were successfully archived.  Otherwise we will receive a<a name="line.2675"></a>
+<span class="sourceLineNo">2676</span>          // FileNotFoundException when we attempt to re-archive them in the next go around.<a name="line.2676"></a>
+<span class="sourceLineNo">2677</span>          Collection&lt;Path&gt; failedFiles = fae.getFailedFiles();<a name="line.2677"></a>
+<span class="sourceLineNo">2678</span>          Iterator&lt;HStoreFile&gt; iter = filesToRemove.iterator();<a name="line.2678"></a>
+<span class="sourceLineNo">2679</span>          Iterator&lt;Long&gt; sizeIter = storeFileSizes.iterator();<a name="line.2679"></a>
+<span class="sourceLineNo">2680</span>          while (iter.hasNext()) {<a name="line.2680"></a>
+<span class="sourceLineNo">2681</span>            sizeIter.next();<a name="line.2681"></a>
+<span class="sourceLineNo">2682</span>            if (failedFiles.contains(iter.next().getPath())) {<a name="line.2682"></a>
+<span class="sourceLineNo">2683</span>              iter.remove();<a name="line.2683"></a>
+<span class="sourceLineNo">2684</span>              sizeIter.remove();<a name="line.2684"></a>
+<span class="sourceLineNo">2685</span>            }<a name="line.2685"></a>
+<span class="sourceLineNo">2686</span>          }<a name="line.2686"></a>
+<span class="sourceLineNo">2687</span>          if (!filesToRemove.isEmpty()) {<a name="line.2687"></a>
+<span class="sourceLineNo">2688</span>            clearCompactedfiles(filesToRemove);<a name="line.2688"></a>
+<span class="sourceLineNo">2689</span>          }<a name="line.2689"></a>
+<span class="sourceLineNo">2690</span>          throw fae;<a name="line.2690"></a>
+<span class="sourceLineNo">2691</span>        }<a name="line.2691"></a>
+<span class="sourceLineNo">2692</span>      }<a name="line.2692"></a>
+<span class="sourceLineNo">2693</span>    }<a name="line.2693"></a>
+<span class="sourceLineNo">2694</span>    if (!filesToRemove.isEmpty()) {<a name="line.2694"></a>
+<span class="sourceLineNo">2695</span>      // Clear the compactedfiles from the store file manager<a name="line.2695"></a>
+<span class="sourceLineNo">2696</span>      clearCompactedfiles(filesToRemove);<a name="line.2696"></a>
+<span class="sourceLineNo">2697</span>      // Try to send report of this archival to the Master for updating quota usage faster<a name="line.2697"></a>
+<span class="sourceLineNo">2698</span>      reportArchivedFilesForQuota(filesToRemove, storeFileSizes);<a name="line.2698"></a>
+<span class="sourceLineNo">2699</span>    }<a name="line.2699"></a>
+<span class="sourceLineNo">2700</span>  }<a name="line.2700"></a>
+<span class="sourceLineNo">2701</span><a name="line.2701"></a>
+<span class="sourceLineNo">2702</span>  /**<a name="line.2702"></a>
+<span class="sourceLineNo">2703</span>   * Computes the length of a store file without succumbing to any errors along the way. If an<a name="line.2703"></a>
+<span class="sourceLineNo">2704</span>   * error is encountered, the implementation returns {@code 0} instead of the actual size.<a name="line.2704"></a>
+<span class="sourceLineNo">2705</span>   *<a name="line.2705"></a>
+<span class="sourceLineNo">2706</span>   * @param file The file to compute the size of.<a name="line.2706"></a>
+<span class="sourceLineNo">2707</span>   * @return The size in bytes of the provided {@code file}.<a name="line.2707"></a>
+<span class="sourceLineNo">2708</span>   */<a name="line.2708"></a>
+<span class="sourceLineNo">2709</span>  long getStoreFileSize(HStoreFile file) {<a name="line.2709"></a>
+<span class="sourceLineNo">2710</span>    long length = 0;<a name="line.2710"></a>
+<span class="sourceLineNo">2711</span>    try {<a name="line.2711"></a>
+<span class="sourceLineNo">2712</span>      file.initReader();<a name="line.2712"></a>
+<span class="sourceLineNo">2713</span>      length = file.getReader().length();<a name="line.2713"></a>
+<span class="sourceLineNo">2714</span>    } catch (IOException e) {<a name="line.2714"></a>
+<span class="sourceLineNo">2715</span>      LOG.trace("Failed to open reader when trying to compute store file size, ignoring", e);<a name="line.2715"></a>
+<span class="sourceLineNo">2716</span>    } finally {<a name="line.2716"></a>
+<span class="sourceLineNo">2717</span>      try {<a name="line.2717"></a>
+<span class="sourceLineNo">2718</span>        file.closeStoreFile(<a name="line.2718"></a>
+<span class="sourceLineNo">2719</span>            file.getCacheConf() != null ? file.getCacheConf().shouldEvictOnClose() : true);<a name="line.2719"></a>
+<span class="sourceLineNo">2720</span>      } catch (IOException e) {<a name="line.2720"></a>
+<span class="sourceLineNo">2721</span>        LOG.trace("Failed to close reader after computing store file size, ignoring", e);<a name="line.2721"></a>
+<span class="sourceLineNo">2722</span>      }<a name="line.2722"></a>
+<span class="sourceLineNo">2723</span>    }<a name="line.2723"></a>
+<span class="sourceLineNo">2724</span>    return length;<a name="line.2724"></a>
+<span class="sourceLineNo">2725</span>  }<a name="line.2725"></a>
+<span class="sourceLineNo">2726</span><a name="line.2726"></a>
+<span class="sourceLineNo">2727</span>  public Long preFlushSeqIDEstimation() {<a name="line.2727"></a>
+<span class="sourceLineNo">2728</span>    return memstore.preFlushSeqIDEstimation();<a name="line.2728"></a>
+<span class="sourceLineNo">2729</span>  }<a name="line.2729"></a>
+<span class="sourceLineNo">2730</span><a name="line.2730"></a>
+<span class="sourceLineNo">2731</span>  @Override<a name="line.2731"></a>
+<span class="sourceLineNo">2732</span>  public boolean isSloppyMemStore() {<a name="line.2732"></a>
+<span class="sourceLineNo">2733</span>    return this.memstore.isSloppy();<a name="line.2733"></a>
+<span class="sourceLineNo">2734</span>  }<a name="line.2734"></a>
+<span class="sourceLineNo">2735</span><a name="line.2735"></a>
+<span class="sourceLineNo">2736</span>  private void clearCompactedfiles(List&lt;HStoreFile&gt; filesToRemove) throws IOException {<a name="line.2736"></a>
+<span class="sourceLineNo">2737</span>    LOG.trace("Clearing the compacted file {} from this store", filesToRemove);<a name="line.2737"></a>
+<span class="sourceLineNo">2738</span>    try {<a name="line.2738"></a>
+<span class="sourceLineNo">2739</span>      lock.writeLock().lock();<a name="line.2739"></a>
+<span class="sourceLineNo">2740</span>      this.getStoreEngine().getStoreFileManager().removeCompactedFiles(filesToRemove);<a name="line.2740"></a>
+<span class="sourceLineNo">2741</span>    } finally {<a name="line.2741"></a>
+<span class="sourceLineNo">2742</span>      lock.writeLock().unlock();<a name="line.2742"></a>
+<span class="sourceLineNo">2743</span>    }<a name="line.2743"></a>
+<span class="sourceLineNo">2744</span>  }<a name="line.2744"></a>
+<span class="sourceLineNo">2745</span><a name="line.2745"></a>
+<span class="sourceLineNo">2746</span>  void reportArchivedFilesForQuota(List&lt;? extends StoreFile&gt; archivedFiles, List&lt;Long&gt; fileSizes) {<a name="line.2746"></a>
+<span class="sourceLineNo">2747</span>    // Sanity check from the caller<a name="line.2747"></a>
+<span class="sourceLineNo">2748</span>    if (archivedFiles.size() != fileSizes.size()) {<a name="line.2748"></a>
+<span class="sourceLineNo">2749</span>      throw new RuntimeException("Coding error: should never see lists of varying size");<a name="line.2749"></a>
 <span class="sourceLineNo">2750</span>    }<a name="line.2750"></a>
-<span class="sourceLineNo">2751</span>  }<a name="line.2751"></a>
-<span class="sourceLineNo">2752</span><a name="line.2752"></a>
-<span class="sourceLineNo">2753</span>  void reportArchivedFilesForQuota(List&lt;? extends StoreFile&gt; archivedFiles, List&lt;Long&gt; fileSizes) {<a name="line.2753"></a>
-<span class="sourceLineNo">2754</span>    // Sanity check from the caller<a name="line.2754"></a>
-<span class="sourceLineNo">2755</span>    if (archivedFiles.size() != fileSizes.size()) {<a name="line.2755"></a>
-<span class="sourceLineNo">2756</span>      throw new RuntimeException("Coding error: should never see lists of varying size");<a name="line.2756"></a>
-<span class="sourceLineNo">2757</span>    }<a name="line.2757"></a>
-<span class="sourceLineNo">2758</span>    RegionServerServices rss = this.region.getRegionServerServices();<a name="line.2758"></a>
-<span class="sourceLineNo">2759</span>    if (rss == null) {<a name="line.2759"></a>
-<span class="sourceLineNo">2760</span>      return;<a name="line.2760"></a>
-<span class="sourceLineNo">2761</span>    }<a name="line.2761"></a>
-<span class="sourceLineNo">2762</span>    List&lt;Entry&lt;String,Long&gt;&gt; filesWithSizes = new ArrayList&lt;&gt;(archivedFiles.size());<a name="line.2762"></a>
-<span class="sourceLineNo">2763</span>    Iterator&lt;Long&gt; fileSizeIter = fileSizes.iterator();<a name="line.2763"></a>
-<span class="sourceLineNo">2764</span>    for (StoreFile storeFile : archivedFiles) {<a name="line.2764"></a>
-<span class="sourceLineNo">2765</span>      final long fileSize = fileSizeIter.next();<a name="line.2765"></a>
-<span class="sourceLineNo">2766</span>      if (storeFile.isHFile() &amp;&amp; fileSize != 0) {<a name="line.2766"></a>
-<span class="sourceLineNo">2767</span>        filesWithSizes.add(Maps.immutableEntry(storeFile.getPath().getName(), fileSize));<a name="line.2767"></a>
-<span class="sourceLineNo">2768</span>      }<a name="line.2768"></a>
-<span class="sourceLineNo">2769</span>    }<a name="line.2769"></a>
-<span class="sourceLineNo">2770</span>    if (LOG.isTraceEnabled()) {<a name="line.2770"></a>
-<span class="sourceLineNo">2771</span>      LOG.trace("Files archived: " + archivedFiles + ", reporting the following to the Master: "<a name="line.2771"></a>
-<span class="sourceLineNo">2772</span>          + filesWithSizes);<a name="line.2772"></a>
-<span class="sourceLineNo">2773</span>    }<a name="line.2773"></a>
-<span class="sourceLineNo">2774</span>    boolean success = rss.reportFileArchivalForQuotas(getTableName(), filesWithSizes);<a name="line.2774"></a>
-<span class="sourceLineNo">2775</span>    if (!success) {<a name="line.2775"></a>
-<span class="sourceLineNo">2776</span>      LOG.warn("Failed to report archival of files: " + filesWithSizes);<a name="line.2776"></a>
-<span class="sourceLineNo">2777</span>    }<a name="line.2777"></a>
-<span class="sourceLineNo">2778</span>  }<a name="line.2778"></a>
-<span class="sourceLineNo">2779</span><a name="line.2779"></a>
-<span class="sourceLineNo">2780</span>  @Override<a name="line.2780"></a>
-<span class="sourceLineNo">2781</span>  public int getCurrentParallelPutCount() {<a name="line.2781"></a>
-<span class="sourceLineNo">2782</span>    return currentParallelPutCount.get();<a name="line.2782"></a>
-<span class="sourceLineNo">2783</span>  }<a name="line.2783"></a>
-<span class="sourceLineNo">2784</span><a name="line.2784"></a>
-<span class="sourceLineNo">2785</span>  public int getStoreRefCount() {<a name="line.2785"></a>
-<span class="sourceLineNo">2786</span>    return this.storeEngine.getStoreFileManager().getStorefiles().stream()<a name="line.2786"></a>
-<span class="sourceLineNo">2787</span>      .filter(sf -&gt; sf.getReader() != null).filter(HStoreFile::isHFile)<a name="line.2787"></a>
-<span class="sourceLineNo">2788</span>      .mapToInt(HStoreFile::getRefCount).sum();<a name="line.2788"></a>
-<span class="sourceLineNo">2789</span>  }<a name="line.2789"></a>
-<span class="sourceLineNo">2790</span>}<a name="line.2790"></a>
+<span class="sourceLineNo">2751</span>    RegionServerServices rss = this.region.getRegionServerServices();<a name="line.2751"></a>
+<span class="sourceLineNo">2752</span>    if (rss == null) {<a name="line.2752"></a>
+<span class="sourceLineNo">2753</span>      return;<a name="line.2753"></a>
+<span class="sourceLineNo">2754</span>    }<a name="line.2754"></a>
+<span class="sourceLineNo">2755</span>    List&lt;Entry&lt;String,Long&gt;&gt; filesWithSizes = new ArrayList&lt;&gt;(archivedFiles.size());<a name="line.2755"></a>
+<span class="sourceLineNo">2756</span>    Iterator&lt;Long&gt; fileSizeIter = fileSizes.iterator();<a name="line.2756"></a>
+<span class="sourceLineNo">2757</span>    for (StoreFile storeFile : archivedFiles) {<a name="line.2757"></a>
+<span class="sourceLineNo">2758</span>      final long fileSize = fileSizeIter.next();<a name="line.2758"></a>
+<span class="sourceLineNo">2759</span>      if (storeFile.isHFile() &amp;&amp; fileSize != 0) {<a name="line.2759"></a>
+<span class="sourceLineNo">2760</span>        filesWithSizes.add(Maps.immutableEntry(storeFile.getPath().getName(), fileSize));<a name="line.2760"></a>
+<span class="sourceLineNo">2761</span>      }<a name="line.2761"></a>
+<span class="sourceLineNo">2762</span>    }<a name="line.2762"></a>
+<span class="sourceLineNo">2763</span>    if (LOG.isTraceEnabled()) {<a name="line.2763"></a>
+<span class="sourceLineNo">2764</span>      LOG.trace("Files archived: " + archivedFiles + ", reporting the following to the Master: "<a name="line.2764"></a>
+<span class="sourceLineNo">2765</span>          + filesWithSizes);<a name="line.2765"></a>
+<span class="sourceLineNo">2766</span>    }<a name="line.2766"></a>
+<span class="sourceLineNo">2767</span>    boolean success = rss.reportFileArchivalForQuotas(getTableName(), filesWithSizes);<a name="line.2767"></a>
+<span class="sourceLineNo">2768</span>    if (!success) {<a name="line.2768"></a>
+<span class="sourceLineNo">2769</span>      LOG.warn("Failed to report archival of files: " + filesWithSizes);<a name="line.2769"></a>
+<span class="sourceLineNo">2770</span>    }<a name="line.2770"></a>
+<span class="sourceLineNo">2771</span>  }<a name="line.2771"></a>
+<span class="sourceLineNo">2772</span><a name="line.2772"></a>
+<span class="sourceLineNo">2773</span>  @Override<a name="line.2773"></a>
+<span class="sourceLineNo">2774</span>  public int getCurrentParallelPutCount() {<a name="line.2774"></a>
+<span class="sourceLineNo">2775</span>    return currentParallelPutCount.get();<a name="line.2775"></a>
+<span class="sourceLineNo">2776</span>  }<a name="line.2776"></a>
+<span class="sourceLineNo">2777</span><a name="line.2777"></a>
+<span class="sourceLineNo">2778</span>  public int getStoreRefCount() {<a name="line.2778"></a>
+<span class="sourceLineNo">2779</span>    return this.storeEngine.getStoreFileManager().getStorefiles().stream()<a name="line.2779"></a>
+<span class="sourceLineNo">2780</span>      .filter(sf -&gt; sf.getReader() != null).filter(HStoreFile::isHFile)<a name="line.2780"></a>
+<span class="sourceLineNo">2781</span>      .mapToInt(HStoreFile::getRefCount).sum();<a name="line.2781"></a>
+<span class="sourceLineNo">2782</span>  }<a name="line.2782"></a>
+<span class="sourceLineNo">2783</span>}<a name="line.2783"></a>
 
 
 
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HStore.html b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HStore.html
index b550f48..ed71d07 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HStore.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HStore.html
@@ -317,7 +317,7 @@
 <span class="sourceLineNo">309</span>    // update the storeSize in the completeCompaction(..) finally (just like compaction) , so<a name="line.309"></a>
 <span class="sourceLineNo">310</span>    // no need calculate the storeSize twice.<a name="line.310"></a>
 <span class="sourceLineNo">311</span>    this.storeSize.addAndGet(getStorefilesSize(hStoreFiles, sf -&gt; true));<a name="line.311"></a>
-<span class="sourceLineNo">312</span>    this.totalUncompressedBytes.addAndGet(getTotalUmcompressedBytes(hStoreFiles));<a name="line.312"></a>
+<span class="sourceLineNo">312</span>    this.totalUncompressedBytes.addAndGet(getTotalUncompressedBytes(hStoreFiles));<a name="line.312"></a>
 <span class="sourceLineNo">313</span>    this.storeEngine.getStoreFileManager().loadFiles(hStoreFiles);<a name="line.313"></a>
 <span class="sourceLineNo">314</span><a name="line.314"></a>
 <span class="sourceLineNo">315</span>    // Initialize checksum type from name. The names are CRC32, CRC32C, etc.<a name="line.315"></a>
@@ -2184,618 +2184,611 @@
 <span class="sourceLineNo">2176</span>      HStoreFile::isHFile);<a name="line.2176"></a>
 <span class="sourceLineNo">2177</span>  }<a name="line.2177"></a>
 <span class="sourceLineNo">2178</span><a name="line.2178"></a>
-<span class="sourceLineNo">2179</span>  private long getTotalUmcompressedBytes(List&lt;HStoreFile&gt; files) {<a name="line.2179"></a>
-<span class="sourceLineNo">2180</span>    return files.stream().filter(f -&gt; f != null).mapToLong(f -&gt; {<a name="line.2180"></a>
-<span class="sourceLineNo">2181</span>      StoreFileReader reader = f.getReader();<a name="line.2181"></a>
-<span class="sourceLineNo">2182</span>      if (reader == null) {<a name="line.2182"></a>
-<span class="sourceLineNo">2183</span>        return 0;<a name="line.2183"></a>
-<span class="sourceLineNo">2184</span>      } else {<a name="line.2184"></a>
-<span class="sourceLineNo">2185</span>        return reader.getTotalUncompressedBytes();<a name="line.2185"></a>
-<span class="sourceLineNo">2186</span>      }<a name="line.2186"></a>
-<span class="sourceLineNo">2187</span>    }).sum();<a name="line.2187"></a>
+<span class="sourceLineNo">2179</span>  private long getTotalUncompressedBytes(List&lt;HStoreFile&gt; files) {<a name="line.2179"></a>
+<span class="sourceLineNo">2180</span>    return files.stream()<a name="line.2180"></a>
+<span class="sourceLineNo">2181</span>      .mapToLong(file -&gt; getStorefileFieldSize(file, StoreFileReader::getTotalUncompressedBytes))<a name="line.2181"></a>
+<span class="sourceLineNo">2182</span>      .sum();<a name="line.2182"></a>
+<span class="sourceLineNo">2183</span>  }<a name="line.2183"></a>
+<span class="sourceLineNo">2184</span><a name="line.2184"></a>
+<span class="sourceLineNo">2185</span>  private long getStorefilesSize(Collection&lt;HStoreFile&gt; files, Predicate&lt;HStoreFile&gt; predicate) {<a name="line.2185"></a>
+<span class="sourceLineNo">2186</span>    return files.stream().filter(predicate)<a name="line.2186"></a>
+<span class="sourceLineNo">2187</span>      .mapToLong(file -&gt; getStorefileFieldSize(file, StoreFileReader::length)).sum();<a name="line.2187"></a>
 <span class="sourceLineNo">2188</span>  }<a name="line.2188"></a>
 <span class="sourceLineNo">2189</span><a name="line.2189"></a>
-<span class="sourceLineNo">2190</span>  private long getStorefilesSize(Collection&lt;HStoreFile&gt; files, Predicate&lt;HStoreFile&gt; predicate) {<a name="line.2190"></a>
-<span class="sourceLineNo">2191</span>    return files.stream().filter(f -&gt; f != null &amp;&amp; f.getReader() != null).filter(predicate)<a name="line.2191"></a>
-<span class="sourceLineNo">2192</span>        .mapToLong(f -&gt; {<a name="line.2192"></a>
-<span class="sourceLineNo">2193</span>          StoreFileReader reader = f.getReader();<a name="line.2193"></a>
-<span class="sourceLineNo">2194</span>          if (reader == null) {<a name="line.2194"></a>
-<span class="sourceLineNo">2195</span>            return 0;<a name="line.2195"></a>
-<span class="sourceLineNo">2196</span>          } else {<a name="line.2196"></a>
-<span class="sourceLineNo">2197</span>            return reader.length();<a name="line.2197"></a>
-<span class="sourceLineNo">2198</span>          }<a name="line.2198"></a>
-<span class="sourceLineNo">2199</span>        }).sum();<a name="line.2199"></a>
-<span class="sourceLineNo">2200</span>  }<a name="line.2200"></a>
-<span class="sourceLineNo">2201</span><a name="line.2201"></a>
-<span class="sourceLineNo">2202</span>  private long getStoreFileFieldSize(ToLongFunction&lt;StoreFileReader&gt; f) {<a name="line.2202"></a>
-<span class="sourceLineNo">2203</span>    return this.storeEngine.getStoreFileManager().getStorefiles().stream()<a name="line.2203"></a>
-<span class="sourceLineNo">2204</span>        .map(HStoreFile::getReader).filter(reader -&gt; {<a name="line.2204"></a>
-<span class="sourceLineNo">2205</span>          if (reader == null) {<a name="line.2205"></a>
-<span class="sourceLineNo">2206</span>            return false;<a name="line.2206"></a>
-<span class="sourceLineNo">2207</span>          } else {<a name="line.2207"></a>
-<span class="sourceLineNo">2208</span>            return true;<a name="line.2208"></a>
-<span class="sourceLineNo">2209</span>          }<a name="line.2209"></a>
-<span class="sourceLineNo">2210</span>        }).mapToLong(f).sum();<a name="line.2210"></a>
-<span class="sourceLineNo">2211</span>  }<a name="line.2211"></a>
-<span class="sourceLineNo">2212</span><a name="line.2212"></a>
-<span class="sourceLineNo">2213</span>  @Override<a name="line.2213"></a>
-<span class="sourceLineNo">2214</span>  public long getStorefilesRootLevelIndexSize() {<a name="line.2214"></a>
-<span class="sourceLineNo">2215</span>    return getStoreFileFieldSize(StoreFileReader::indexSize);<a name="line.2215"></a>
-<span class="sourceLineNo">2216</span>  }<a name="line.2216"></a>
-<span class="sourceLineNo">2217</span><a name="line.2217"></a>
-<span class="sourceLineNo">2218</span>  @Override<a name="line.2218"></a>
-<span class="sourceLineNo">2219</span>  public long getTotalStaticIndexSize() {<a name="line.2219"></a>
-<span class="sourceLineNo">2220</span>    return getStoreFileFieldSize(StoreFileReader::getUncompressedDataIndexSize);<a name="line.2220"></a>
-<span class="sourceLineNo">2221</span>  }<a name="line.2221"></a>
-<span class="sourceLineNo">2222</span><a name="line.2222"></a>
-<span class="sourceLineNo">2223</span>  @Override<a name="line.2223"></a>
-<span class="sourceLineNo">2224</span>  public long getTotalStaticBloomSize() {<a name="line.2224"></a>
-<span class="sourceLineNo">2225</span>    return getStoreFileFieldSize(StoreFileReader::getTotalBloomSize);<a name="line.2225"></a>
-<span class="sourceLineNo">2226</span>  }<a name="line.2226"></a>
-<span class="sourceLineNo">2227</span><a name="line.2227"></a>
-<span class="sourceLineNo">2228</span>  @Override<a name="line.2228"></a>
-<span class="sourceLineNo">2229</span>  public MemStoreSize getMemStoreSize() {<a name="line.2229"></a>
-<span class="sourceLineNo">2230</span>    return this.memstore.size();<a name="line.2230"></a>
-<span class="sourceLineNo">2231</span>  }<a name="line.2231"></a>
-<span class="sourceLineNo">2232</span><a name="line.2232"></a>
-<span class="sourceLineNo">2233</span>  @Override<a name="line.2233"></a>
-<span class="sourceLineNo">2234</span>  public int getCompactPriority() {<a name="line.2234"></a>
-<span class="sourceLineNo">2235</span>    int priority = this.storeEngine.getStoreFileManager().getStoreCompactionPriority();<a name="line.2235"></a>
-<span class="sourceLineNo">2236</span>    if (priority == PRIORITY_USER) {<a name="line.2236"></a>
-<span class="sourceLineNo">2237</span>      LOG.warn("Compaction priority is USER despite there being no user compaction");<a name="line.2237"></a>
-<span class="sourceLineNo">2238</span>    }<a name="line.2238"></a>
-<span class="sourceLineNo">2239</span>    return priority;<a name="line.2239"></a>
-<span class="sourceLineNo">2240</span>  }<a name="line.2240"></a>
-<span class="sourceLineNo">2241</span><a name="line.2241"></a>
-<span class="sourceLineNo">2242</span>  public boolean throttleCompaction(long compactionSize) {<a name="line.2242"></a>
-<span class="sourceLineNo">2243</span>    return storeEngine.getCompactionPolicy().throttleCompaction(compactionSize);<a name="line.2243"></a>
-<span class="sourceLineNo">2244</span>  }<a name="line.2244"></a>
-<span class="sourceLineNo">2245</span><a name="line.2245"></a>
-<span class="sourceLineNo">2246</span>  public HRegion getHRegion() {<a name="line.2246"></a>
-<span class="sourceLineNo">2247</span>    return this.region;<a name="line.2247"></a>
-<span class="sourceLineNo">2248</span>  }<a name="line.2248"></a>
-<span class="sourceLineNo">2249</span><a name="line.2249"></a>
-<span class="sourceLineNo">2250</span>  public RegionCoprocessorHost getCoprocessorHost() {<a name="line.2250"></a>
-<span class="sourceLineNo">2251</span>    return this.region.getCoprocessorHost();<a name="line.2251"></a>
-<span class="sourceLineNo">2252</span>  }<a name="line.2252"></a>
-<span class="sourceLineNo">2253</span><a name="line.2253"></a>
-<span class="sourceLineNo">2254</span>  @Override<a name="line.2254"></a>
-<span class="sourceLineNo">2255</span>  public RegionInfo getRegionInfo() {<a name="line.2255"></a>
-<span class="sourceLineNo">2256</span>    return this.fs.getRegionInfo();<a name="line.2256"></a>
-<span class="sourceLineNo">2257</span>  }<a name="line.2257"></a>
-<span class="sourceLineNo">2258</span><a name="line.2258"></a>
-<span class="sourceLineNo">2259</span>  @Override<a name="line.2259"></a>
-<span class="sourceLineNo">2260</span>  public boolean areWritesEnabled() {<a name="line.2260"></a>
-<span class="sourceLineNo">2261</span>    return this.region.areWritesEnabled();<a name="line.2261"></a>
-<span class="sourceLineNo">2262</span>  }<a name="line.2262"></a>
-<span class="sourceLineNo">2263</span><a name="line.2263"></a>
-<span class="sourceLineNo">2264</span>  @Override<a name="line.2264"></a>
-<span class="sourceLineNo">2265</span>  public long getSmallestReadPoint() {<a name="line.2265"></a>
-<span class="sourceLineNo">2266</span>    return this.region.getSmallestReadPoint();<a name="line.2266"></a>
-<span class="sourceLineNo">2267</span>  }<a name="line.2267"></a>
-<span class="sourceLineNo">2268</span><a name="line.2268"></a>
-<span class="sourceLineNo">2269</span>  /**<a name="line.2269"></a>
-<span class="sourceLineNo">2270</span>   * Adds or replaces the specified KeyValues.<a name="line.2270"></a>
-<span class="sourceLineNo">2271</span>   * &lt;p&gt;<a name="line.2271"></a>
-<span class="sourceLineNo">2272</span>   * For each KeyValue specified, if a cell with the same row, family, and qualifier exists in<a name="line.2272"></a>
-<span class="sourceLineNo">2273</span>   * MemStore, it will be replaced. Otherwise, it will just be inserted to MemStore.<a name="line.2273"></a>
-<span class="sourceLineNo">2274</span>   * &lt;p&gt;<a name="line.2274"></a>
-<span class="sourceLineNo">2275</span>   * This operation is atomic on each KeyValue (row/family/qualifier) but not necessarily atomic<a name="line.2275"></a>
-<span class="sourceLineNo">2276</span>   * across all of them.<a name="line.2276"></a>
-<span class="sourceLineNo">2277</span>   * @param readpoint readpoint below which we can safely remove duplicate KVs<a name="line.2277"></a>
-<span class="sourceLineNo">2278</span>   * @throws IOException<a name="line.2278"></a>
-<span class="sourceLineNo">2279</span>   */<a name="line.2279"></a>
-<span class="sourceLineNo">2280</span>  public void upsert(Iterable&lt;Cell&gt; cells, long readpoint, MemStoreSizing memstoreSizing)<a name="line.2280"></a>
-<span class="sourceLineNo">2281</span>      throws IOException {<a name="line.2281"></a>
-<span class="sourceLineNo">2282</span>    this.lock.readLock().lock();<a name="line.2282"></a>
-<span class="sourceLineNo">2283</span>    try {<a name="line.2283"></a>
-<span class="sourceLineNo">2284</span>      this.memstore.upsert(cells, readpoint, memstoreSizing);<a name="line.2284"></a>
-<span class="sourceLineNo">2285</span>    } finally {<a name="line.2285"></a>
-<span class="sourceLineNo">2286</span>      this.lock.readLock().unlock();<a name="line.2286"></a>
-<span class="sourceLineNo">2287</span>    }<a name="line.2287"></a>
-<span class="sourceLineNo">2288</span>  }<a name="line.2288"></a>
-<span class="sourceLineNo">2289</span><a name="line.2289"></a>
-<span class="sourceLineNo">2290</span>  public StoreFlushContext createFlushContext(long cacheFlushId, FlushLifeCycleTracker tracker) {<a name="line.2290"></a>
-<span class="sourceLineNo">2291</span>    return new StoreFlusherImpl(cacheFlushId, tracker);<a name="line.2291"></a>
-<span class="sourceLineNo">2292</span>  }<a name="line.2292"></a>
-<span class="sourceLineNo">2293</span><a name="line.2293"></a>
-<span class="sourceLineNo">2294</span>  private final class StoreFlusherImpl implements StoreFlushContext {<a name="line.2294"></a>
-<span class="sourceLineNo">2295</span><a name="line.2295"></a>
-<span class="sourceLineNo">2296</span>    private final FlushLifeCycleTracker tracker;<a name="line.2296"></a>
-<span class="sourceLineNo">2297</span>    private final long cacheFlushSeqNum;<a name="line.2297"></a>
-<span class="sourceLineNo">2298</span>    private MemStoreSnapshot snapshot;<a name="line.2298"></a>
-<span class="sourceLineNo">2299</span>    private List&lt;Path&gt; tempFiles;<a name="line.2299"></a>
-<span class="sourceLineNo">2300</span>    private List&lt;Path&gt; committedFiles;<a name="line.2300"></a>
-<span class="sourceLineNo">2301</span>    private long cacheFlushCount;<a name="line.2301"></a>
-<span class="sourceLineNo">2302</span>    private long cacheFlushSize;<a name="line.2302"></a>
-<span class="sourceLineNo">2303</span>    private long outputFileSize;<a name="line.2303"></a>
-<span class="sourceLineNo">2304</span><a name="line.2304"></a>
-<span class="sourceLineNo">2305</span>    private StoreFlusherImpl(long cacheFlushSeqNum, FlushLifeCycleTracker tracker) {<a name="line.2305"></a>
-<span class="sourceLineNo">2306</span>      this.cacheFlushSeqNum = cacheFlushSeqNum;<a name="line.2306"></a>
-<span class="sourceLineNo">2307</span>      this.tracker = tracker;<a name="line.2307"></a>
-<span class="sourceLineNo">2308</span>    }<a name="line.2308"></a>
-<span class="sourceLineNo">2309</span><a name="line.2309"></a>
-<span class="sourceLineNo">2310</span>    /**<a name="line.2310"></a>
-<span class="sourceLineNo">2311</span>     * This is not thread safe. The caller should have a lock on the region or the store.<a name="line.2311"></a>
-<span class="sourceLineNo">2312</span>     * If necessary, the lock can be added with the patch provided in HBASE-10087<a name="line.2312"></a>
-<span class="sourceLineNo">2313</span>     */<a name="line.2313"></a>
-<span class="sourceLineNo">2314</span>    @Override<a name="line.2314"></a>
-<span class="sourceLineNo">2315</span>    public MemStoreSize prepare() {<a name="line.2315"></a>
-<span class="sourceLineNo">2316</span>      // passing the current sequence number of the wal - to allow bookkeeping in the memstore<a name="line.2316"></a>
-<span class="sourceLineNo">2317</span>      this.snapshot = memstore.snapshot();<a name="line.2317"></a>
-<span class="sourceLineNo">2318</span>      this.cacheFlushCount = snapshot.getCellsCount();<a name="line.2318"></a>
-<span class="sourceLineNo">2319</span>      this.cacheFlushSize = snapshot.getDataSize();<a name="line.2319"></a>
-<span class="sourceLineNo">2320</span>      committedFiles = new ArrayList&lt;&gt;(1);<a name="line.2320"></a>
-<span class="sourceLineNo">2321</span>      return snapshot.getMemStoreSize();<a name="line.2321"></a>
-<span class="sourceLineNo">2322</span>    }<a name="line.2322"></a>
-<span class="sourceLineNo">2323</span><a name="line.2323"></a>
-<span class="sourceLineNo">2324</span>    @Override<a name="line.2324"></a>
-<span class="sourceLineNo">2325</span>    public void flushCache(MonitoredTask status) throws IOException {<a name="line.2325"></a>
-<span class="sourceLineNo">2326</span>      RegionServerServices rsService = region.getRegionServerServices();<a name="line.2326"></a>
-<span class="sourceLineNo">2327</span>      ThroughputController throughputController =<a name="line.2327"></a>
-<span class="sourceLineNo">2328</span>          rsService == null ? null : rsService.getFlushThroughputController();<a name="line.2328"></a>
-<span class="sourceLineNo">2329</span>      tempFiles =<a name="line.2329"></a>
-<span class="sourceLineNo">2330</span>          HStore.this.flushCache(cacheFlushSeqNum, snapshot, status, throughputController, tracker);<a name="line.2330"></a>
-<span class="sourceLineNo">2331</span>    }<a name="line.2331"></a>
-<span class="sourceLineNo">2332</span><a name="line.2332"></a>
-<span class="sourceLineNo">2333</span>    @Override<a name="line.2333"></a>
-<span class="sourceLineNo">2334</span>    public boolean commit(MonitoredTask status) throws IOException {<a name="line.2334"></a>
-<span class="sourceLineNo">2335</span>      if (CollectionUtils.isEmpty(this.tempFiles)) {<a name="line.2335"></a>
-<span class="sourceLineNo">2336</span>        return false;<a name="line.2336"></a>
-<span class="sourceLineNo">2337</span>      }<a name="line.2337"></a>
-<span class="sourceLineNo">2338</span>      List&lt;HStoreFile&gt; storeFiles = new ArrayList&lt;&gt;(this.tempFiles.size());<a name="line.2338"></a>
-<span class="sourceLineNo">2339</span>      for (Path storeFilePath : tempFiles) {<a name="line.2339"></a>
-<span class="sourceLineNo">2340</span>        try {<a name="line.2340"></a>
-<span class="sourceLineNo">2341</span>          HStoreFile sf = HStore.this.commitFile(storeFilePath, cacheFlushSeqNum, status);<a name="line.2341"></a>
-<span class="sourceLineNo">2342</span>          outputFileSize += sf.getReader().length();<a name="line.2342"></a>
-<span class="sourceLineNo">2343</span>          storeFiles.add(sf);<a name="line.2343"></a>
-<span class="sourceLineNo">2344</span>        } catch (IOException ex) {<a name="line.2344"></a>
-<span class="sourceLineNo">2345</span>          LOG.error("Failed to commit store file {}", storeFilePath, ex);<a name="line.2345"></a>
-<span class="sourceLineNo">2346</span>          // Try to delete the files we have committed before.<a name="line.2346"></a>
-<span class="sourceLineNo">2347</span>          for (HStoreFile sf : storeFiles) {<a name="line.2347"></a>
-<span class="sourceLineNo">2348</span>            Path pathToDelete = sf.getPath();<a name="line.2348"></a>
-<span class="sourceLineNo">2349</span>            try {<a name="line.2349"></a>
-<span class="sourceLineNo">2350</span>              sf.deleteStoreFile();<a name="line.2350"></a>
-<span class="sourceLineNo">2351</span>            } catch (IOException deleteEx) {<a name="line.2351"></a>
-<span class="sourceLineNo">2352</span>              LOG.error(HBaseMarkers.FATAL, "Failed to delete store file we committed, "<a name="line.2352"></a>
-<span class="sourceLineNo">2353</span>                  + "halting {}", pathToDelete, ex);<a name="line.2353"></a>
-<span class="sourceLineNo">2354</span>              Runtime.getRuntime().halt(1);<a name="line.2354"></a>
-<span class="sourceLineNo">2355</span>            }<a name="line.2355"></a>
-<span class="sourceLineNo">2356</span>          }<a name="line.2356"></a>
-<span class="sourceLineNo">2357</span>          throw new IOException("Failed to commit the flush", ex);<a name="line.2357"></a>
-<span class="sourceLineNo">2358</span>        }<a name="line.2358"></a>
+<span class="sourceLineNo">2190</span>  private long getStorefileFieldSize(HStoreFile file, ToLongFunction&lt;StoreFileReader&gt; f) {<a name="line.2190"></a>
+<span class="sourceLineNo">2191</span>    if (file == null) {<a name="line.2191"></a>
+<span class="sourceLineNo">2192</span>      return 0L;<a name="line.2192"></a>
+<span class="sourceLineNo">2193</span>    }<a name="line.2193"></a>
+<span class="sourceLineNo">2194</span>    StoreFileReader reader = file.getReader();<a name="line.2194"></a>
+<span class="sourceLineNo">2195</span>    if (reader == null) {<a name="line.2195"></a>
+<span class="sourceLineNo">2196</span>      return 0L;<a name="line.2196"></a>
+<span class="sourceLineNo">2197</span>    }<a name="line.2197"></a>
+<span class="sourceLineNo">2198</span>    return f.applyAsLong(reader);<a name="line.2198"></a>
+<span class="sourceLineNo">2199</span>  }<a name="line.2199"></a>
+<span class="sourceLineNo">2200</span><a name="line.2200"></a>
+<span class="sourceLineNo">2201</span>  private long getStorefilesFieldSize(ToLongFunction&lt;StoreFileReader&gt; f) {<a name="line.2201"></a>
+<span class="sourceLineNo">2202</span>    return this.storeEngine.getStoreFileManager().getStorefiles().stream()<a name="line.2202"></a>
+<span class="sourceLineNo">2203</span>      .mapToLong(file -&gt; getStorefileFieldSize(file, f)).sum();<a name="line.2203"></a>
+<span class="sourceLineNo">2204</span>  }<a name="line.2204"></a>
+<span class="sourceLineNo">2205</span><a name="line.2205"></a>
+<span class="sourceLineNo">2206</span>  @Override<a name="line.2206"></a>
+<span class="sourceLineNo">2207</span>  public long getStorefilesRootLevelIndexSize() {<a name="line.2207"></a>
+<span class="sourceLineNo">2208</span>    return getStorefilesFieldSize(StoreFileReader::indexSize);<a name="line.2208"></a>
+<span class="sourceLineNo">2209</span>  }<a name="line.2209"></a>
+<span class="sourceLineNo">2210</span><a name="line.2210"></a>
+<span class="sourceLineNo">2211</span>  @Override<a name="line.2211"></a>
+<span class="sourceLineNo">2212</span>  public long getTotalStaticIndexSize() {<a name="line.2212"></a>
+<span class="sourceLineNo">2213</span>    return getStorefilesFieldSize(StoreFileReader::getUncompressedDataIndexSize);<a name="line.2213"></a>
+<span class="sourceLineNo">2214</span>  }<a name="line.2214"></a>
+<span class="sourceLineNo">2215</span><a name="line.2215"></a>
+<span class="sourceLineNo">2216</span>  @Override<a name="line.2216"></a>
+<span class="sourceLineNo">2217</span>  public long getTotalStaticBloomSize() {<a name="line.2217"></a>
+<span class="sourceLineNo">2218</span>    return getStorefilesFieldSize(StoreFileReader::getTotalBloomSize);<a name="line.2218"></a>
+<span class="sourceLineNo">2219</span>  }<a name="line.2219"></a>
+<span class="sourceLineNo">2220</span><a name="line.2220"></a>
+<span class="sourceLineNo">2221</span>  @Override<a name="line.2221"></a>
+<span class="sourceLineNo">2222</span>  public MemStoreSize getMemStoreSize() {<a name="line.2222"></a>
+<span class="sourceLineNo">2223</span>    return this.memstore.size();<a name="line.2223"></a>
+<span class="sourceLineNo">2224</span>  }<a name="line.2224"></a>
+<span class="sourceLineNo">2225</span><a name="line.2225"></a>
+<span class="sourceLineNo">2226</span>  @Override<a name="line.2226"></a>
+<span class="sourceLineNo">2227</span>  public int getCompactPriority() {<a name="line.2227"></a>
+<span class="sourceLineNo">2228</span>    int priority = this.storeEngine.getStoreFileManager().getStoreCompactionPriority();<a name="line.2228"></a>
+<span class="sourceLineNo">2229</span>    if (priority == PRIORITY_USER) {<a name="line.2229"></a>
+<span class="sourceLineNo">2230</span>      LOG.warn("Compaction priority is USER despite there being no user compaction");<a name="line.2230"></a>
+<span class="sourceLineNo">2231</span>    }<a name="line.2231"></a>
+<span class="sourceLineNo">2232</span>    return priority;<a name="line.2232"></a>
+<span class="sourceLineNo">2233</span>  }<a name="line.2233"></a>
+<span class="sourceLineNo">2234</span><a name="line.2234"></a>
+<span class="sourceLineNo">2235</span>  public boolean throttleCompaction(long compactionSize) {<a name="line.2235"></a>
+<span class="sourceLineNo">2236</span>    return storeEngine.getCompactionPolicy().throttleCompaction(compactionSize);<a name="line.2236"></a>
+<span class="sourceLineNo">2237</span>  }<a name="line.2237"></a>
+<span class="sourceLineNo">2238</span><a name="line.2238"></a>
+<span class="sourceLineNo">2239</span>  public HRegion getHRegion() {<a name="line.2239"></a>
+<span class="sourceLineNo">2240</span>    return this.region;<a name="line.2240"></a>
+<span class="sourceLineNo">2241</span>  }<a name="line.2241"></a>
+<span class="sourceLineNo">2242</span><a name="line.2242"></a>
+<span class="sourceLineNo">2243</span>  public RegionCoprocessorHost getCoprocessorHost() {<a name="line.2243"></a>
+<span class="sourceLineNo">2244</span>    return this.region.getCoprocessorHost();<a name="line.2244"></a>
+<span class="sourceLineNo">2245</span>  }<a name="line.2245"></a>
+<span class="sourceLineNo">2246</span><a name="line.2246"></a>
+<span class="sourceLineNo">2247</span>  @Override<a name="line.2247"></a>
+<span class="sourceLineNo">2248</span>  public RegionInfo getRegionInfo() {<a name="line.2248"></a>
+<span class="sourceLineNo">2249</span>    return this.fs.getRegionInfo();<a name="line.2249"></a>
+<span class="sourceLineNo">2250</span>  }<a name="line.2250"></a>
+<span class="sourceLineNo">2251</span><a name="line.2251"></a>
+<span class="sourceLineNo">2252</span>  @Override<a name="line.2252"></a>
+<span class="sourceLineNo">2253</span>  public boolean areWritesEnabled() {<a name="line.2253"></a>
+<span class="sourceLineNo">2254</span>    return this.region.areWritesEnabled();<a name="line.2254"></a>
+<span class="sourceLineNo">2255</span>  }<a name="line.2255"></a>
+<span class="sourceLineNo">2256</span><a name="line.2256"></a>
+<span class="sourceLineNo">2257</span>  @Override<a name="line.2257"></a>
+<span class="sourceLineNo">2258</span>  public long getSmallestReadPoint() {<a name="line.2258"></a>
+<span class="sourceLineNo">2259</span>    return this.region.getSmallestReadPoint();<a name="line.2259"></a>
+<span class="sourceLineNo">2260</span>  }<a name="line.2260"></a>
+<span class="sourceLineNo">2261</span><a name="line.2261"></a>
+<span class="sourceLineNo">2262</span>  /**<a name="line.2262"></a>
+<span class="sourceLineNo">2263</span>   * Adds or replaces the specified KeyValues.<a name="line.2263"></a>
+<span class="sourceLineNo">2264</span>   * &lt;p&gt;<a name="line.2264"></a>
+<span class="sourceLineNo">2265</span>   * For each KeyValue specified, if a cell with the same row, family, and qualifier exists in<a name="line.2265"></a>
+<span class="sourceLineNo">2266</span>   * MemStore, it will be replaced. Otherwise, it will just be inserted to MemStore.<a name="line.2266"></a>
+<span class="sourceLineNo">2267</span>   * &lt;p&gt;<a name="line.2267"></a>
+<span class="sourceLineNo">2268</span>   * This operation is atomic on each KeyValue (row/family/qualifier) but not necessarily atomic<a name="line.2268"></a>
+<span class="sourceLineNo">2269</span>   * across all of them.<a name="line.2269"></a>
+<span class="sourceLineNo">2270</span>   * @param readpoint readpoint below which we can safely remove duplicate KVs<a name="line.2270"></a>
+<span class="sourceLineNo">2271</span>   * @throws IOException<a name="line.2271"></a>
+<span class="sourceLineNo">2272</span>   */<a name="line.2272"></a>
+<span class="sourceLineNo">2273</span>  public void upsert(Iterable&lt;Cell&gt; cells, long readpoint, MemStoreSizing memstoreSizing)<a name="line.2273"></a>
+<span class="sourceLineNo">2274</span>      throws IOException {<a name="line.2274"></a>
+<span class="sourceLineNo">2275</span>    this.lock.readLock().lock();<a name="line.2275"></a>
+<span class="sourceLineNo">2276</span>    try {<a name="line.2276"></a>
+<span class="sourceLineNo">2277</span>      this.memstore.upsert(cells, readpoint, memstoreSizing);<a name="line.2277"></a>
+<span class="sourceLineNo">2278</span>    } finally {<a name="line.2278"></a>
+<span class="sourceLineNo">2279</span>      this.lock.readLock().unlock();<a name="line.2279"></a>
+<span class="sourceLineNo">2280</span>    }<a name="line.2280"></a>
+<span class="sourceLineNo">2281</span>  }<a name="line.2281"></a>
+<span class="sourceLineNo">2282</span><a name="line.2282"></a>
+<span class="sourceLineNo">2283</span>  public StoreFlushContext createFlushContext(long cacheFlushId, FlushLifeCycleTracker tracker) {<a name="line.2283"></a>
+<span class="sourceLineNo">2284</span>    return new StoreFlusherImpl(cacheFlushId, tracker);<a name="line.2284"></a>
+<span class="sourceLineNo">2285</span>  }<a name="line.2285"></a>
+<span class="sourceLineNo">2286</span><a name="line.2286"></a>
+<span class="sourceLineNo">2287</span>  private final class StoreFlusherImpl implements StoreFlushContext {<a name="line.2287"></a>
+<span class="sourceLineNo">2288</span><a name="line.2288"></a>
+<span class="sourceLineNo">2289</span>    private final FlushLifeCycleTracker tracker;<a name="line.2289"></a>
+<span class="sourceLineNo">2290</span>    private final long cacheFlushSeqNum;<a name="line.2290"></a>
+<span class="sourceLineNo">2291</span>    private MemStoreSnapshot snapshot;<a name="line.2291"></a>
+<span class="sourceLineNo">2292</span>    private List&lt;Path&gt; tempFiles;<a name="line.2292"></a>
+<span class="sourceLineNo">2293</span>    private List&lt;Path&gt; committedFiles;<a name="line.2293"></a>
+<span class="sourceLineNo">2294</span>    private long cacheFlushCount;<a name="line.2294"></a>
+<span class="sourceLineNo">2295</span>    private long cacheFlushSize;<a name="line.2295"></a>
+<span class="sourceLineNo">2296</span>    private long outputFileSize;<a name="line.2296"></a>
+<span class="sourceLineNo">2297</span><a name="line.2297"></a>
+<span class="sourceLineNo">2298</span>    private StoreFlusherImpl(long cacheFlushSeqNum, FlushLifeCycleTracker tracker) {<a name="line.2298"></a>
+<span class="sourceLineNo">2299</span>      this.cacheFlushSeqNum = cacheFlushSeqNum;<a name="line.2299"></a>
+<span class="sourceLineNo">2300</span>      this.tracker = tracker;<a name="line.2300"></a>
+<span class="sourceLineNo">2301</span>    }<a name="line.2301"></a>
+<span class="sourceLineNo">2302</span><a name="line.2302"></a>
+<span class="sourceLineNo">2303</span>    /**<a name="line.2303"></a>
+<span class="sourceLineNo">2304</span>     * This is not thread safe. The caller should have a lock on the region or the store.<a name="line.2304"></a>
+<span class="sourceLineNo">2305</span>     * If necessary, the lock can be added with the patch provided in HBASE-10087<a name="line.2305"></a>
+<span class="sourceLineNo">2306</span>     */<a name="line.2306"></a>
+<span class="sourceLineNo">2307</span>    @Override<a name="line.2307"></a>
+<span class="sourceLineNo">2308</span>    public MemStoreSize prepare() {<a name="line.2308"></a>
+<span class="sourceLineNo">2309</span>      // passing the current sequence number of the wal - to allow bookkeeping in the memstore<a name="line.2309"></a>
+<span class="sourceLineNo">2310</span>      this.snapshot = memstore.snapshot();<a name="line.2310"></a>
+<span class="sourceLineNo">2311</span>      this.cacheFlushCount = snapshot.getCellsCount();<a name="line.2311"></a>
+<span class="sourceLineNo">2312</span>      this.cacheFlushSize = snapshot.getDataSize();<a name="line.2312"></a>
+<span class="sourceLineNo">2313</span>      committedFiles = new ArrayList&lt;&gt;(1);<a name="line.2313"></a>
+<span class="sourceLineNo">2314</span>      return snapshot.getMemStoreSize();<a name="line.2314"></a>
+<span class="sourceLineNo">2315</span>    }<a name="line.2315"></a>
+<span class="sourceLineNo">2316</span><a name="line.2316"></a>
+<span class="sourceLineNo">2317</span>    @Override<a name="line.2317"></a>
+<span class="sourceLineNo">2318</span>    public void flushCache(MonitoredTask status) throws IOException {<a name="line.2318"></a>
+<span class="sourceLineNo">2319</span>      RegionServerServices rsService = region.getRegionServerServices();<a name="line.2319"></a>
+<span class="sourceLineNo">2320</span>      ThroughputController throughputController =<a name="line.2320"></a>
+<span class="sourceLineNo">2321</span>          rsService == null ? null : rsService.getFlushThroughputController();<a name="line.2321"></a>
+<span class="sourceLineNo">2322</span>      tempFiles =<a name="line.2322"></a>
+<span class="sourceLineNo">2323</span>          HStore.this.flushCache(cacheFlushSeqNum, snapshot, status, throughputController, tracker);<a name="line.2323"></a>
+<span class="sourceLineNo">2324</span>    }<a name="line.2324"></a>
+<span class="sourceLineNo">2325</span><a name="line.2325"></a>
+<span class="sourceLineNo">2326</span>    @Override<a name="line.2326"></a>
+<span class="sourceLineNo">2327</span>    public boolean commit(MonitoredTask status) throws IOException {<a name="line.2327"></a>
+<span class="sourceLineNo">2328</span>      if (CollectionUtils.isEmpty(this.tempFiles)) {<a name="line.2328"></a>
+<span class="sourceLineNo">2329</span>        return false;<a name="line.2329"></a>
+<span class="sourceLineNo">2330</span>      }<a name="line.2330"></a>
+<span class="sourceLineNo">2331</span>      List&lt;HStoreFile&gt; storeFiles = new ArrayList&lt;&gt;(this.tempFiles.size());<a name="line.2331"></a>
+<span class="sourceLineNo">2332</span>      for (Path storeFilePath : tempFiles) {<a name="line.2332"></a>
+<span class="sourceLineNo">2333</span>        try {<a name="line.2333"></a>
+<span class="sourceLineNo">2334</span>          HStoreFile sf = HStore.this.commitFile(storeFilePath, cacheFlushSeqNum, status);<a name="line.2334"></a>
+<span class="sourceLineNo">2335</span>          outputFileSize += sf.getReader().length();<a name="line.2335"></a>
+<span class="sourceLineNo">2336</span>          storeFiles.add(sf);<a name="line.2336"></a>
+<span class="sourceLineNo">2337</span>        } catch (IOException ex) {<a name="line.2337"></a>
+<span class="sourceLineNo">2338</span>          LOG.error("Failed to commit store file {}", storeFilePath, ex);<a name="line.2338"></a>
+<span class="sourceLineNo">2339</span>          // Try to delete the files we have committed before.<a name="line.2339"></a>
+<span class="sourceLineNo">2340</span>          for (HStoreFile sf : storeFiles) {<a name="line.2340"></a>
+<span class="sourceLineNo">2341</span>            Path pathToDelete = sf.getPath();<a name="line.2341"></a>
+<span class="sourceLineNo">2342</span>            try {<a name="line.2342"></a>
+<span class="sourceLineNo">2343</span>              sf.deleteStoreFile();<a name="line.2343"></a>
+<span class="sourceLineNo">2344</span>            } catch (IOException deleteEx) {<a name="line.2344"></a>
+<span class="sourceLineNo">2345</span>              LOG.error(HBaseMarkers.FATAL, "Failed to delete store file we committed, "<a name="line.2345"></a>
+<span class="sourceLineNo">2346</span>                  + "halting {}", pathToDelete, ex);<a name="line.2346"></a>
+<span class="sourceLineNo">2347</span>              Runtime.getRuntime().halt(1);<a name="line.2347"></a>
+<span class="sourceLineNo">2348</span>            }<a name="line.2348"></a>
+<span class="sourceLineNo">2349</span>          }<a name="line.2349"></a>
+<span class="sourceLineNo">2350</span>          throw new IOException("Failed to commit the flush", ex);<a name="line.2350"></a>
+<span class="sourceLineNo">2351</span>        }<a name="line.2351"></a>
+<span class="sourceLineNo">2352</span>      }<a name="line.2352"></a>
+<span class="sourceLineNo">2353</span><a name="line.2353"></a>
+<span class="sourceLineNo">2354</span>      for (HStoreFile sf : storeFiles) {<a name="line.2354"></a>
+<span class="sourceLineNo">2355</span>        if (HStore.this.getCoprocessorHost() != null) {<a name="line.2355"></a>
+<span class="sourceLineNo">2356</span>          HStore.this.getCoprocessorHost().postFlush(HStore.this, sf, tracker);<a name="line.2356"></a>
+<span class="sourceLineNo">2357</span>        }<a name="line.2357"></a>
+<span class="sourceLineNo">2358</span>        committedFiles.add(sf.getPath());<a name="line.2358"></a>
 <span class="sourceLineNo">2359</span>      }<a name="line.2359"></a>
 <span class="sourceLineNo">2360</span><a name="line.2360"></a>
-<span class="sourceLineNo">2361</span>      for (HStoreFile sf : storeFiles) {<a name="line.2361"></a>
-<span class="sourceLineNo">2362</span>        if (HStore.this.getCoprocessorHost() != null) {<a name="line.2362"></a>
-<span class="sourceLineNo">2363</span>          HStore.this.getCoprocessorHost().postFlush(HStore.this, sf, tracker);<a name="line.2363"></a>
-<span class="sourceLineNo">2364</span>        }<a name="line.2364"></a>
-<span class="sourceLineNo">2365</span>        committedFiles.add(sf.getPath());<a name="line.2365"></a>
-<span class="sourceLineNo">2366</span>      }<a name="line.2366"></a>
-<span class="sourceLineNo">2367</span><a name="line.2367"></a>
-<span class="sourceLineNo">2368</span>      HStore.this.flushedCellsCount.addAndGet(cacheFlushCount);<a name="line.2368"></a>
-<span class="sourceLineNo">2369</span>      HStore.this.flushedCellsSize.addAndGet(cacheFlushSize);<a name="line.2369"></a>
-<span class="sourceLineNo">2370</span>      HStore.this.flushedOutputFileSize.addAndGet(outputFileSize);<a name="line.2370"></a>
-<span class="sourceLineNo">2371</span><a name="line.2371"></a>
-<span class="sourceLineNo">2372</span>      // Add new file to store files.  Clear snapshot too while we have the Store write lock.<a name="line.2372"></a>
-<span class="sourceLineNo">2373</span>      return HStore.this.updateStorefiles(storeFiles, snapshot.getId());<a name="line.2373"></a>
-<span class="sourceLineNo">2374</span>    }<a name="line.2374"></a>
-<span class="sourceLineNo">2375</span><a name="line.2375"></a>
-<span class="sourceLineNo">2376</span>    @Override<a name="line.2376"></a>
-<span class="sourceLineNo">2377</span>    public long getOutputFileSize() {<a name="line.2377"></a>
-<span class="sourceLineNo">2378</span>      return outputFileSize;<a name="line.2378"></a>
-<span class="sourceLineNo">2379</span>    }<a name="line.2379"></a>
-<span class="sourceLineNo">2380</span><a name="line.2380"></a>
-<span class="sourceLineNo">2381</span>    @Override<a name="line.2381"></a>
-<span class="sourceLineNo">2382</span>    public List&lt;Path&gt; getCommittedFiles() {<a name="line.2382"></a>
-<span class="sourceLineNo">2383</span>      return committedFiles;<a name="line.2383"></a>
-<span class="sourceLineNo">2384</span>    }<a name="line.2384"></a>
-<span class="sourceLineNo">2385</span><a name="line.2385"></a>
-<span class="sourceLineNo">2386</span>    /**<a name="line.2386"></a>
-<span class="sourceLineNo">2387</span>     * Similar to commit, but called in secondary region replicas for replaying the<a name="line.2387"></a>
-<span class="sourceLineNo">2388</span>     * flush cache from primary region. Adds the new files to the store, and drops the<a name="line.2388"></a>
-<span class="sourceLineNo">2389</span>     * snapshot depending on dropMemstoreSnapshot argument.<a name="line.2389"></a>
-<span class="sourceLineNo">2390</span>     * @param fileNames names of the flushed files<a name="line.2390"></a>
-<span class="sourceLineNo">2391</span>     * @param dropMemstoreSnapshot whether to drop the prepared memstore snapshot<a name="line.2391"></a>
-<span class="sourceLineNo">2392</span>     * @throws IOException<a name="line.2392"></a>
-<span class="sourceLineNo">2393</span>     */<a name="line.2393"></a>
-<span class="sourceLineNo">2394</span>    @Override<a name="line.2394"></a>
-<span class="sourceLineNo">2395</span>    public void replayFlush(List&lt;String&gt; fileNames, boolean dropMemstoreSnapshot)<a name="line.2395"></a>
-<span class="sourceLineNo">2396</span>        throws IOException {<a name="line.2396"></a>
-<span class="sourceLineNo">2397</span>      List&lt;HStoreFile&gt; storeFiles = new ArrayList&lt;&gt;(fileNames.size());<a name="line.2397"></a>
-<span class="sourceLineNo">2398</span>      for (String file : fileNames) {<a name="line.2398"></a>
-<span class="sourceLineNo">2399</span>        // open the file as a store file (hfile link, etc)<a name="line.2399"></a>
-<span class="sourceLineNo">2400</span>        StoreFileInfo storeFileInfo = fs.getStoreFileInfo(getColumnFamilyName(), file);<a name="line.2400"></a>
-<span class="sourceLineNo">2401</span>        HStoreFile storeFile = createStoreFileAndReader(storeFileInfo);<a name="line.2401"></a>
-<span class="sourceLineNo">2402</span>        storeFiles.add(storeFile);<a name="line.2402"></a>
-<span class="sourceLineNo">2403</span>        HStore.this.storeSize.addAndGet(storeFile.getReader().length());<a name="line.2403"></a>
-<span class="sourceLineNo">2404</span>        HStore.this.totalUncompressedBytes<a name="line.2404"></a>
-<span class="sourceLineNo">2405</span>            .addAndGet(storeFile.getReader().getTotalUncompressedBytes());<a name="line.2405"></a>
-<span class="sourceLineNo">2406</span>        if (LOG.isInfoEnabled()) {<a name="line.2406"></a>
-<span class="sourceLineNo">2407</span>          LOG.info("Region: " + HStore.this.getRegionInfo().getEncodedName() +<a name="line.2407"></a>
-<span class="sourceLineNo">2408</span>            " added " + storeFile + ", entries=" + storeFile.getReader().getEntries() +<a name="line.2408"></a>
-<span class="sourceLineNo">2409</span>              ", sequenceid=" + storeFile.getReader().getSequenceID() + ", filesize="<a name="line.2409"></a>
-<span class="sourceLineNo">2410</span>              + TraditionalBinaryPrefix.long2String(storeFile.getReader().length(), "", 1));<a name="line.2410"></a>
-<span class="sourceLineNo">2411</span>        }<a name="line.2411"></a>
-<span class="sourceLineNo">2412</span>      }<a name="line.2412"></a>
-<span class="sourceLineNo">2413</span><a name="line.2413"></a>
-<span class="sourceLineNo">2414</span>      long snapshotId = -1; // -1 means do not drop<a name="line.2414"></a>
-<span class="sourceLineNo">2415</span>      if (dropMemstoreSnapshot &amp;&amp; snapshot != null) {<a name="line.2415"></a>
-<span class="sourceLineNo">2416</span>        snapshotId = snapshot.getId();<a name="line.2416"></a>
-<span class="sourceLineNo">2417</span>        snapshot.close();<a name="line.2417"></a>
-<span class="sourceLineNo">2418</span>      }<a name="line.2418"></a>
-<span class="sourceLineNo">2419</span>      HStore.this.updateStorefiles(storeFiles, snapshotId);<a name="line.2419"></a>
-<span class="sourceLineNo">2420</span>    }<a name="line.2420"></a>
-<span class="sourceLineNo">2421</span><a name="line.2421"></a>
-<span class="sourceLineNo">2422</span>    /**<a name="line.2422"></a>
-<span class="sourceLineNo">2423</span>     * Abort the snapshot preparation. Drops the snapshot if any.<a name="line.2423"></a>
-<span class="sourceLineNo">2424</span>     * @throws IOException<a name="line.2424"></a>
-<span class="sourceLineNo">2425</span>     */<a name="line.2425"></a>
-<span class="sourceLineNo">2426</span>    @Override<a name="line.2426"></a>
-<span class="sourceLineNo">2427</span>    public void abort() throws IOException {<a name="line.2427"></a>
-<span class="sourceLineNo">2428</span>      if (snapshot != null) {<a name="line.2428"></a>
-<span class="sourceLineNo">2429</span>        //We need to close the snapshot when aborting, otherwise, the segment scanner<a name="line.2429"></a>
-<span class="sourceLineNo">2430</span>        //won't be closed. If we are using MSLAB, the chunk referenced by those scanners<a name="line.2430"></a>
-<span class="sourceLineNo">2431</span>        //can't be released, thus memory leak<a name="line.2431"></a>
-<span class="sourceLineNo">2432</span>        snapshot.close();<a name="line.2432"></a>
-<span class="sourceLineNo">2433</span>        HStore.this.updateStorefiles(Collections.emptyList(), snapshot.getId());<a name="line.2433"></a>
-<span class="sourceLineNo">2434</span>      }<a name="line.2434"></a>
-<span class="sourceLineNo">2435</span>    }<a name="line.2435"></a>
-<span class="sourceLineNo">2436</span>  }<a name="line.2436"></a>
-<span class="sourceLineNo">2437</span><a name="line.2437"></a>
-<span class="sourceLineNo">2438</span>  @Override<a name="line.2438"></a>
-<span class="sourceLineNo">2439</span>  public boolean needsCompaction() {<a name="line.2439"></a>
-<span class="sourceLineNo">2440</span>    List&lt;HStoreFile&gt; filesCompactingClone = null;<a name="line.2440"></a>
-<span class="sourceLineNo">2441</span>    synchronized (filesCompacting) {<a name="line.2441"></a>
-<span class="sourceLineNo">2442</span>      filesCompactingClone = Lists.newArrayList(filesCompacting);<a name="line.2442"></a>
-<span class="sourceLineNo">2443</span>    }<a name="line.2443"></a>
-<span class="sourceLineNo">2444</span>    return this.storeEngine.needsCompaction(filesCompactingClone);<a name="line.2444"></a>
-<span class="sourceLineNo">2445</span>  }<a name="line.2445"></a>
-<span class="sourceLineNo">2446</span><a name="line.2446"></a>
-<span class="sourceLineNo">2447</span>  /**<a name="line.2447"></a>
-<span class="sourceLineNo">2448</span>   * Used for tests.<a name="line.2448"></a>
-<span class="sourceLineNo">2449</span>   * @return cache configuration for this Store.<a name="line.2449"></a>
-<span class="sourceLineNo">2450</span>   */<a name="line.2450"></a>
-<span class="sourceLineNo">2451</span>  @VisibleForTesting<a name="line.2451"></a>
-<span class="sourceLineNo">2452</span>  public CacheConfig getCacheConfig() {<a name="line.2452"></a>
-<span class="sourceLineNo">2453</span>    return this.cacheConf;<a name="line.2453"></a>
-<span class="sourceLineNo">2454</span>  }<a name="line.2454"></a>
-<span class="sourceLineNo">2455</span><a name="line.2455"></a>
-<span class="sourceLineNo">2456</span>  public static final long FIXED_OVERHEAD =<a name="line.2456"></a>
-<span class="sourceLineNo">2457</span>      ClassSize.align(ClassSize.OBJECT + (27 * ClassSize.REFERENCE) + (2 * Bytes.SIZEOF_LONG)<a name="line.2457"></a>
-<span class="sourceLineNo">2458</span>              + (6 * Bytes.SIZEOF_INT) + (2 * Bytes.SIZEOF_BOOLEAN));<a name="line.2458"></a>
-<span class="sourceLineNo">2459</span><a name="line.2459"></a>
-<span class="sourceLineNo">2460</span>  public static final long DEEP_OVERHEAD = ClassSize.align(FIXED_OVERHEAD<a name="line.2460"></a>
-<span class="sourceLineNo">2461</span>      + ClassSize.OBJECT + ClassSize.REENTRANT_LOCK<a name="line.2461"></a>
-<span class="sourceLineNo">2462</span>      + ClassSize.CONCURRENT_SKIPLISTMAP<a name="line.2462"></a>
-<span class="sourceLineNo">2463</span>      + ClassSize.CONCURRENT_SKIPLISTMAP_ENTRY + ClassSize.OBJECT<a name="line.2463"></a>
-<span class="sourceLineNo">2464</span>      + ScanInfo.FIXED_OVERHEAD);<a name="line.2464"></a>
-<span class="sourceLineNo">2465</span><a name="line.2465"></a>
-<span class="sourceLineNo">2466</span>  @Override<a name="line.2466"></a>
-<span class="sourceLineNo">2467</span>  public long heapSize() {<a name="line.2467"></a>
-<span class="sourceLineNo">2468</span>    MemStoreSize memstoreSize = this.memstore.size();<a name="line.2468"></a>
-<span class="sourceLineNo">2469</span>    return DEEP_OVERHEAD + memstoreSize.getHeapSize();<a name="line.2469"></a>
-<span class="sourceLineNo">2470</span>  }<a name="line.2470"></a>
-<span class="sourceLineNo">2471</span><a name="line.2471"></a>
-<span class="sourceLineNo">2472</span>  @Override<a name="line.2472"></a>
-<span class="sourceLineNo">2473</span>  public CellComparator getComparator() {<a name="line.2473"></a>
-<span class="sourceLineNo">2474</span>    return comparator;<a name="line.2474"></a>
-<span class="sourceLineNo">2475</span>  }<a name="line.2475"></a>
-<span class="sourceLineNo">2476</span><a name="line.2476"></a>
-<span class="sourceLineNo">2477</span>  public ScanInfo getScanInfo() {<a name="line.2477"></a>
-<span class="sourceLineNo">2478</span>    return scanInfo;<a name="line.2478"></a>
-<span class="sourceLineNo">2479</span>  }<a name="line.2479"></a>
-<span class="sourceLineNo">2480</span><a name="line.2480"></a>
-<span class="sourceLineNo">2481</span>  /**<a name="line.2481"></a>
-<span class="sourceLineNo">2482</span>   * Set scan info, used by test<a name="line.2482"></a>
-<span class="sourceLineNo">2483</span>   * @param scanInfo new scan info to use for test<a name="line.2483"></a>
-<span class="sourceLineNo">2484</span>   */<a name="line.2484"></a>
-<span class="sourceLineNo">2485</span>  void setScanInfo(ScanInfo scanInfo) {<a name="line.2485"></a>
-<span class="sourceLineNo">2486</span>    this.scanInfo = scanInfo;<a name="line.2486"></a>
-<span class="sourceLineNo">2487</span>  }<a name="line.2487"></a>
-<span class="sourceLineNo">2488</span><a name="line.2488"></a>
-<span class="sourceLineNo">2489</span>  @Override<a name="line.2489"></a>
-<span class="sourceLineNo">2490</span>  public boolean hasTooManyStoreFiles() {<a name="line.2490"></a>
-<span class="sourceLineNo">2491</span>    return getStorefilesCount() &gt; this.blockingFileCount;<a name="line.2491"></a>
-<span class="sourceLineNo">2492</span>  }<a name="line.2492"></a>
-<span class="sourceLineNo">2493</span><a name="line.2493"></a>
-<span class="sourceLineNo">2494</span>  @Override<a name="line.2494"></a>
-<span class="sourceLineNo">2495</span>  public long getFlushedCellsCount() {<a name="line.2495"></a>
-<span class="sourceLineNo">2496</span>    return flushedCellsCount.get();<a name="line.2496"></a>
-<span class="sourceLineNo">2497</span>  }<a name="line.2497"></a>
-<span class="sourceLineNo">2498</span><a name="line.2498"></a>
-<span class="sourceLineNo">2499</span>  @Override<a name="line.2499"></a>
-<span class="sourceLineNo">2500</span>  public long getFlushedCellsSize() {<a name="line.2500"></a>
-<span class="sourceLineNo">2501</span>    return flushedCellsSize.get();<a name="line.2501"></a>
-<span class="sourceLineNo">2502</span>  }<a name="line.2502"></a>
-<span class="sourceLineNo">2503</span><a name="line.2503"></a>
-<span class="sourceLineNo">2504</span>  @Override<a name="line.2504"></a>
-<span class="sourceLineNo">2505</span>  public long getFlushedOutputFileSize() {<a name="line.2505"></a>
-<span class="sourceLineNo">2506</span>    return flushedOutputFileSize.get();<a name="line.2506"></a>
-<span class="sourceLineNo">2507</span>  }<a name="line.2507"></a>
-<span class="sourceLineNo">2508</span><a name="line.2508"></a>
-<span class="sourceLineNo">2509</span>  @Override<a name="line.2509"></a>
-<span class="sourceLineNo">2510</span>  public long getCompactedCellsCount() {<a name="line.2510"></a>
-<span class="sourceLineNo">2511</span>    return compactedCellsCount.get();<a name="line.2511"></a>
-<span class="sourceLineNo">2512</span>  }<a name="line.2512"></a>
-<span class="sourceLineNo">2513</span><a name="line.2513"></a>
-<span class="sourceLineNo">2514</span>  @Override<a name="line.2514"></a>
-<span class="sourceLineNo">2515</span>  public long getCompactedCellsSize() {<a name="line.2515"></a>
-<span class="sourceLineNo">2516</span>    return compactedCellsSize.get();<a name="line.2516"></a>
-<span class="sourceLineNo">2517</span>  }<a name="line.2517"></a>
-<span class="sourceLineNo">2518</span><a name="line.2518"></a>
-<span class="sourceLineNo">2519</span>  @Override<a name="line.2519"></a>
-<span class="sourceLineNo">2520</span>  public long getMajorCompactedCellsCount() {<a name="line.2520"></a>
-<span class="sourceLineNo">2521</span>    return majorCompactedCellsCount.get();<a name="line.2521"></a>
-<span class="sourceLineNo">2522</span>  }<a name="line.2522"></a>
-<span class="sourceLineNo">2523</span><a name="line.2523"></a>
-<span class="sourceLineNo">2524</span>  @Override<a name="line.2524"></a>
-<span class="sourceLineNo">2525</span>  public long getMajorCompactedCellsSize() {<a name="line.2525"></a>
-<span class="sourceLineNo">2526</span>    return majorCompactedCellsSize.get();<a name="line.2526"></a>
-<span class="sourceLineNo">2527</span>  }<a name="line.2527"></a>
-<span class="sourceLineNo">2528</span><a name="line.2528"></a>
-<span class="sourceLineNo">2529</span>  /**<a name="line.2529"></a>
-<span class="sourceLineNo">2530</span>   * Returns the StoreEngine that is backing this concrete implementation of Store.<a name="line.2530"></a>
-<span class="sourceLineNo">2531</span>   * @return Returns the {@link StoreEngine} object used internally inside this HStore object.<a name="line.2531"></a>
-<span class="sourceLineNo">2532</span>   */<a name="line.2532"></a>
-<span class="sourceLineNo">2533</span>  @VisibleForTesting<a name="line.2533"></a>
-<span class="sourceLineNo">2534</span>  public StoreEngine&lt;?, ?, ?, ?&gt; getStoreEngine() {<a name="line.2534"></a>
-<span class="sourceLineNo">2535</span>    return this.storeEngine;<a name="line.2535"></a>
-<span class="sourceLineNo">2536</span>  }<a name="line.2536"></a>
-<span class="sourceLineNo">2537</span><a name="line.2537"></a>
-<span class="sourceLineNo">2538</span>  protected OffPeakHours getOffPeakHours() {<a name="line.2538"></a>
-<span class="sourceLineNo">2539</span>    return this.offPeakHours;<a name="line.2539"></a>
-<span class="sourceLineNo">2540</span>  }<a name="line.2540"></a>
-<span class="sourceLineNo">2541</span><a name="line.2541"></a>
-<span class="sourceLineNo">2542</span>  /**<a name="line.2542"></a>
-<span class="sourceLineNo">2543</span>   * {@inheritDoc}<a name="line.2543"></a>
-<span class="sourceLineNo">2544</span>   */<a name="line.2544"></a>
-<span class="sourceLineNo">2545</span>  @Override<a name="line.2545"></a>
-<span class="sourceLineNo">2546</span>  public void onConfigurationChange(Configuration conf) {<a name="line.2546"></a>
-<span class="sourceLineNo">2547</span>    this.conf = new CompoundConfiguration()<a name="line.2547"></a>
-<span class="sourceLineNo">2548</span>            .add(conf)<a name="line.2548"></a>
-<span class="sourceLineNo">2549</span>            .addBytesMap(family.getValues());<a name="line.2549"></a>
-<span class="sourceLineNo">2550</span>    this.storeEngine.compactionPolicy.setConf(conf);<a name="line.2550"></a>
-<span class="sourceLineNo">2551</span>    this.offPeakHours = OffPeakHours.getInstance(conf);<a name="line.2551"></a>
-<span class="sourceLineNo">2552</span>  }<a name="line.2552"></a>
-<span class="sourceLineNo">2553</span><a name="line.2553"></a>
-<span class="sourceLineNo">2554</span>  /**<a name="line.2554"></a>
-<span class="sourceLineNo">2555</span>   * {@inheritDoc}<a name="line.2555"></a>
-<span class="sourceLineNo">2556</span>   */<a name="line.2556"></a>
-<span class="sourceLineNo">2557</span>  @Override<a name="line.2557"></a>
-<span class="sourceLineNo">2558</span>  public void registerChildren(ConfigurationManager manager) {<a name="line.2558"></a>
-<span class="sourceLineNo">2559</span>    // No children to register<a name="line.2559"></a>
-<span class="sourceLineNo">2560</span>  }<a name="line.2560"></a>
-<span class="sourceLineNo">2561</span><a name="line.2561"></a>
-<span class="sourceLineNo">2562</span>  /**<a name="line.2562"></a>
-<span class="sourceLineNo">2563</span>   * {@inheritDoc}<a name="line.2563"></a>
-<span class="sourceLineNo">2564</span>   */<a name="line.2564"></a>
-<span class="sourceLineNo">2565</span>  @Override<a name="line.2565"></a>
-<span class="sourceLineNo">2566</span>  public void deregisterChildren(ConfigurationManager manager) {<a name="line.2566"></a>
-<span class="sourceLineNo">2567</span>    // No children to deregister<a name="line.2567"></a>
-<span class="sourceLineNo">2568</span>  }<a name="line.2568"></a>
-<span class="sourceLineNo">2569</span><a name="line.2569"></a>
-<span class="sourceLineNo">2570</span>  @Override<a name="line.2570"></a>
-<span class="sourceLineNo">2571</span>  public double getCompactionPressure() {<a name="line.2571"></a>
-<span class="sourceLineNo">2572</span>    return storeEngine.getStoreFileManager().getCompactionPressure();<a name="line.2572"></a>
-<span class="sourceLineNo">2573</span>  }<a name="line.2573"></a>
-<span class="sourceLineNo">2574</span><a name="line.2574"></a>
-<span class="sourceLineNo">2575</span>  @Override<a name="line.2575"></a>
-<span class="sourceLineNo">2576</span>  public boolean isPrimaryReplicaStore() {<a name="line.2576"></a>
-<span class="sourceLineNo">2577</span>    return getRegionInfo().getReplicaId() == RegionInfo.DEFAULT_REPLICA_ID;<a name="line.2577"></a>
-<span class="sourceLineNo">2578</span>  }<a name="line.2578"></a>
-<span class="sourceLineNo">2579</span><a name="line.2579"></a>
-<span class="sourceLineNo">2580</span>  /**<a name="line.2580"></a>
-<span class="sourceLineNo">2581</span>   * Sets the store up for a region level snapshot operation.<a name="line.2581"></a>
-<span class="sourceLineNo">2582</span>   * @see #postSnapshotOperation()<a name="line.2582"></a>
-<span class="sourceLineNo">2583</span>   */<a name="line.2583"></a>
-<span class="sourceLineNo">2584</span>  public void preSnapshotOperation() {<a name="line.2584"></a>
-<span class="sourceLineNo">2585</span>    archiveLock.lock();<a name="line.2585"></a>
-<span class="sourceLineNo">2586</span>  }<a name="line.2586"></a>
-<span class="sourceLineNo">2587</span><a name="line.2587"></a>
-<span class="sourceLineNo">2588</span>  /**<a name="line.2588"></a>
-<span class="sourceLineNo">2589</span>   * Perform tasks needed after the completion of snapshot operation.<a name="line.2589"></a>
-<span class="sourceLineNo">2590</span>   * @see #preSnapshotOperation()<a name="line.2590"></a>
+<span class="sourceLineNo">2361</span>      HStore.this.flushedCellsCount.addAndGet(cacheFlushCount);<a name="line.2361"></a>
+<span class="sourceLineNo">2362</span>      HStore.this.flushedCellsSize.addAndGet(cacheFlushSize);<a name="line.2362"></a>
+<span class="sourceLineNo">2363</span>      HStore.this.flushedOutputFileSize.addAndGet(outputFileSize);<a name="line.2363"></a>
+<span class="sourceLineNo">2364</span><a name="line.2364"></a>
+<span class="sourceLineNo">2365</span>      // Add new file to store files.  Clear snapshot too while we have the Store write lock.<a name="line.2365"></a>
+<span class="sourceLineNo">2366</span>      return HStore.this.updateStorefiles(storeFiles, snapshot.getId());<a name="line.2366"></a>
+<span class="sourceLineNo">2367</span>    }<a name="line.2367"></a>
+<span class="sourceLineNo">2368</span><a name="line.2368"></a>
+<span class="sourceLineNo">2369</span>    @Override<a name="line.2369"></a>
+<span class="sourceLineNo">2370</span>    public long getOutputFileSize() {<a name="line.2370"></a>
+<span class="sourceLineNo">2371</span>      return outputFileSize;<a name="line.2371"></a>
+<span class="sourceLineNo">2372</span>    }<a name="line.2372"></a>
+<span class="sourceLineNo">2373</span><a name="line.2373"></a>
+<span class="sourceLineNo">2374</span>    @Override<a name="line.2374"></a>
+<span class="sourceLineNo">2375</span>    public List&lt;Path&gt; getCommittedFiles() {<a name="line.2375"></a>
+<span class="sourceLineNo">2376</span>      return committedFiles;<a name="line.2376"></a>
+<span class="sourceLineNo">2377</span>    }<a name="line.2377"></a>
+<span class="sourceLineNo">2378</span><a name="line.2378"></a>
+<span class="sourceLineNo">2379</span>    /**<a name="line.2379"></a>
+<span class="sourceLineNo">2380</span>     * Similar to commit, but called in secondary region replicas for replaying the<a name="line.2380"></a>
+<span class="sourceLineNo">2381</span>     * flush cache from primary region. Adds the new files to the store, and drops the<a name="line.2381"></a>
+<span class="sourceLineNo">2382</span>     * snapshot depending on dropMemstoreSnapshot argument.<a name="line.2382"></a>
+<span class="sourceLineNo">2383</span>     * @param fileNames names of the flushed files<a name="line.2383"></a>
+<span class="sourceLineNo">2384</span>     * @param dropMemstoreSnapshot whether to drop the prepared memstore snapshot<a name="line.2384"></a>
+<span class="sourceLineNo">2385</span>     * @throws IOException<a name="line.2385"></a>
+<span class="sourceLineNo">2386</span>     */<a name="line.2386"></a>
+<span class="sourceLineNo">2387</span>    @Override<a name="line.2387"></a>
+<span class="sourceLineNo">2388</span>    public void replayFlush(List&lt;String&gt; fileNames, boolean dropMemstoreSnapshot)<a name="line.2388"></a>
+<span class="sourceLineNo">2389</span>        throws IOException {<a name="line.2389"></a>
+<span class="sourceLineNo">2390</span>      List&lt;HStoreFile&gt; storeFiles = new ArrayList&lt;&gt;(fileNames.size());<a name="line.2390"></a>
+<span class="sourceLineNo">2391</span>      for (String file : fileNames) {<a name="line.2391"></a>
+<span class="sourceLineNo">2392</span>        // open the file as a store file (hfile link, etc)<a name="line.2392"></a>
+<span class="sourceLineNo">2393</span>        StoreFileInfo storeFileInfo = fs.getStoreFileInfo(getColumnFamilyName(), file);<a name="line.2393"></a>
+<span class="sourceLineNo">2394</span>        HStoreFile storeFile = createStoreFileAndReader(storeFileInfo);<a name="line.2394"></a>
+<span class="sourceLineNo">2395</span>        storeFiles.add(storeFile);<a name="line.2395"></a>
+<span class="sourceLineNo">2396</span>        HStore.this.storeSize.addAndGet(storeFile.getReader().length());<a name="line.2396"></a>
+<span class="sourceLineNo">2397</span>        HStore.this.totalUncompressedBytes<a name="line.2397"></a>
+<span class="sourceLineNo">2398</span>            .addAndGet(storeFile.getReader().getTotalUncompressedBytes());<a name="line.2398"></a>
+<span class="sourceLineNo">2399</span>        if (LOG.isInfoEnabled()) {<a name="line.2399"></a>
+<span class="sourceLineNo">2400</span>          LOG.info("Region: " + HStore.this.getRegionInfo().getEncodedName() +<a name="line.2400"></a>
+<span class="sourceLineNo">2401</span>            " added " + storeFile + ", entries=" + storeFile.getReader().getEntries() +<a name="line.2401"></a>
+<span class="sourceLineNo">2402</span>              ", sequenceid=" + storeFile.getReader().getSequenceID() + ", filesize="<a name="line.2402"></a>
+<span class="sourceLineNo">2403</span>              + TraditionalBinaryPrefix.long2String(storeFile.getReader().length(), "", 1));<a name="line.2403"></a>
+<span class="sourceLineNo">2404</span>        }<a name="line.2404"></a>
+<span class="sourceLineNo">2405</span>      }<a name="line.2405"></a>
+<span class="sourceLineNo">2406</span><a name="line.2406"></a>
+<span class="sourceLineNo">2407</span>      long snapshotId = -1; // -1 means do not drop<a name="line.2407"></a>
+<span class="sourceLineNo">2408</span>      if (dropMemstoreSnapshot &amp;&amp; snapshot != null) {<a name="line.2408"></a>
+<span class="sourceLineNo">2409</span>        snapshotId = snapshot.getId();<a name="line.2409"></a>
+<span class="sourceLineNo">2410</span>        snapshot.close();<a name="line.2410"></a>
+<span class="sourceLineNo">2411</span>      }<a name="line.2411"></a>
+<span class="sourceLineNo">2412</span>      HStore.this.updateStorefiles(storeFiles, snapshotId);<a name="line.2412"></a>
+<span class="sourceLineNo">2413</span>    }<a name="line.2413"></a>
+<span class="sourceLineNo">2414</span><a name="line.2414"></a>
+<span class="sourceLineNo">2415</span>    /**<a name="line.2415"></a>
+<span class="sourceLineNo">2416</span>     * Abort the snapshot preparation. Drops the snapshot if any.<a name="line.2416"></a>
+<span class="sourceLineNo">2417</span>     * @throws IOException<a name="line.2417"></a>
+<span class="sourceLineNo">2418</span>     */<a name="line.2418"></a>
+<span class="sourceLineNo">2419</span>    @Override<a name="line.2419"></a>
+<span class="sourceLineNo">2420</span>    public void abort() throws IOException {<a name="line.2420"></a>
+<span class="sourceLineNo">2421</span>      if (snapshot != null) {<a name="line.2421"></a>
+<span class="sourceLineNo">2422</span>        //We need to close the snapshot when aborting, otherwise, the segment scanner<a name="line.2422"></a>
+<span class="sourceLineNo">2423</span>        //won't be closed. If we are using MSLAB, the chunk referenced by those scanners<a name="line.2423"></a>
+<span class="sourceLineNo">2424</span>        //can't be released, thus memory leak<a name="line.2424"></a>
+<span class="sourceLineNo">2425</span>        snapshot.close();<a name="line.2425"></a>
+<span class="sourceLineNo">2426</span>        HStore.this.updateStorefiles(Collections.emptyList(), snapshot.getId());<a name="line.2426"></a>
+<span class="sourceLineNo">2427</span>      }<a name="line.2427"></a>
+<span class="sourceLineNo">2428</span>    }<a name="line.2428"></a>
+<span class="sourceLineNo">2429</span>  }<a name="line.2429"></a>
+<span class="sourceLineNo">2430</span><a name="line.2430"></a>
+<span class="sourceLineNo">2431</span>  @Override<a name="line.2431"></a>
+<span class="sourceLineNo">2432</span>  public boolean needsCompaction() {<a name="line.2432"></a>
+<span class="sourceLineNo">2433</span>    List&lt;HStoreFile&gt; filesCompactingClone = null;<a name="line.2433"></a>
+<span class="sourceLineNo">2434</span>    synchronized (filesCompacting) {<a name="line.2434"></a>
+<span class="sourceLineNo">2435</span>      filesCompactingClone = Lists.newArrayList(filesCompacting);<a name="line.2435"></a>
+<span class="sourceLineNo">2436</span>    }<a name="line.2436"></a>
+<span class="sourceLineNo">2437</span>    return this.storeEngine.needsCompaction(filesCompactingClone);<a name="line.2437"></a>
+<span class="sourceLineNo">2438</span>  }<a name="line.2438"></a>
+<span class="sourceLineNo">2439</span><a name="line.2439"></a>
+<span class="sourceLineNo">2440</span>  /**<a name="line.2440"></a>
+<span class="sourceLineNo">2441</span>   * Used for tests.<a name="line.2441"></a>
+<span class="sourceLineNo">2442</span>   * @return cache configuration for this Store.<a name="line.2442"></a>
+<span class="sourceLineNo">2443</span>   */<a name="line.2443"></a>
+<span class="sourceLineNo">2444</span>  @VisibleForTesting<a name="line.2444"></a>
+<span class="sourceLineNo">2445</span>  public CacheConfig getCacheConfig() {<a name="line.2445"></a>
+<span class="sourceLineNo">2446</span>    return this.cacheConf;<a name="line.2446"></a>
+<span class="sourceLineNo">2447</span>  }<a name="line.2447"></a>
+<span class="sourceLineNo">2448</span><a name="line.2448"></a>
+<span class="sourceLineNo">2449</span>  public static final long FIXED_OVERHEAD =<a name="line.2449"></a>
+<span class="sourceLineNo">2450</span>      ClassSize.align(ClassSize.OBJECT + (27 * ClassSize.REFERENCE) + (2 * Bytes.SIZEOF_LONG)<a name="line.2450"></a>
+<span class="sourceLineNo">2451</span>              + (6 * Bytes.SIZEOF_INT) + (2 * Bytes.SIZEOF_BOOLEAN));<a name="line.2451"></a>
+<span class="sourceLineNo">2452</span><a name="line.2452"></a>
+<span class="sourceLineNo">2453</span>  public static final long DEEP_OVERHEAD = ClassSize.align(FIXED_OVERHEAD<a name="line.2453"></a>
+<span class="sourceLineNo">2454</span>      + ClassSize.OBJECT + ClassSize.REENTRANT_LOCK<a name="line.2454"></a>
+<span class="sourceLineNo">2455</span>      + ClassSize.CONCURRENT_SKIPLISTMAP<a name="line.2455"></a>
+<span class="sourceLineNo">2456</span>      + ClassSize.CONCURRENT_SKIPLISTMAP_ENTRY + ClassSize.OBJECT<a name="line.2456"></a>
+<span class="sourceLineNo">2457</span>      + ScanInfo.FIXED_OVERHEAD);<a name="line.2457"></a>
+<span class="sourceLineNo">2458</span><a name="line.2458"></a>
+<span class="sourceLineNo">2459</span>  @Override<a name="line.2459"></a>
+<span class="sourceLineNo">2460</span>  public long heapSize() {<a name="line.2460"></a>
+<span class="sourceLineNo">2461</span>    MemStoreSize memstoreSize = this.memstore.size();<a name="line.2461"></a>
+<span class="sourceLineNo">2462</span>    return DEEP_OVERHEAD + memstoreSize.getHeapSize();<a name="line.2462"></a>
+<span class="sourceLineNo">2463</span>  }<a name="line.2463"></a>
+<span class="sourceLineNo">2464</span><a name="line.2464"></a>
+<span class="sourceLineNo">2465</span>  @Override<a name="line.2465"></a>
+<span class="sourceLineNo">2466</span>  public CellComparator getComparator() {<a name="line.2466"></a>
+<span class="sourceLineNo">2467</span>    return comparator;<a name="line.2467"></a>
+<span class="sourceLineNo">2468</span>  }<a name="line.2468"></a>
+<span class="sourceLineNo">2469</span><a name="line.2469"></a>
+<span class="sourceLineNo">2470</span>  public ScanInfo getScanInfo() {<a name="line.2470"></a>
+<span class="sourceLineNo">2471</span>    return scanInfo;<a name="line.2471"></a>
+<span class="sourceLineNo">2472</span>  }<a name="line.2472"></a>
+<span class="sourceLineNo">2473</span><a name="line.2473"></a>
+<span class="sourceLineNo">2474</span>  /**<a name="line.2474"></a>
+<span class="sourceLineNo">2475</span>   * Set scan info, used by test<a name="line.2475"></a>
+<span class="sourceLineNo">2476</span>   * @param scanInfo new scan info to use for test<a name="line.2476"></a>
+<span class="sourceLineNo">2477</span>   */<a name="line.2477"></a>
+<span class="sourceLineNo">2478</span>  void setScanInfo(ScanInfo scanInfo) {<a name="line.2478"></a>
+<span class="sourceLineNo">2479</span>    this.scanInfo = scanInfo;<a name="line.2479"></a>
+<span class="sourceLineNo">2480</span>  }<a name="line.2480"></a>
+<span class="sourceLineNo">2481</span><a name="line.2481"></a>
+<span class="sourceLineNo">2482</span>  @Override<a name="line.2482"></a>
+<span class="sourceLineNo">2483</span>  public boolean hasTooManyStoreFiles() {<a name="line.2483"></a>
+<span class="sourceLineNo">2484</span>    return getStorefilesCount() &gt; this.blockingFileCount;<a name="line.2484"></a>
+<span class="sourceLineNo">2485</span>  }<a name="line.2485"></a>
+<span class="sourceLineNo">2486</span><a name="line.2486"></a>
+<span class="sourceLineNo">2487</span>  @Override<a name="line.2487"></a>
+<span class="sourceLineNo">2488</span>  public long getFlushedCellsCount() {<a name="line.2488"></a>
+<span class="sourceLineNo">2489</span>    return flushedCellsCount.get();<a name="line.2489"></a>
+<span class="sourceLineNo">2490</span>  }<a name="line.2490"></a>
+<span class="sourceLineNo">2491</span><a name="line.2491"></a>
+<span class="sourceLineNo">2492</span>  @Override<a name="line.2492"></a>
+<span class="sourceLineNo">2493</span>  public long getFlushedCellsSize() {<a name="line.2493"></a>
+<span class="sourceLineNo">2494</span>    return flushedCellsSize.get();<a name="line.2494"></a>
+<span class="sourceLineNo">2495</span>  }<a name="line.2495"></a>
+<span class="sourceLineNo">2496</span><a name="line.2496"></a>
+<span class="sourceLineNo">2497</span>  @Override<a name="line.2497"></a>
+<span class="sourceLineNo">2498</span>  public long getFlushedOutputFileSize() {<a name="line.2498"></a>
+<span class="sourceLineNo">2499</span>    return flushedOutputFileSize.get();<a name="line.2499"></a>
+<span class="sourceLineNo">2500</span>  }<a name="line.2500"></a>
+<span class="sourceLineNo">2501</span><a name="line.2501"></a>
+<span class="sourceLineNo">2502</span>  @Override<a name="line.2502"></a>
+<span class="sourceLineNo">2503</span>  public long getCompactedCellsCount() {<a name="line.2503"></a>
+<span class="sourceLineNo">2504</span>    return compactedCellsCount.get();<a name="line.2504"></a>
+<span class="sourceLineNo">2505</span>  }<a name="line.2505"></a>
+<span class="sourceLineNo">2506</span><a name="line.2506"></a>
+<span class="sourceLineNo">2507</span>  @Override<a name="line.2507"></a>
+<span class="sourceLineNo">2508</span>  public long getCompactedCellsSize() {<a name="line.2508"></a>
+<span class="sourceLineNo">2509</span>    return compactedCellsSize.get();<a name="line.2509"></a>
+<span class="sourceLineNo">2510</span>  }<a name="line.2510"></a>
+<span class="sourceLineNo">2511</span><a name="line.2511"></a>
+<span class="sourceLineNo">2512</span>  @Override<a name="line.2512"></a>
+<span class="sourceLineNo">2513</span>  public long getMajorCompactedCellsCount() {<a name="line.2513"></a>
+<span class="sourceLineNo">2514</span>    return majorCompactedCellsCount.get();<a name="line.2514"></a>
+<span class="sourceLineNo">2515</span>  }<a name="line.2515"></a>
+<span class="sourceLineNo">2516</span><a name="line.2516"></a>
+<span class="sourceLineNo">2517</span>  @Override<a name="line.2517"></a>
+<span class="sourceLineNo">2518</span>  public long getMajorCompactedCellsSize() {<a name="line.2518"></a>
+<span class="sourceLineNo">2519</span>    return majorCompactedCellsSize.get();<a name="line.2519"></a>
+<span class="sourceLineNo">2520</span>  }<a name="line.2520"></a>
+<span class="sourceLineNo">2521</span><a name="line.2521"></a>
+<span class="sourceLineNo">2522</span>  /**<a name="line.2522"></a>
+<span class="sourceLineNo">2523</span>   * Returns the StoreEngine that is backing this concrete implementation of Store.<a name="line.2523"></a>
+<span class="sourceLineNo">2524</span>   * @return Returns the {@link StoreEngine} object used internally inside this HStore object.<a name="line.2524"></a>
+<span class="sourceLineNo">2525</span>   */<a name="line.2525"></a>
+<span class="sourceLineNo">2526</span>  @VisibleForTesting<a name="line.2526"></a>
+<span class="sourceLineNo">2527</span>  public StoreEngine&lt;?, ?, ?, ?&gt; getStoreEngine() {<a name="line.2527"></a>
+<span class="sourceLineNo">2528</span>    return this.storeEngine;<a name="line.2528"></a>
+<span class="sourceLineNo">2529</span>  }<a name="line.2529"></a>
+<span class="sourceLineNo">2530</span><a name="line.2530"></a>
+<span class="sourceLineNo">2531</span>  protected OffPeakHours getOffPeakHours() {<a name="line.2531"></a>
+<span class="sourceLineNo">2532</span>    return this.offPeakHours;<a name="line.2532"></a>
+<span class="sourceLineNo">2533</span>  }<a name="line.2533"></a>
+<span class="sourceLineNo">2534</span><a name="line.2534"></a>
+<span class="sourceLineNo">2535</span>  /**<a name="line.2535"></a>
+<span class="sourceLineNo">2536</span>   * {@inheritDoc}<a name="line.2536"></a>
+<span class="sourceLineNo">2537</span>   */<a name="line.2537"></a>
+<span class="sourceLineNo">2538</span>  @Override<a name="line.2538"></a>
+<span class="sourceLineNo">2539</span>  public void onConfigurationChange(Configuration conf) {<a name="line.2539"></a>
+<span class="sourceLineNo">2540</span>    this.conf = new CompoundConfiguration()<a name="line.2540"></a>
+<span class="sourceLineNo">2541</span>            .add(conf)<a name="line.2541"></a>
+<span class="sourceLineNo">2542</span>            .addBytesMap(family.getValues());<a name="line.2542"></a>
+<span class="sourceLineNo">2543</span>    this.storeEngine.compactionPolicy.setConf(conf);<a name="line.2543"></a>
+<span class="sourceLineNo">2544</span>    this.offPeakHours = OffPeakHours.getInstance(conf);<a name="line.2544"></a>
+<span class="sourceLineNo">2545</span>  }<a name="line.2545"></a>
+<span class="sourceLineNo">2546</span><a name="line.2546"></a>
+<span class="sourceLineNo">2547</span>  /**<a name="line.2547"></a>
+<span class="sourceLineNo">2548</span>   * {@inheritDoc}<a name="line.2548"></a>
+<span class="sourceLineNo">2549</span>   */<a name="line.2549"></a>
+<span class="sourceLineNo">2550</span>  @Override<a name="line.2550"></a>
+<span class="sourceLineNo">2551</span>  public void registerChildren(ConfigurationManager manager) {<a name="line.2551"></a>
+<span class="sourceLineNo">2552</span>    // No children to register<a name="line.2552"></a>
+<span class="sourceLineNo">2553</span>  }<a name="line.2553"></a>
+<span class="sourceLineNo">2554</span><a name="line.2554"></a>
+<span class="sourceLineNo">2555</span>  /**<a name="line.2555"></a>
+<span class="sourceLineNo">2556</span>   * {@inheritDoc}<a name="line.2556"></a>
+<span class="sourceLineNo">2557</span>   */<a name="line.2557"></a>
+<span class="sourceLineNo">2558</span>  @Override<a name="line.2558"></a>
+<span class="sourceLineNo">2559</span>  public void deregisterChildren(ConfigurationManager manager) {<a name="line.2559"></a>
+<span class="sourceLineNo">2560</span>    // No children to deregister<a name="line.2560"></a>
+<span class="sourceLineNo">2561</span>  }<a name="line.2561"></a>
+<span class="sourceLineNo">2562</span><a name="line.2562"></a>
+<span class="sourceLineNo">2563</span>  @Override<a name="line.2563"></a>
+<span class="sourceLineNo">2564</span>  public double getCompactionPressure() {<a name="line.2564"></a>
+<span class="sourceLineNo">2565</span>    return storeEngine.getStoreFileManager().getCompactionPressure();<a name="line.2565"></a>
+<span class="sourceLineNo">2566</span>  }<a name="line.2566"></a>
+<span class="sourceLineNo">2567</span><a name="line.2567"></a>
+<span class="sourceLineNo">2568</span>  @Override<a name="line.2568"></a>
+<span class="sourceLineNo">2569</span>  public boolean isPrimaryReplicaStore() {<a name="line.2569"></a>
+<span class="sourceLineNo">2570</span>    return getRegionInfo().getReplicaId() == RegionInfo.DEFAULT_REPLICA_ID;<a name="line.2570"></a>
+<span class="sourceLineNo">2571</span>  }<a name="line.2571"></a>
+<span class="sourceLineNo">2572</span><a name="line.2572"></a>
+<span class="sourceLineNo">2573</span>  /**<a name="line.2573"></a>
+<span class="sourceLineNo">2574</span>   * Sets the store up for a region level snapshot operation.<a name="line.2574"></a>
+<span class="sourceLineNo">2575</span>   * @see #postSnapshotOperation()<a name="line.2575"></a>
+<span class="sourceLineNo">2576</span>   */<a name="line.2576"></a>
+<span class="sourceLineNo">2577</span>  public void preSnapshotOperation() {<a name="line.2577"></a>
+<span class="sourceLineNo">2578</span>    archiveLock.lock();<a name="line.2578"></a>
+<span class="sourceLineNo">2579</span>  }<a name="line.2579"></a>
+<span class="sourceLineNo">2580</span><a name="line.2580"></a>
+<span class="sourceLineNo">2581</span>  /**<a name="line.2581"></a>
+<span class="sourceLineNo">2582</span>   * Perform tasks needed after the completion of snapshot operation.<a name="line.2582"></a>
+<span class="sourceLineNo">2583</span>   * @see #preSnapshotOperation()<a name="line.2583"></a>
+<span class="sourceLineNo">2584</span>   */<a name="line.2584"></a>
+<span class="sourceLineNo">2585</span>  public void postSnapshotOperation() {<a name="line.2585"></a>
+<span class="sourceLineNo">2586</span>    archiveLock.unlock();<a name="line.2586"></a>
+<span class="sourceLineNo">2587</span>  }<a name="line.2587"></a>
+<span class="sourceLineNo">2588</span><a name="line.2588"></a>
+<span class="sourceLineNo">2589</span>  /**<a name="line.2589"></a>
+<span class="sourceLineNo">2590</span>   * Closes and archives the compacted files under this store<a name="line.2590"></a>
 <span class="sourceLineNo">2591</span>   */<a name="line.2591"></a>
-<span class="sourceLineNo">2592</span>  public void postSnapshotOperation() {<a name="line.2592"></a>
-<span class="sourceLineNo">2593</span>    archiveLock.unlock();<a name="line.2593"></a>
-<span class="sourceLineNo">2594</span>  }<a name="line.2594"></a>
-<span class="sourceLineNo">2595</span><a name="line.2595"></a>
-<span class="sourceLineNo">2596</span>  /**<a name="line.2596"></a>
-<span class="sourceLineNo">2597</span>   * Closes and archives the compacted files under this store<a name="line.2597"></a>
-<span class="sourceLineNo">2598</span>   */<a name="line.2598"></a>
-<span class="sourceLineNo">2599</span>  public synchronized void closeAndArchiveCompactedFiles() throws IOException {<a name="line.2599"></a>
-<span class="sourceLineNo">2600</span>    // ensure other threads do not attempt to archive the same files on close()<a name="line.2600"></a>
-<span class="sourceLineNo">2601</span>    archiveLock.lock();<a name="line.2601"></a>
-<span class="sourceLineNo">2602</span>    try {<a name="line.2602"></a>
-<span class="sourceLineNo">2603</span>      lock.readLock().lock();<a name="line.2603"></a>
-<span class="sourceLineNo">2604</span>      Collection&lt;HStoreFile&gt; copyCompactedfiles = null;<a name="line.2604"></a>
-<span class="sourceLineNo">2605</span>      try {<a name="line.2605"></a>
-<span class="sourceLineNo">2606</span>        Collection&lt;HStoreFile&gt; compactedfiles =<a name="line.2606"></a>
-<span class="sourceLineNo">2607</span>            this.getStoreEngine().getStoreFileManager().getCompactedfiles();<a name="line.2607"></a>
-<span class="sourceLineNo">2608</span>        if (CollectionUtils.isNotEmpty(compactedfiles)) {<a name="line.2608"></a>
-<span class="sourceLineNo">2609</span>          // Do a copy under read lock<a name="line.2609"></a>
-<span class="sourceLineNo">2610</span>          copyCompactedfiles = new ArrayList&lt;&gt;(compactedfiles);<a name="line.2610"></a>
-<span class="sourceLineNo">2611</span>        } else {<a name="line.2611"></a>
-<span class="sourceLineNo">2612</span>          LOG.trace("No compacted files to archive");<a name="line.2612"></a>
-<span class="sourceLineNo">2613</span>        }<a name="line.2613"></a>
-<span class="sourceLineNo">2614</span>      } finally {<a name="line.2614"></a>
-<span class="sourceLineNo">2615</span>        lock.readLock().unlock();<a name="line.2615"></a>
-<span class="sourceLineNo">2616</span>      }<a name="line.2616"></a>
-<span class="sourceLineNo">2617</span>      if (CollectionUtils.isNotEmpty(copyCompactedfiles)) {<a name="line.2617"></a>
-<span class="sourceLineNo">2618</span>        removeCompactedfiles(copyCompactedfiles);<a name="line.2618"></a>
-<span class="sourceLineNo">2619</span>      }<a name="line.2619"></a>
-<span class="sourceLineNo">2620</span>    } finally {<a name="line.2620"></a>
-<span class="sourceLineNo">2621</span>      archiveLock.unlock();<a name="line.2621"></a>
-<span class="sourceLineNo">2622</span>    }<a name="line.2622"></a>
-<span class="sourceLineNo">2623</span>  }<a name="line.2623"></a>
-<span class="sourceLineNo">2624</span><a name="line.2624"></a>
-<span class="sourceLineNo">2625</span>  /**<a name="line.2625"></a>
-<span class="sourceLineNo">2626</span>   * Archives and removes the compacted files<a name="line.2626"></a>
-<span class="sourceLineNo">2627</span>   * @param compactedfiles The compacted files in this store that are not active in reads<a name="line.2627"></a>
-<span class="sourceLineNo">2628</span>   */<a name="line.2628"></a>
-<span class="sourceLineNo">2629</span>  private void removeCompactedfiles(Collection&lt;HStoreFile&gt; compactedfiles)<a name="line.2629"></a>
-<span class="sourceLineNo">2630</span>      throws IOException {<a name="line.2630"></a>
-<span class="sourceLineNo">2631</span>    final List&lt;HStoreFile&gt; filesToRemove = new ArrayList&lt;&gt;(compactedfiles.size());<a name="line.2631"></a>
-<span class="sourceLineNo">2632</span>    final List&lt;Long&gt; storeFileSizes = new ArrayList&lt;&gt;(compactedfiles.size());<a name="line.2632"></a>
-<span class="sourceLineNo">2633</span>    for (final HStoreFile file : compactedfiles) {<a name="line.2633"></a>
-<span class="sourceLineNo">2634</span>      synchronized (file) {<a name="line.2634"></a>
-<span class="sourceLineNo">2635</span>        try {<a name="line.2635"></a>
-<span class="sourceLineNo">2636</span>          StoreFileReader r = file.getReader();<a name="line.2636"></a>
-<span class="sourceLineNo">2637</span>          if (r == null) {<a name="line.2637"></a>
-<span class="sourceLineNo">2638</span>            LOG.debug("The file {} was closed but still not archived", file);<a name="line.2638"></a>
-<span class="sourceLineNo">2639</span>            // HACK: Temporarily re-open the reader so we can get the size of the file. Ideally,<a name="line.2639"></a>
-<span class="sourceLineNo">2640</span>            // we should know the size of an HStoreFile without having to ask the HStoreFileReader<a name="line.2640"></a>
-<span class="sourceLineNo">2641</span>            // for that.<a name="line.2641"></a>
-<span class="sourceLineNo">2642</span>            long length = getStoreFileSize(file);<a name="line.2642"></a>
-<span class="sourceLineNo">2643</span>            filesToRemove.add(file);<a name="line.2643"></a>
-<span class="sourceLineNo">2644</span>            storeFileSizes.add(length);<a name="line.2644"></a>
-<span class="sourceLineNo">2645</span>            continue;<a name="line.2645"></a>
-<span class="sourceLineNo">2646</span>          }<a name="line.2646"></a>
-<span class="sourceLineNo">2647</span><a name="line.2647"></a>
-<span class="sourceLineNo">2648</span>          if (file.isCompactedAway() &amp;&amp; !file.isReferencedInReads()) {<a name="line.2648"></a>
-<span class="sourceLineNo">2649</span>            // Even if deleting fails we need not bother as any new scanners won't be<a name="line.2649"></a>
-<span class="sourceLineNo">2650</span>            // able to use the compacted file as the status is already compactedAway<a name="line.2650"></a>
-<span class="sourceLineNo">2651</span>            LOG.trace("Closing and archiving the file {}", file);<a name="line.2651"></a>
-<span class="sourceLineNo">2652</span>            // Copy the file size before closing the reader<a name="line.2652"></a>
-<span class="sourceLineNo">2653</span>            final long length = r.length();<a name="line.2653"></a>
-<span class="sourceLineNo">2654</span>            r.close(true);<a name="line.2654"></a>
-<span class="sourceLineNo">2655</span>            // Just close and return<a name="line.2655"></a>
-<span class="sourceLineNo">2656</span>            filesToRemove.add(file);<a name="line.2656"></a>
-<span class="sourceLineNo">2657</span>            // Only add the length if we successfully added the file to `filesToRemove`<a name="line.2657"></a>
-<span class="sourceLineNo">2658</span>            storeFileSizes.add(length);<a name="line.2658"></a>
-<span class="sourceLineNo">2659</span>          } else {<a name="line.2659"></a>
-<span class="sourceLineNo">2660</span>            LOG.info("Can't archive compacted file " + file.getPath()<a name="line.2660"></a>
-<span class="sourceLineNo">2661</span>                + " because of either isCompactedAway=" + file.isCompactedAway()<a name="line.2661"></a>
-<span class="sourceLineNo">2662</span>                + " or file has reference, isReferencedInReads=" + file.isReferencedInReads()<a name="line.2662"></a>
-<span class="sourceLineNo">2663</span>                + ", refCount=" + r.getRefCount() + ", skipping for now.");<a name="line.2663"></a>
-<span class="sourceLineNo">2664</span>          }<a name="line.2664"></a>
-<span class="sourceLineNo">2665</span>        } catch (Exception e) {<a name="line.2665"></a>
-<span class="sourceLineNo">2666</span>          LOG.error("Exception while trying to close the compacted store file {}", file.getPath(),<a name="line.2666"></a>
-<span class="sourceLineNo">2667</span>              e);<a name="line.2667"></a>
-<span class="sourceLineNo">2668</span>        }<a name="line.2668"></a>
-<span class="sourceLineNo">2669</span>      }<a name="line.2669"></a>
-<span class="sourceLineNo">2670</span>    }<a name="line.2670"></a>
-<span class="sourceLineNo">2671</span>    if (this.isPrimaryReplicaStore()) {<a name="line.2671"></a>
-<span class="sourceLineNo">2672</span>      // Only the primary region is allowed to move the file to archive.<a name="line.2672"></a>
-<span class="sourceLineNo">2673</span>      // The secondary region does not move the files to archive. Any active reads from<a name="line.2673"></a>
-<span class="sourceLineNo">2674</span>      // the secondary region will still work because the file as such has active readers on it.<a name="line.2674"></a>
-<span class="sourceLineNo">2675</span>      if (!filesToRemove.isEmpty()) {<a name="line.2675"></a>
-<span class="sourceLineNo">2676</span>        LOG.debug("Moving the files {} to archive", filesToRemove);<a name="line.2676"></a>
-<span class="sourceLineNo">2677</span>        // Only if this is successful it has to be removed<a name="line.2677"></a>
-<span class="sourceLineNo">2678</span>        try {<a name="line.2678"></a>
-<span class="sourceLineNo">2679</span>          this.fs.removeStoreFiles(this.getColumnFamilyDescriptor().getNameAsString(), filesToRemove);<a name="line.2679"></a>
-<span class="sourceLineNo">2680</span>        } catch (FailedArchiveException fae) {<a name="line.2680"></a>
-<span class="sourceLineNo">2681</span>          // Even if archiving some files failed, we still need to clear out any of the<a name="line.2681"></a>
-<span class="sourceLineNo">2682</span>          // files which were successfully archived.  Otherwise we will receive a<a name="line.2682"></a>
-<span class="sourceLineNo">2683</span>          // FileNotFoundException when we attempt to re-archive them in the next go around.<a name="line.2683"></a>
-<span class="sourceLineNo">2684</span>          Collection&lt;Path&gt; failedFiles = fae.getFailedFiles();<a name="line.2684"></a>
-<span class="sourceLineNo">2685</span>          Iterator&lt;HStoreFile&gt; iter = filesToRemove.iterator();<a name="line.2685"></a>
-<span class="sourceLineNo">2686</span>          Iterator&lt;Long&gt; sizeIter = storeFileSizes.iterator();<a name="line.2686"></a>
-<span class="sourceLineNo">2687</span>          while (iter.hasNext()) {<a name="line.2687"></a>
-<span class="sourceLineNo">2688</span>            sizeIter.next();<a name="line.2688"></a>
-<span class="sourceLineNo">2689</span>            if (failedFiles.contains(iter.next().getPath())) {<a name="line.2689"></a>
-<span class="sourceLineNo">2690</span>              iter.remove();<a name="line.2690"></a>
-<span class="sourceLineNo">2691</span>              sizeIter.remove();<a name="line.2691"></a>
-<span class="sourceLineNo">2692</span>            }<a name="line.2692"></a>
-<span class="sourceLineNo">2693</span>          }<a name="line.2693"></a>
-<span class="sourceLineNo">2694</span>          if (!filesToRemove.isEmpty()) {<a name="line.2694"></a>
-<span class="sourceLineNo">2695</span>            clearCompactedfiles(filesToRemove);<a name="line.2695"></a>
-<span class="sourceLineNo">2696</span>          }<a name="line.2696"></a>
-<span class="sourceLineNo">2697</span>          throw fae;<a name="line.2697"></a>
-<span class="sourceLineNo">2698</span>        }<a name="line.2698"></a>
-<span class="sourceLineNo">2699</span>      }<a name="line.2699"></a>
-<span class="sourceLineNo">2700</span>    }<a name="line.2700"></a>
-<span class="sourceLineNo">2701</span>    if (!filesToRemove.isEmpty()) {<a name="line.2701"></a>
-<span class="sourceLineNo">2702</span>      // Clear the compactedfiles from the store file manager<a name="line.2702"></a>
-<span class="sourceLineNo">2703</span>      clearCompactedfiles(filesToRemove);<a name="line.2703"></a>
-<span class="sourceLineNo">2704</span>      // Try to send report of this archival to the Master for updating quota usage faster<a name="line.2704"></a>
-<span class="sourceLineNo">2705</span>      reportArchivedFilesForQuota(filesToRemove, storeFileSizes);<a name="line.2705"></a>
-<span class="sourceLineNo">2706</span>    }<a name="line.2706"></a>
-<span class="sourceLineNo">2707</span>  }<a name="line.2707"></a>
-<span class="sourceLineNo">2708</span><a name="line.2708"></a>
-<span class="sourceLineNo">2709</span>  /**<a name="line.2709"></a>
-<span class="sourceLineNo">2710</span>   * Computes the length of a store file without succumbing to any errors along the way. If an<a name="line.2710"></a>
-<span class="sourceLineNo">2711</span>   * error is encountered, the implementation returns {@code 0} instead of the actual size.<a name="line.2711"></a>
-<span class="sourceLineNo">2712</span>   *<a name="line.2712"></a>
-<span class="sourceLineNo">2713</span>   * @param file The file to compute the size of.<a name="line.2713"></a>
-<span class="sourceLineNo">2714</span>   * @return The size in bytes of the provided {@code file}.<a name="line.2714"></a>
-<span class="sourceLineNo">2715</span>   */<a name="line.2715"></a>
-<span class="sourceLineNo">2716</span>  long getStoreFileSize(HStoreFile file) {<a name="line.2716"></a>
-<span class="sourceLineNo">2717</span>    long length = 0;<a name="line.2717"></a>
-<span class="sourceLineNo">2718</span>    try {<a name="line.2718"></a>
-<span class="sourceLineNo">2719</span>      file.initReader();<a name="line.2719"></a>
-<span class="sourceLineNo">2720</span>      length = file.getReader().length();<a name="line.2720"></a>
-<span class="sourceLineNo">2721</span>    } catch (IOException e) {<a name="line.2721"></a>
-<span class="sourceLineNo">2722</span>      LOG.trace("Failed to open reader when trying to compute store file size, ignoring", e);<a name="line.2722"></a>
-<span class="sourceLineNo">2723</span>    } finally {<a name="line.2723"></a>
-<span class="sourceLineNo">2724</span>      try {<a name="line.2724"></a>
-<span class="sourceLineNo">2725</span>        file.closeStoreFile(<a name="line.2725"></a>
-<span class="sourceLineNo">2726</span>            file.getCacheConf() != null ? file.getCacheConf().shouldEvictOnClose() : true);<a name="line.2726"></a>
-<span class="sourceLineNo">2727</span>      } catch (IOException e) {<a name="line.2727"></a>
-<span class="sourceLineNo">2728</span>        LOG.trace("Failed to close reader after computing store file size, ignoring", e);<a name="line.2728"></a>
-<span class="sourceLineNo">2729</span>      }<a name="line.2729"></a>
-<span class="sourceLineNo">2730</span>    }<a name="line.2730"></a>
-<span class="sourceLineNo">2731</span>    return length;<a name="line.2731"></a>
-<span class="sourceLineNo">2732</span>  }<a name="line.2732"></a>
-<span class="sourceLineNo">2733</span><a name="line.2733"></a>
-<span class="sourceLineNo">2734</span>  public Long preFlushSeqIDEstimation() {<a name="line.2734"></a>
-<span class="sourceLineNo">2735</span>    return memstore.preFlushSeqIDEstimation();<a name="line.2735"></a>
-<span class="sourceLineNo">2736</span>  }<a name="line.2736"></a>
-<span class="sourceLineNo">2737</span><a name="line.2737"></a>
-<span class="sourceLineNo">2738</span>  @Override<a name="line.2738"></a>
-<span class="sourceLineNo">2739</span>  public boolean isSloppyMemStore() {<a name="line.2739"></a>
-<span class="sourceLineNo">2740</span>    return this.memstore.isSloppy();<a name="line.2740"></a>
-<span class="sourceLineNo">2741</span>  }<a name="line.2741"></a>
-<span class="sourceLineNo">2742</span><a name="line.2742"></a>
-<span class="sourceLineNo">2743</span>  private void clearCompactedfiles(List&lt;HStoreFile&gt; filesToRemove) throws IOException {<a name="line.2743"></a>
-<span class="sourceLineNo">2744</span>    LOG.trace("Clearing the compacted file {} from this store", filesToRemove);<a name="line.2744"></a>
-<span class="sourceLineNo">2745</span>    try {<a name="line.2745"></a>
-<span class="sourceLineNo">2746</span>      lock.writeLock().lock();<a name="line.2746"></a>
-<span class="sourceLineNo">2747</span>      this.getStoreEngine().getStoreFileManager().removeCompactedFiles(filesToRemove);<a name="line.2747"></a>
-<span class="sourceLineNo">2748</span>    } finally {<a name="line.2748"></a>
-<span class="sourceLineNo">2749</span>      lock.writeLock().unlock();<a name="line.2749"></a>
+<span class="sourceLineNo">2592</span>  public synchronized void closeAndArchiveCompactedFiles() throws IOException {<a name="line.2592"></a>
+<span class="sourceLineNo">2593</span>    // ensure other threads do not attempt to archive the same files on close()<a name="line.2593"></a>
+<span class="sourceLineNo">2594</span>    archiveLock.lock();<a name="line.2594"></a>
+<span class="sourceLineNo">2595</span>    try {<a name="line.2595"></a>
+<span class="sourceLineNo">2596</span>      lock.readLock().lock();<a name="line.2596"></a>
+<span class="sourceLineNo">2597</span>      Collection&lt;HStoreFile&gt; copyCompactedfiles = null;<a name="line.2597"></a>
+<span class="sourceLineNo">2598</span>      try {<a name="line.2598"></a>
+<span class="sourceLineNo">2599</span>        Collection&lt;HStoreFile&gt; compactedfiles =<a name="line.2599"></a>
+<span class="sourceLineNo">2600</span>            this.getStoreEngine().getStoreFileManager().getCompactedfiles();<a name="line.2600"></a>
+<span class="sourceLineNo">2601</span>        if (CollectionUtils.isNotEmpty(compactedfiles)) {<a name="line.2601"></a>
+<span class="sourceLineNo">2602</span>          // Do a copy under read lock<a name="line.2602"></a>
+<span class="sourceLineNo">2603</span>          copyCompactedfiles = new ArrayList&lt;&gt;(compactedfiles);<a name="line.2603"></a>
+<span class="sourceLineNo">2604</span>        } else {<a name="line.2604"></a>
+<span class="sourceLineNo">2605</span>          LOG.trace("No compacted files to archive");<a name="line.2605"></a>
+<span class="sourceLineNo">2606</span>        }<a name="line.2606"></a>
+<span class="sourceLineNo">2607</span>      } finally {<a name="line.2607"></a>
+<span class="sourceLineNo">2608</span>        lock.readLock().unlock();<a name="line.2608"></a>
+<span class="sourceLineNo">2609</span>      }<a name="line.2609"></a>
+<span class="sourceLineNo">2610</span>      if (CollectionUtils.isNotEmpty(copyCompactedfiles)) {<a name="line.2610"></a>
+<span class="sourceLineNo">2611</span>        removeCompactedfiles(copyCompactedfiles);<a name="line.2611"></a>
+<span class="sourceLineNo">2612</span>      }<a name="line.2612"></a>
+<span class="sourceLineNo">2613</span>    } finally {<a name="line.2613"></a>
+<span class="sourceLineNo">2614</span>      archiveLock.unlock();<a name="line.2614"></a>
+<span class="sourceLineNo">2615</span>    }<a name="line.2615"></a>
+<span class="sourceLineNo">2616</span>  }<a name="line.2616"></a>
+<span class="sourceLineNo">2617</span><a name="line.2617"></a>
+<span class="sourceLineNo">2618</span>  /**<a name="line.2618"></a>
+<span class="sourceLineNo">2619</span>   * Archives and removes the compacted files<a name="line.2619"></a>
+<span class="sourceLineNo">2620</span>   * @param compactedfiles The compacted files in this store that are not active in reads<a name="line.2620"></a>
+<span class="sourceLineNo">2621</span>   */<a name="line.2621"></a>
+<span class="sourceLineNo">2622</span>  private void removeCompactedfiles(Collection&lt;HStoreFile&gt; compactedfiles)<a name="line.2622"></a>
+<span class="sourceLineNo">2623</span>      throws IOException {<a name="line.2623"></a>
+<span class="sourceLineNo">2624</span>    final List&lt;HStoreFile&gt; filesToRemove = new ArrayList&lt;&gt;(compactedfiles.size());<a name="line.2624"></a>
+<span class="sourceLineNo">2625</span>    final List&lt;Long&gt; storeFileSizes = new ArrayList&lt;&gt;(compactedfiles.size());<a name="line.2625"></a>
+<span class="sourceLineNo">2626</span>    for (final HStoreFile file : compactedfiles) {<a name="line.2626"></a>
+<span class="sourceLineNo">2627</span>      synchronized (file) {<a name="line.2627"></a>
+<span class="sourceLineNo">2628</span>        try {<a name="line.2628"></a>
+<span class="sourceLineNo">2629</span>          StoreFileReader r = file.getReader();<a name="line.2629"></a>
+<span class="sourceLineNo">2630</span>          if (r == null) {<a name="line.2630"></a>
+<span class="sourceLineNo">2631</span>            LOG.debug("The file {} was closed but still not archived", file);<a name="line.2631"></a>
+<span class="sourceLineNo">2632</span>            // HACK: Temporarily re-open the reader so we can get the size of the file. Ideally,<a name="line.2632"></a>
+<span class="sourceLineNo">2633</span>            // we should know the size of an HStoreFile without having to ask the HStoreFileReader<a name="line.2633"></a>
+<span class="sourceLineNo">2634</span>            // for that.<a name="line.2634"></a>
+<span class="sourceLineNo">2635</span>            long length = getStoreFileSize(file);<a name="line.2635"></a>
+<span class="sourceLineNo">2636</span>            filesToRemove.add(file);<a name="line.2636"></a>
+<span class="sourceLineNo">2637</span>            storeFileSizes.add(length);<a name="line.2637"></a>
+<span class="sourceLineNo">2638</span>            continue;<a name="line.2638"></a>
+<span class="sourceLineNo">2639</span>          }<a name="line.2639"></a>
+<span class="sourceLineNo">2640</span><a name="line.2640"></a>
+<span class="sourceLineNo">2641</span>          if (file.isCompactedAway() &amp;&amp; !file.isReferencedInReads()) {<a name="line.2641"></a>
+<span class="sourceLineNo">2642</span>            // Even if deleting fails we need not bother as any new scanners won't be<a name="line.2642"></a>
+<span class="sourceLineNo">2643</span>            // able to use the compacted file as the status is already compactedAway<a name="line.2643"></a>
+<span class="sourceLineNo">2644</span>            LOG.trace("Closing and archiving the file {}", file);<a name="line.2644"></a>
+<span class="sourceLineNo">2645</span>            // Copy the file size before closing the reader<a name="line.2645"></a>
+<span class="sourceLineNo">2646</span>            final long length = r.length();<a name="line.2646"></a>
+<span class="sourceLineNo">2647</span>            r.close(true);<a name="line.2647"></a>
+<span class="sourceLineNo">2648</span>            // Just close and return<a name="line.2648"></a>
+<span class="sourceLineNo">2649</span>            filesToRemove.add(file);<a name="line.2649"></a>
+<span class="sourceLineNo">2650</span>            // Only add the length if we successfully added the file to `filesToRemove`<a name="line.2650"></a>
+<span class="sourceLineNo">2651</span>            storeFileSizes.add(length);<a name="line.2651"></a>
+<span class="sourceLineNo">2652</span>          } else {<a name="line.2652"></a>
+<span class="sourceLineNo">2653</span>            LOG.info("Can't archive compacted file " + file.getPath()<a name="line.2653"></a>
+<span class="sourceLineNo">2654</span>                + " because of either isCompactedAway=" + file.isCompactedAway()<a name="line.2654"></a>
+<span class="sourceLineNo">2655</span>                + " or file has reference, isReferencedInReads=" + file.isReferencedInReads()<a name="line.2655"></a>
+<span class="sourceLineNo">2656</span>                + ", refCount=" + r.getRefCount() + ", skipping for now.");<a name="line.2656"></a>
+<span class="sourceLineNo">2657</span>          }<a name="line.2657"></a>
+<span class="sourceLineNo">2658</span>        } catch (Exception e) {<a name="line.2658"></a>
+<span class="sourceLineNo">2659</span>          LOG.error("Exception while trying to close the compacted store file {}", file.getPath(),<a name="line.2659"></a>
+<span class="sourceLineNo">2660</span>              e);<a name="line.2660"></a>
+<span class="sourceLineNo">2661</span>        }<a name="line.2661"></a>
+<span class="sourceLineNo">2662</span>      }<a name="line.2662"></a>
+<span class="sourceLineNo">2663</span>    }<a name="line.2663"></a>
+<span class="sourceLineNo">2664</span>    if (this.isPrimaryReplicaStore()) {<a name="line.2664"></a>
+<span class="sourceLineNo">2665</span>      // Only the primary region is allowed to move the file to archive.<a name="line.2665"></a>
+<span class="sourceLineNo">2666</span>      // The secondary region does not move the files to archive. Any active reads from<a name="line.2666"></a>
+<span class="sourceLineNo">2667</span>      // the secondary region will still work because the file as such has active readers on it.<a name="line.2667"></a>
+<span class="sourceLineNo">2668</span>      if (!filesToRemove.isEmpty()) {<a name="line.2668"></a>
+<span class="sourceLineNo">2669</span>        LOG.debug("Moving the files {} to archive", filesToRemove);<a name="line.2669"></a>
+<span class="sourceLineNo">2670</span>        // Only if this is successful it has to be removed<a name="line.2670"></a>
+<span class="sourceLineNo">2671</span>        try {<a name="line.2671"></a>
+<span class="sourceLineNo">2672</span>          this.fs.removeStoreFiles(this.getColumnFamilyDescriptor().getNameAsString(), filesToRemove);<a name="line.2672"></a>
+<span class="sourceLineNo">2673</span>        } catch (FailedArchiveException fae) {<a name="line.2673"></a>
+<span class="sourceLineNo">2674</span>          // Even if archiving some files failed, we still need to clear out any of the<a name="line.2674"></a>
+<span class="sourceLineNo">2675</span>          // files which were successfully archived.  Otherwise we will receive a<a name="line.2675"></a>
+<span class="sourceLineNo">2676</span>          // FileNotFoundException when we attempt to re-archive them in the next go around.<a name="line.2676"></a>
+<span class="sourceLineNo">2677</span>          Collection&lt;Path&gt; failedFiles = fae.getFailedFiles();<a name="line.2677"></a>
+<span class="sourceLineNo">2678</span>          Iterator&lt;HStoreFile&gt; iter = filesToRemove.iterator();<a name="line.2678"></a>
+<span class="sourceLineNo">2679</span>          Iterator&lt;Long&gt; sizeIter = storeFileSizes.iterator();<a name="line.2679"></a>
+<span class="sourceLineNo">2680</span>          while (iter.hasNext()) {<a name="line.2680"></a>
+<span class="sourceLineNo">2681</span>            sizeIter.next();<a name="line.2681"></a>
+<span class="sourceLineNo">2682</span>            if (failedFiles.contains(iter.next().getPath())) {<a name="line.2682"></a>
+<span class="sourceLineNo">2683</span>              iter.remove();<a name="line.2683"></a>
+<span class="sourceLineNo">2684</span>              sizeIter.remove();<a name="line.2684"></a>
+<span class="sourceLineNo">2685</span>            }<a name="line.2685"></a>
+<span class="sourceLineNo">2686</span>          }<a name="line.2686"></a>
+<span class="sourceLineNo">2687</span>          if (!filesToRemove.isEmpty()) {<a name="line.2687"></a>
+<span class="sourceLineNo">2688</span>            clearCompactedfiles(filesToRemove);<a name="line.2688"></a>
+<span class="sourceLineNo">2689</span>          }<a name="line.2689"></a>
+<span class="sourceLineNo">2690</span>          throw fae;<a name="line.2690"></a>
+<span class="sourceLineNo">2691</span>        }<a name="line.2691"></a>
+<span class="sourceLineNo">2692</span>      }<a name="line.2692"></a>
+<span class="sourceLineNo">2693</span>    }<a name="line.2693"></a>
+<span class="sourceLineNo">2694</span>    if (!filesToRemove.isEmpty()) {<a name="line.2694"></a>
+<span class="sourceLineNo">2695</span>      // Clear the compactedfiles from the store file manager<a name="line.2695"></a>
+<span class="sourceLineNo">2696</span>      clearCompactedfiles(filesToRemove);<a name="line.2696"></a>
+<span class="sourceLineNo">2697</span>      // Try to send report of this archival to the Master for updating quota usage faster<a name="line.2697"></a>
+<span class="sourceLineNo">2698</span>      reportArchivedFilesForQuota(filesToRemove, storeFileSizes);<a name="line.2698"></a>
+<span class="sourceLineNo">2699</span>    }<a name="line.2699"></a>
+<span class="sourceLineNo">2700</span>  }<a name="line.2700"></a>
+<span class="sourceLineNo">2701</span><a name="line.2701"></a>
+<span class="sourceLineNo">2702</span>  /**<a name="line.2702"></a>
+<span class="sourceLineNo">2703</span>   * Computes the length of a store file without succumbing to any errors along the way. If an<a name="line.2703"></a>
+<span class="sourceLineNo">2704</span>   * error is encountered, the implementation returns {@code 0} instead of the actual size.<a name="line.2704"></a>
+<span class="sourceLineNo">2705</span>   *<a name="line.2705"></a>
+<span class="sourceLineNo">2706</span>   * @param file The file to compute the size of.<a name="line.2706"></a>
+<span class="sourceLineNo">2707</span>   * @return The size in bytes of the provided {@code file}.<a name="line.2707"></a>
+<span class="sourceLineNo">2708</span>   */<a name="line.2708"></a>
+<span class="sourceLineNo">2709</span>  long getStoreFileSize(HStoreFile file) {<a name="line.2709"></a>
+<span class="sourceLineNo">2710</span>    long length = 0;<a name="line.2710"></a>
+<span class="sourceLineNo">2711</span>    try {<a name="line.2711"></a>
+<span class="sourceLineNo">2712</span>      file.initReader();<a name="line.2712"></a>
+<span class="sourceLineNo">2713</span>      length = file.getReader().length();<a name="line.2713"></a>
+<span class="sourceLineNo">2714</span>    } catch (IOException e) {<a name="line.2714"></a>
+<span class="sourceLineNo">2715</span>      LOG.trace("Failed to open reader when trying to compute store file size, ignoring", e);<a name="line.2715"></a>
+<span class="sourceLineNo">2716</span>    } finally {<a name="line.2716"></a>
+<span class="sourceLineNo">2717</span>      try {<a name="line.2717"></a>
+<span class="sourceLineNo">2718</span>        file.closeStoreFile(<a name="line.2718"></a>
+<span class="sourceLineNo">2719</span>            file.getCacheConf() != null ? file.getCacheConf().shouldEvictOnClose() : true);<a name="line.2719"></a>
+<span class="sourceLineNo">2720</span>      } catch (IOException e) {<a name="line.2720"></a>
+<span class="sourceLineNo">2721</span>        LOG.trace("Failed to close reader after computing store file size, ignoring", e);<a name="line.2721"></a>
+<span class="sourceLineNo">2722</span>      }<a name="line.2722"></a>
+<span class="sourceLineNo">2723</span>    }<a name="line.2723"></a>
+<span class="sourceLineNo">2724</span>    return length;<a name="line.2724"></a>
+<span class="sourceLineNo">2725</span>  }<a name="line.2725"></a>
+<span class="sourceLineNo">2726</span><a name="line.2726"></a>
+<span class="sourceLineNo">2727</span>  public Long preFlushSeqIDEstimation() {<a name="line.2727"></a>
+<span class="sourceLineNo">2728</span>    return memstore.preFlushSeqIDEstimation();<a name="line.2728"></a>
+<span class="sourceLineNo">2729</span>  }<a name="line.2729"></a>
+<span class="sourceLineNo">2730</span><a name="line.2730"></a>
+<span class="sourceLineNo">2731</span>  @Override<a name="line.2731"></a>
+<span class="sourceLineNo">2732</span>  public boolean isSloppyMemStore() {<a name="line.2732"></a>
+<span class="sourceLineNo">2733</span>    return this.memstore.isSloppy();<a name="line.2733"></a>
+<span class="sourceLineNo">2734</span>  }<a name="line.2734"></a>
+<span class="sourceLineNo">2735</span><a name="line.2735"></a>
+<span class="sourceLineNo">2736</span>  private void clearCompactedfiles(List&lt;HStoreFile&gt; filesToRemove) throws IOException {<a name="line.2736"></a>
+<span class="sourceLineNo">2737</span>    LOG.trace("Clearing the compacted file {} from this store", filesToRemove);<a name="line.2737"></a>
+<span class="sourceLineNo">2738</span>    try {<a name="line.2738"></a>
+<span class="sourceLineNo">2739</span>      lock.writeLock().lock();<a name="line.2739"></a>
+<span class="sourceLineNo">2740</span>      this.getStoreEngine().getStoreFileManager().removeCompactedFiles(filesToRemove);<a name="line.2740"></a>
+<span class="sourceLineNo">2741</span>    } finally {<a name="line.2741"></a>
+<span class="sourceLineNo">2742</span>      lock.writeLock().unlock();<a name="line.2742"></a>
+<span class="sourceLineNo">2743</span>    }<a name="line.2743"></a>
+<span class="sourceLineNo">2744</span>  }<a name="line.2744"></a>
+<span class="sourceLineNo">2745</span><a name="line.2745"></a>
+<span class="sourceLineNo">2746</span>  void reportArchivedFilesForQuota(List&lt;? extends StoreFile&gt; archivedFiles, List&lt;Long&gt; fileSizes) {<a name="line.2746"></a>
+<span class="sourceLineNo">2747</span>    // Sanity check from the caller<a name="line.2747"></a>
+<span class="sourceLineNo">2748</span>    if (archivedFiles.size() != fileSizes.size()) {<a name="line.2748"></a>
+<span class="sourceLineNo">2749</span>      throw new RuntimeException("Coding error: should never see lists of varying size");<a name="line.2749"></a>
 <span class="sourceLineNo">2750</span>    }<a name="line.2750"></a>
-<span class="sourceLineNo">2751</span>  }<a name="line.2751"></a>
-<span class="sourceLineNo">2752</span><a name="line.2752"></a>
-<span class="sourceLineNo">2753</span>  void reportArchivedFilesForQuota(List&lt;? extends StoreFile&gt; archivedFiles, List&lt;Long&gt; fileSizes) {<a name="line.2753"></a>
-<span class="sourceLineNo">2754</span>    // Sanity check from the caller<a name="line.2754"></a>
-<span class="sourceLineNo">2755</span>    if (archivedFiles.size() != fileSizes.size()) {<a name="line.2755"></a>
-<span class="sourceLineNo">2756</span>      throw new RuntimeException("Coding error: should never see lists of varying size");<a name="line.2756"></a>
-<span class="sourceLineNo">2757</span>    }<a name="line.2757"></a>
-<span class="sourceLineNo">2758</span>    RegionServerServices rss = this.region.getRegionServerServices();<a name="line.2758"></a>
-<span class="sourceLineNo">2759</span>    if (rss == null) {<a name="line.2759"></a>
-<span class="sourceLineNo">2760</span>      return;<a name="line.2760"></a>
-<span class="sourceLineNo">2761</span>    }<a name="line.2761"></a>
-<span class="sourceLineNo">2762</span>    List&lt;Entry&lt;String,Long&gt;&gt; filesWithSizes = new ArrayList&lt;&gt;(archivedFiles.size());<a name="line.2762"></a>
-<span class="sourceLineNo">2763</span>    Iterator&lt;Long&gt; fileSizeIter = fileSizes.iterator();<a name="line.2763"></a>
-<span class="sourceLineNo">2764</span>    for (StoreFile storeFile : archivedFiles) {<a name="line.2764"></a>
-<span class="sourceLineNo">2765</span>      final long fileSize = fileSizeIter.next();<a name="line.2765"></a>
-<span class="sourceLineNo">2766</span>      if (storeFile.isHFile() &amp;&amp; fileSize != 0) {<a name="line.2766"></a>
-<span class="sourceLineNo">2767</span>        filesWithSizes.add(Maps.immutableEntry(storeFile.getPath().getName(), fileSize));<a name="line.2767"></a>
-<span class="sourceLineNo">2768</span>      }<a name="line.2768"></a>
-<span class="sourceLineNo">2769</span>    }<a name="line.2769"></a>
-<span class="sourceLineNo">2770</span>    if (LOG.isTraceEnabled()) {<a name="line.2770"></a>
-<span class="sourceLineNo">2771</span>      LOG.trace("Files archived: " + archivedFiles + ", reporting the following to the Master: "<a name="line.2771"></a>
-<span class="sourceLineNo">2772</span>          + filesWithSizes);<a name="line.2772"></a>
-<span class="sourceLineNo">2773</span>    }<a name="line.2773"></a>
-<span class="sourceLineNo">2774</span>    boolean success = rss.reportFileArchivalForQuotas(getTableName(), filesWithSizes);<a name="line.2774"></a>
-<span class="sourceLineNo">2775</span>    if (!success) {<a name="line.2775"></a>
-<span class="sourceLineNo">2776</span>      LOG.warn("Failed to report archival of files: " + filesWithSizes);<a name="line.2776"></a>
-<span class="sourceLineNo">2777</span>    }<a name="line.2777"></a>
-<span class="sourceLineNo">2778</span>  }<a name="line.2778"></a>
-<span class="sourceLineNo">2779</span><a name="line.2779"></a>
-<span class="sourceLineNo">2780</span>  @Override<a name="line.2780"></a>
-<span class="sourceLineNo">2781</span>  public int getCurrentParallelPutCount() {<a name="line.2781"></a>
-<span class="sourceLineNo">2782</span>    return currentParallelPutCount.get();<a name="line.2782"></a>
-<span class="sourceLineNo">2783</span>  }<a name="line.2783"></a>
-<span class="sourceLineNo">2784</span><a name="line.2784"></a>
-<span class="sourceLineNo">2785</span>  public int getStoreRefCount() {<a name="line.2785"></a>
-<span class="sourceLineNo">2786</span>    return this.storeEngine.getStoreFileManager().getStorefiles().stream()<a name="line.2786"></a>
-<span class="sourceLineNo">2787</span>      .filter(sf -&gt; sf.getReader() != null).filter(HStoreFile::isHFile)<a name="line.2787"></a>
-<span class="sourceLineNo">2788</span>      .mapToInt(HStoreFile::getRefCount).sum();<a name="line.2788"></a>
-<span class="sourceLineNo">2789</span>  }<a name="line.2789"></a>
-<span class="sourceLineNo">2790</span>}<a name="line.2790"></a>
+<span class="sourceLineNo">2751</span>    RegionServerServices rss = this.region.getRegionServerServices();<a name="line.2751"></a>
+<span class="sourceLineNo">2752</span>    if (rss == null) {<a name="line.2752"></a>
+<span class="sourceLineNo">2753</span>      return;<a name="line.2753"></a>
+<span class="sourceLineNo">2754</span>    }<a name="line.2754"></a>
+<span class="sourceLineNo">2755</span>    List&lt;Entry&lt;String,Long&gt;&gt; filesWithSizes = new ArrayList&lt;&gt;(archivedFiles.size());<a name="line.2755"></a>
+<span class="sourceLineNo">2756</span>    Iterator&lt;Long&gt; fileSizeIter = fileSizes.iterator();<a name="line.2756"></a>
+<span class="sourceLineNo">2757</span>    for (StoreFile storeFile : archivedFiles) {<a name="line.2757"></a>
+<span class="sourceLineNo">2758</span>      final long fileSize = fileSizeIter.next();<a name="line.2758"></a>
+<span class="sourceLineNo">2759</span>      if (storeFile.isHFile() &amp;&amp; fileSize != 0) {<a name="line.2759"></a>
+<span class="sourceLineNo">2760</span>        filesWithSizes.add(Maps.immutableEntry(storeFile.getPath().getName(), fileSize));<a name="line.2760"></a>
+<span class="sourceLineNo">2761</span>      }<a name="line.2761"></a>
+<span class="sourceLineNo">2762</span>    }<a name="line.2762"></a>
+<span class="sourceLineNo">2763</span>    if (LOG.isTraceEnabled()) {<a name="line.2763"></a>
+<span class="sourceLineNo">2764</span>      LOG.trace("Files archived: " + archivedFiles + ", reporting the following to the Master: "<a name="line.2764"></a>
+<span class="sourceLineNo">2765</span>          + filesWithSizes);<a name="line.2765"></a>
+<span class="sourceLineNo">2766</span>    }<a name="line.2766"></a>
+<span class="sourceLineNo">2767</span>    boolean success = rss.reportFileArchivalForQuotas(getTableName(), filesWithSizes);<a name="line.2767"></a>
+<span class="sourceLineNo">2768</span>    if (!success) {<a name="line.2768"></a>
+<span class="sourceLineNo">2769</span>      LOG.warn("Failed to report archival of files: " + filesWithSizes);<a name="line.2769"></a>
+<span class="sourceLineNo">2770</span>    }<a name="line.2770"></a>
+<span class="sourceLineNo">2771</span>  }<a name="line.2771"></a>
+<span class="sourceLineNo">2772</span><a name="line.2772"></a>
+<span class="sourceLineNo">2773</span>  @Override<a name="line.2773"></a>
+<span class="sourceLineNo">2774</span>  public int getCurrentParallelPutCount() {<a name="line.2774"></a>
+<span class="sourceLineNo">2775</span>    return currentParallelPutCount.get();<a name="line.2775"></a>
+<span class="sourceLineNo">2776</span>  }<a name="line.2776"></a>
+<span class="sourceLineNo">2777</span><a name="line.2777"></a>
+<span class="sourceLineNo">2778</span>  public int getStoreRefCount() {<a name="line.2778"></a>
+<span class="sourceLineNo">2779</span>    return this.storeEngine.getStoreFileManager().getStorefiles().stream()<a name="line.2779"></a>
+<span class="sourceLineNo">2780</span>      .filter(sf -&gt; sf.getReader() != null).filter(HStoreFile::isHFile)<a name="line.2780"></a>
+<span class="sourceLineNo">2781</span>      .mapToInt(HStoreFile::getRefCount).sum();<a name="line.2781"></a>
+<span class="sourceLineNo">2782</span>  }<a name="line.2782"></a>
+<span class="sourceLineNo">2783</span>}<a name="line.2783"></a>
 
 
 
diff --git a/downloads.html b/downloads.html
index 9dbf6af..7ba826e 100644
--- a/downloads.html
+++ b/downloads.html
@@ -411,7 +411,7 @@
         <div class="row">
             <p>Copyright &copy;2007&#x2013;2019
 <a href="https://www.apache.org/">The Apache Software Foundation</a>.
-All rights reserved.        <li id="publishDate" class="pull-right">Last Published: 2019-10-13</li>
+All rights reserved.        <li id="publishDate" class="pull-right">Last Published: 2019-10-14</li>
 </p>
         </div>
         <p id="poweredBy" class="pull-right"><a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy"><img class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" /></a>
diff --git a/export_control.html b/export_control.html
index 3254b68..fd4de70 100644
--- a/export_control.html
+++ b/export_control.html
@@ -173,7 +173,7 @@ for more details.</p>
         <div class="row">
             <p>Copyright &copy;2007&#x2013;2019
 <a href="https://www.apache.org/">The Apache Software Foundation</a>.
-All rights reserved.        <li id="publishDate" class="pull-right">Last Published: 2019-10-13</li>
+All rights reserved.        <li id="publishDate" class="pull-right">Last Published: 2019-10-14</li>
 </p>
         </div>
         <p id="poweredBy" class="pull-right"><a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy"><img class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" /></a>
diff --git a/index.html b/index.html
index 12fabe6..9e0ee65 100644
--- a/index.html
+++ b/index.html
@@ -251,7 +251,7 @@
         <div class="row">
             <p>Copyright &copy;2007&#x2013;2019
 <a href="https://www.apache.org/">The Apache Software Foundation</a>.
-All rights reserved.        <li id="publishDate" class="pull-right">Last Published: 2019-10-13</li>
+All rights reserved.        <li id="publishDate" class="pull-right">Last Published: 2019-10-14</li>
 </p>
         </div>
         <p id="poweredBy" class="pull-right"><a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy"><img class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" /></a>
diff --git a/issue-tracking.html b/issue-tracking.html
index 681644b..02c1d03 100644
--- a/issue-tracking.html
+++ b/issue-tracking.html
@@ -145,7 +145,7 @@
         <div class="row">
             <p>Copyright &copy;2007&#x2013;2019
 <a href="https://www.apache.org/">The Apache Software Foundation</a>.
-All rights reserved.        <li id="publishDate" class="pull-right">Last Published: 2019-10-13</li>
+All rights reserved.        <li id="publishDate" class="pull-right">Last Published: 2019-10-14</li>
 </p>
         </div>
         <p id="poweredBy" class="pull-right"><a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy"><img class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" /></a>
diff --git a/mail-lists.html b/mail-lists.html
index f2e4ba1..dc6427a 100644
--- a/mail-lists.html
+++ b/mail-lists.html
@@ -198,7 +198,7 @@
         <div class="row">
             <p>Copyright &copy;2007&#x2013;2019
 <a href="https://www.apache.org/">The Apache Software Foundation</a>.
-All rights reserved.        <li id="publishDate" class="pull-right">Last Published: 2019-10-13</li>
+All rights reserved.        <li id="publishDate" class="pull-right">Last Published: 2019-10-14</li>
 </p>
         </div>
         <p id="poweredBy" class="pull-right"><a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy"><img class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" /></a>
diff --git a/metrics.html b/metrics.html
index 6efbf91..6cbb794 100644
--- a/metrics.html
+++ b/metrics.html
@@ -301,7 +301,7 @@ export HBASE_REGIONSERVER_OPTS=&quot;$HBASE_JMX_OPTS -Dcom.sun.management.jmxrem
         <div class="row">
             <p>Copyright &copy;2007&#x2013;2019
 <a href="https://www.apache.org/">The Apache Software Foundation</a>.
-All rights reserved.        <li id="publishDate" class="pull-right">Last Published: 2019-10-13</li>
+All rights reserved.        <li id="publishDate" class="pull-right">Last Published: 2019-10-14</li>
 </p>
         </div>
         <p id="poweredBy" class="pull-right"><a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy"><img class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" /></a>
diff --git a/old_news.html b/old_news.html
index 8ddc3ee..9d08d80 100644
--- a/old_news.html
+++ b/old_news.html
@@ -292,7 +292,7 @@
         <div class="row">
             <p>Copyright &copy;2007&#x2013;2019
 <a href="https://www.apache.org/">The Apache Software Foundation</a>.
-All rights reserved.        <li id="publishDate" class="pull-right">Last Published: 2019-10-13</li>
+All rights reserved.        <li id="publishDate" class="pull-right">Last Published: 2019-10-14</li>
 </p>
         </div>
         <p id="poweredBy" class="pull-right"><a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy"><img class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" /></a>
diff --git a/plugin-management.html b/plugin-management.html
index 3828d6c..83cc2de 100644
--- a/plugin-management.html
+++ b/plugin-management.html
@@ -297,7 +297,7 @@
         <div class="row">
             <p>Copyright &copy;2007&#x2013;2019
 <a href="https://www.apache.org/">The Apache Software Foundation</a>.
-All rights reserved.        <li id="publishDate" class="pull-right">Last Published: 2019-10-13</li>
+All rights reserved.        <li id="publishDate" class="pull-right">Last Published: 2019-10-14</li>
 </p>
         </div>
         <p id="poweredBy" class="pull-right"><a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy"><img class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" /></a>
diff --git a/plugins.html b/plugins.html
index c1f46a2..5ed8995 100644
--- a/plugins.html
+++ b/plugins.html
@@ -224,7 +224,7 @@
         <div class="row">
             <p>Copyright &copy;2007&#x2013;2019
 <a href="https://www.apache.org/">The Apache Software Foundation</a>.
-All rights reserved.        <li id="publishDate" class="pull-right">Last Published: 2019-10-13</li>
+All rights reserved.        <li id="publishDate" class="pull-right">Last Published: 2019-10-14</li>
 </p>
         </div>
         <p id="poweredBy" class="pull-right"><a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy"><img class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" /></a>
diff --git a/poweredbyhbase.html b/poweredbyhbase.html
index 966cc39..f7ad404 100644
--- a/poweredbyhbase.html
+++ b/poweredbyhbase.html
@@ -611,7 +611,7 @@
         <div class="row">
             <p>Copyright &copy;2007&#x2013;2019
 <a href="https://www.apache.org/">The Apache Software Foundation</a>.
-All rights reserved.        <li id="publishDate" class="pull-right">Last Published: 2019-10-13</li>
+All rights reserved.        <li id="publishDate" class="pull-right">Last Published: 2019-10-14</li>
 </p>
         </div>
         <p id="poweredBy" class="pull-right"><a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy"><img class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" /></a>
diff --git a/project-info.html b/project-info.html
index 6e05931..74d2350 100644
--- a/project-info.html
+++ b/project-info.html
@@ -186,7 +186,7 @@
         <div class="row">
             <p>Copyright &copy;2007&#x2013;2019
 <a href="https://www.apache.org/">The Apache Software Foundation</a>.
-All rights reserved.        <li id="publishDate" class="pull-right">Last Published: 2019-10-13</li>
+All rights reserved.        <li id="publishDate" class="pull-right">Last Published: 2019-10-14</li>
 </p>
         </div>
         <p id="poweredBy" class="pull-right"><a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy"><img class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" /></a>
diff --git a/project-reports.html b/project-reports.html
index edaae4b..3030f8d 100644
--- a/project-reports.html
+++ b/project-reports.html
@@ -162,7 +162,7 @@
         <div class="row">
             <p>Copyright &copy;2007&#x2013;2019
 <a href="https://www.apache.org/">The Apache Software Foundation</a>.
-All rights reserved.        <li id="publishDate" class="pull-right">Last Published: 2019-10-13</li>
+All rights reserved.        <li id="publishDate" class="pull-right">Last Published: 2019-10-14</li>
 </p>
         </div>
         <p id="poweredBy" class="pull-right"><a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy"><img class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" /></a>
diff --git a/project-summary.html b/project-summary.html
index 8f21ecd..445b361 100644
--- a/project-summary.html
+++ b/project-summary.html
@@ -188,7 +188,7 @@
         <div class="row">
             <p>Copyright &copy;2007&#x2013;2019
 <a href="https://www.apache.org/">The Apache Software Foundation</a>.
-All rights reserved.        <li id="publishDate" class="pull-right">Last Published: 2019-10-13</li>
+All rights reserved.        <li id="publishDate" class="pull-right">Last Published: 2019-10-14</li>
 </p>
         </div>
         <p id="poweredBy" class="pull-right"><a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy"><img class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" /></a>
diff --git a/pseudo-distributed.html b/pseudo-distributed.html
index b508209..71cafba 100644
--- a/pseudo-distributed.html
+++ b/pseudo-distributed.html
@@ -150,7 +150,7 @@ Running Apache HBase (TM) in pseudo-distributed mode
         <div class="row">
             <p>Copyright &copy;2007&#x2013;2019
 <a href="https://www.apache.org/">The Apache Software Foundation</a>.
-All rights reserved.        <li id="publishDate" class="pull-right">Last Published: 2019-10-13</li>
+All rights reserved.        <li id="publishDate" class="pull-right">Last Published: 2019-10-14</li>
 </p>
         </div>
         <p id="poweredBy" class="pull-right"><a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy"><img class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" /></a>
diff --git a/replication.html b/replication.html
index 40cc723..1d65136 100644
--- a/replication.html
+++ b/replication.html
@@ -145,7 +145,7 @@
         <div class="row">
             <p>Copyright &copy;2007&#x2013;2019
 <a href="https://www.apache.org/">The Apache Software Foundation</a>.
-All rights reserved.        <li id="publishDate" class="pull-right">Last Published: 2019-10-13</li>
+All rights reserved.        <li id="publishDate" class="pull-right">Last Published: 2019-10-14</li>
 </p>
         </div>
         <p id="poweredBy" class="pull-right"><a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy"><img class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" /></a>
diff --git a/resources.html b/resources.html
index 68bae88..db7996c 100644
--- a/resources.html
+++ b/resources.html
@@ -173,7 +173,7 @@
         <div class="row">
             <p>Copyright &copy;2007&#x2013;2019
 <a href="https://www.apache.org/">The Apache Software Foundation</a>.
-All rights reserved.        <li id="publishDate" class="pull-right">Last Published: 2019-10-13</li>
+All rights reserved.        <li id="publishDate" class="pull-right">Last Published: 2019-10-14</li>
 </p>
         </div>
         <p id="poweredBy" class="pull-right"><a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy"><img class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" /></a>
diff --git a/source-repository.html b/source-repository.html
index b63c263..c76d7a3 100644
--- a/source-repository.html
+++ b/source-repository.html
@@ -156,7 +156,7 @@
         <div class="row">
             <p>Copyright &copy;2007&#x2013;2019
 <a href="https://www.apache.org/">The Apache Software Foundation</a>.
-All rights reserved.        <li id="publishDate" class="pull-right">Last Published: 2019-10-13</li>
+All rights reserved.        <li id="publishDate" class="pull-right">Last Published: 2019-10-14</li>
 </p>
         </div>
         <p id="poweredBy" class="pull-right"><a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy"><img class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" /></a>
diff --git a/sponsors.html b/sponsors.html
index 5205b90..d371f4b 100644
--- a/sponsors.html
+++ b/sponsors.html
@@ -175,7 +175,7 @@
         <div class="row">
             <p>Copyright &copy;2007&#x2013;2019
 <a href="https://www.apache.org/">The Apache Software Foundation</a>.
-All rights reserved.        <li id="publishDate" class="pull-right">Last Published: 2019-10-13</li>
+All rights reserved.        <li id="publishDate" class="pull-right">Last Published: 2019-10-14</li>
 </p>
         </div>
         <p id="poweredBy" class="pull-right"><a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy"><img class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" /></a>
diff --git a/supportingprojects.html b/supportingprojects.html
index 4cc436c..982268f 100644
--- a/supportingprojects.html
+++ b/supportingprojects.html
@@ -362,7 +362,7 @@
         <div class="row">
             <p>Copyright &copy;2007&#x2013;2019
 <a href="https://www.apache.org/">The Apache Software Foundation</a>.
-All rights reserved.        <li id="publishDate" class="pull-right">Last Published: 2019-10-13</li>
+All rights reserved.        <li id="publishDate" class="pull-right">Last Published: 2019-10-14</li>
 </p>
         </div>
         <p id="poweredBy" class="pull-right"><a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy"><img class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" /></a>
diff --git a/team-list.html b/team-list.html
index b4237c0..66ec3af 100644
--- a/team-list.html
+++ b/team-list.html
@@ -659,7 +659,7 @@
         <div class="row">
             <p>Copyright &copy;2007&#x2013;2019
 <a href="https://www.apache.org/">The Apache Software Foundation</a>.
-All rights reserved.        <li id="publishDate" class="pull-right">Last Published: 2019-10-13</li>
+All rights reserved.        <li id="publishDate" class="pull-right">Last Published: 2019-10-14</li>
 </p>
         </div>
         <p id="poweredBy" class="pull-right"><a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy"><img class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" /></a>