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/11/15 14:45:34 UTC

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

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 f831bf9  Published site at e60764f5a197540d06efd42c5dc7e936afe0af74.
f831bf9 is described below

commit f831bf94a8dd537bc9fb15071d0422cb63cc1ee3
Author: jenkins <bu...@apache.org>
AuthorDate: Fri Nov 15 14:45:10 2019 +0000

    Published site at e60764f5a197540d06efd42c5dc7e936afe0af74.
---
 acid-semantics.html                                |   2 +-
 apache_hbase_reference_guide.pdf                   |   4 +-
 apidocs/allclasses-frame.html                      |   6 +
 apidocs/allclasses-noframe.html                    |   6 +
 apidocs/constant-values.html                       |  19 +
 apidocs/index-all.html                             | 112 ++++
 apidocs/org/apache/hadoop/hbase/ChoreService.html  |   6 +-
 .../org/apache/hadoop/hbase/ScheduledChore.html    |  38 +-
 .../hadoop/hbase/util/ConfigurationUtil.html       |   4 +-
 .../hbase/util/ExponentialMovingAverage.html       | 179 ++++--
 .../hbase/util/FileSystemVersionException.html     |   4 +-
 apidocs/org/apache/hadoop/hbase/util/MD5Hash.html  |   4 +-
 .../util/{MD5Hash.html => MovingAverage.html}      | 157 +++--
 apidocs/org/apache/hadoop/hbase/util/Order.html    |   4 +-
 .../apache/hadoop/hbase/util/SimpleByteRange.html  |   4 +-
 .../hadoop/hbase/util/SimpleMovingAverage.html     | 115 ++--
 .../hadoop/hbase/util/SimpleMutableByteRange.html  |   4 +-
 .../util/SimplePositionedMutableByteRange.html     |   4 +-
 .../apache/hadoop/hbase/util/TimeMeasurable.html   |  53 +-
 .../org/apache/hadoop/hbase/util/VersionInfo.html  |   8 +-
 .../hadoop/hbase/util/WeightedMovingAverage.html   | 164 ++---
 .../hadoop/hbase/util/WindowMovingAverage.html     | 511 ++++++++++++++++
 .../util/class-use/ExponentialMovingAverage.html   | 125 ++++
 .../hadoop/hbase/util/class-use/MovingAverage.html | 187 ++++++
 .../hbase/util/class-use/SimpleMovingAverage.html  | 125 ++++
 .../hbase/util/class-use/TimeMeasurable.html       | 167 +++++
 .../util/class-use/WeightedMovingAverage.html      | 125 ++++
 .../hbase/util/class-use/WindowMovingAverage.html  | 175 ++++++
 .../apache/hadoop/hbase/util/package-frame.html    |   6 +
 .../apache/hadoop/hbase/util/package-summary.html  |  48 +-
 .../org/apache/hadoop/hbase/util/package-tree.html |  12 +
 .../org/apache/hadoop/hbase/util/package-use.html  |  21 +-
 apidocs/overview-tree.html                         |  12 +
 .../org/apache/hadoop/hbase/ChoreService.html      | 485 +++++++--------
 .../org/apache/hadoop/hbase/ScheduledChore.html    | 675 +++++++++++----------
 .../hbase/util/ExponentialMovingAverage.html       | 151 +++++
 .../apache/hadoop/hbase/util/MovingAverage.html    | 153 +++++
 .../hadoop/hbase/util/SimpleMovingAverage.html     | 117 ++++
 .../apache/hadoop/hbase/util/TimeMeasurable.html   | 107 ++++
 .../hadoop/hbase/util/WeightedMovingAverage.html   | 137 +++++
 .../hadoop/hbase/util/WindowMovingAverage.html     | 190 ++++++
 book.html                                          |   2 +-
 bulk-loads.html                                    |   2 +-
 checkstyle-aggregate.html                          |  22 +-
 checkstyle.rss                                     | 100 ++-
 coc.html                                           |   2 +-
 dependencies.html                                  |   2 +-
 dependency-convergence.html                        |   2 +-
 dependency-info.html                               |   2 +-
 dependency-management.html                         |   2 +-
 devapidocs/allclasses-frame.html                   |   6 +
 devapidocs/allclasses-noframe.html                 |   6 +
 devapidocs/constant-values.html                    |  23 +-
 devapidocs/index-all.html                          | 132 ++++
 .../ChoreService.ChoreServiceThreadFactory.html    |  12 +-
 .../org/apache/hadoop/hbase/ChoreService.html      |  34 +-
 .../hadoop/hbase/ScheduledChore.ChoreServicer.html |  12 +-
 .../org/apache/hadoop/hbase/ScheduledChore.html    | 105 ++--
 .../apache/hadoop/hbase/backup/package-tree.html   |   2 +-
 .../apache/hadoop/hbase/client/package-tree.html   |  18 +-
 .../hadoop/hbase/coprocessor/package-tree.html     |   2 +-
 .../apache/hadoop/hbase/executor/package-tree.html |   2 +-
 .../apache/hadoop/hbase/filter/package-tree.html   |   8 +-
 .../hadoop/hbase/hbtop/field/package-tree.html     |   2 +-
 .../hadoop/hbase/hbtop/terminal/package-tree.html  |   2 +-
 .../org/apache/hadoop/hbase/http/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       |   4 +-
 .../hbase/master/assignment/package-tree.html      |   2 +-
 .../apache/hadoop/hbase/master/package-tree.html   |   8 +-
 .../hbase/master/procedure/package-tree.html       |   4 +-
 .../hadoop/hbase/monitoring/package-tree.html      |   2 +-
 .../org/apache/hadoop/hbase/package-tree.html      |  18 +-
 .../hadoop/hbase/procedure2/package-tree.html      |   4 +-
 .../apache/hadoop/hbase/quotas/package-tree.html   |   6 +-
 .../hadoop/hbase/regionserver/package-tree.html    |  18 +-
 .../regionserver/querymatcher/package-tree.html    |   2 +-
 .../hbase/regionserver/wal/package-tree.html       |   4 +-
 .../replication/regionserver/package-tree.html     |   2 +-
 .../hadoop/hbase/security/access/package-tree.html |   6 +-
 .../apache/hadoop/hbase/security/package-tree.html |   4 +-
 .../apache/hadoop/hbase/thrift/package-tree.html   |   2 +-
 .../apache/hadoop/hbase/util/ExceptionUtil.html    |   4 +-
 .../hbase/util/ExponentialMovingAverage.html       | 452 ++++++++++++++
 .../apache/hadoop/hbase/util/FileStatusFilter.html |   4 +-
 .../util/ModifyRegionUtils.RegionFillTask.html     |   4 +-
 .../apache/hadoop/hbase/util/MovingAverage.html    | 175 ++++--
 .../hadoop/hbase/util/MunkresAssignment.html       |   4 +-
 .../apache/hadoop/hbase/util/SimpleByteRange.html  |   4 +-
 .../hadoop/hbase/util/SimpleMovingAverage.html     | 112 ++--
 .../hadoop/hbase/util/SimpleMutableByteRange.html  |   4 +-
 .../util/Threads.PrintThreadInfoLazyHolder.html    |   4 +-
 ...ils.RegionFillTask.html => TimeMeasurable.html} |  53 +-
 .../org/apache/hadoop/hbase/util/Triple.html       |   4 +-
 .../util/WeakObjectPool.WeakObjectReference.html   |   4 +-
 .../hadoop/hbase/util/WeightedMovingAverage.html   | 141 +++--
 .../hadoop/hbase/util/WindowMovingAverage.html     | 524 ++++++++++++++++
 .../org/apache/hadoop/hbase/util/Writables.html    |   4 +-
 .../util/class-use/ExponentialMovingAverage.html   | 125 ++++
 .../hadoop/hbase/util/class-use/MovingAverage.html | 209 +++++++
 .../hbase/util/class-use/SimpleMovingAverage.html  | 125 ++++
 .../hbase/util/class-use/TimeMeasurable.html       | 167 +++++
 .../util/class-use/WeightedMovingAverage.html      | 125 ++++
 .../hbase/util/class-use/WindowMovingAverage.html  | 175 ++++++
 .../apache/hadoop/hbase/util/package-frame.html    |   6 +
 .../apache/hadoop/hbase/util/package-summary.html  | 198 +++---
 .../org/apache/hadoop/hbase/util/package-tree.html |  22 +-
 .../org/apache/hadoop/hbase/util/package-use.html  |  74 ++-
 devapidocs/overview-tree.html                      |  12 +
 .../ChoreService.ChoreServiceThreadFactory.html    | 485 +++++++--------
 .../org/apache/hadoop/hbase/ChoreService.html      | 485 +++++++--------
 .../hadoop/hbase/ScheduledChore.ChoreServicer.html | 675 +++++++++++----------
 .../org/apache/hadoop/hbase/ScheduledChore.html    | 675 +++++++++++----------
 .../src-html/org/apache/hadoop/hbase/Version.html  |   4 +-
 .../master/cleaner/ReplicationBarrierCleaner.html  | 145 ++---
 .../hbase/util/ExponentialMovingAverage.html       | 151 +++++
 .../apache/hadoop/hbase/util/MovingAverage.html    | 153 +++++
 .../hadoop/hbase/util/SimpleMovingAverage.html     | 117 ++++
 .../apache/hadoop/hbase/util/TimeMeasurable.html   | 107 ++++
 .../hadoop/hbase/util/WeightedMovingAverage.html   | 137 +++++
 .../hadoop/hbase/util/WindowMovingAverage.html     | 190 ++++++
 downloads.html                                     |   2 +-
 export_control.html                                |   2 +-
 index.html                                         |   2 +-
 issue-tracking.html                                |   2 +-
 mail-lists.html                                    |   2 +-
 metrics.html                                       |   2 +-
 old_news.html                                      |   2 +-
 plugin-management.html                             |   2 +-
 plugins.html                                       |   2 +-
 poweredbyhbase.html                                |   2 +-
 project-info.html                                  |   2 +-
 project-reports.html                               |   2 +-
 project-summary.html                               |   2 +-
 pseudo-distributed.html                            |   2 +-
 replication.html                                   |   2 +-
 resources.html                                     |   2 +-
 source-repository.html                             |   2 +-
 sponsors.html                                      |   2 +-
 supportingprojects.html                            |   2 +-
 team-list.html                                     |   2 +-
 testdevapidocs/allclasses-frame.html               |   1 +
 testdevapidocs/allclasses-noframe.html             |   1 +
 testdevapidocs/index-all.html                      |  20 +
 .../apache/hadoop/hbase/backup/package-tree.html   |   2 +-
 .../hadoop/hbase/chaos/actions/package-tree.html   |   2 +-
 .../hadoop/hbase/class-use/HBaseClassTestRule.html | 102 ++--
 ...eplicationBarrierCleaner.WarnOnlyStoppable.html |   8 +-
 .../cleaner/TestReplicationBarrierCleaner.html     |  26 +-
 .../org/apache/hadoop/hbase/package-tree.html      |   8 +-
 .../hadoop/hbase/procedure/package-tree.html       |   8 +-
 .../hadoop/hbase/procedure2/package-tree.html      |   4 +-
 .../hadoop/hbase/regionserver/package-tree.html    |   4 +-
 .../org/apache/hadoop/hbase/test/package-tree.html |   4 +-
 .../hbase/util/TestMiniClusterLoadSequential.html  |   4 +-
 .../{TestOrder.html => TestMovingAverage.html}     | 125 +++-
 .../org/apache/hadoop/hbase/util/TestOrder.html    |   4 +-
 .../hbase/util/class-use/TestMovingAverage.html    | 125 ++++
 .../apache/hadoop/hbase/util/package-frame.html    |   1 +
 .../apache/hadoop/hbase/util/package-summary.html  |  46 +-
 .../org/apache/hadoop/hbase/util/package-tree.html |   1 +
 .../org/apache/hadoop/hbase/wal/package-tree.html  |   2 +-
 testdevapidocs/overview-tree.html                  |   1 +
 ...eplicationBarrierCleaner.WarnOnlyStoppable.html | 255 ++++----
 .../cleaner/TestReplicationBarrierCleaner.html     | 255 ++++----
 .../hadoop/hbase/util/TestMovingAverage.html       | 224 +++++++
 167 files changed, 9406 insertions(+), 2950 deletions(-)

diff --git a/acid-semantics.html b/acid-semantics.html
index f38d530..4f6ab6b 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-11-14</li>
+All rights reserved.        <li id="publishDate" class="pull-right">Last Published: 2019-11-15</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 fd0950c..777a7ec 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:20191114144313+00'00')
-/CreationDate (D:20191114144313+00'00')
+/ModDate (D:20191115144035+00'00')
+/CreationDate (D:20191115144035+00'00')
 >>
 endobj
 2 0 obj
diff --git a/apidocs/allclasses-frame.html b/apidocs/allclasses-frame.html
index 19b5331..09a8e22 100644
--- a/apidocs/allclasses-frame.html
+++ b/apidocs/allclasses-frame.html
@@ -117,6 +117,7 @@
 <li><a href="org/apache/hadoop/hbase/io/crypto/Encryptor.html" title="interface in org.apache.hadoop.hbase.io.crypto" target="classFrame"><span class="interfaceName">Encryptor</span></a></li>
 <li><a href="org/apache/hadoop/hbase/client/locking/EntityLock.html" title="class in org.apache.hadoop.hbase.client.locking" target="classFrame">EntityLock</a></li>
 <li><a href="org/apache/hadoop/hbase/client/backoff/ExponentialClientBackoffPolicy.html" title="class in org.apache.hadoop.hbase.client.backoff" target="classFrame">ExponentialClientBackoffPolicy</a></li>
+<li><a href="org/apache/hadoop/hbase/util/ExponentialMovingAverage.html" title="class in org.apache.hadoop.hbase.util" target="classFrame">ExponentialMovingAverage</a></li>
 <li><a href="org/apache/hadoop/hbase/mapreduce/Export.html" title="class in org.apache.hadoop.hbase.mapreduce" target="classFrame">Export</a></li>
 <li><a href="org/apache/hadoop/hbase/snapshot/ExportSnapshot.html" title="class in org.apache.hadoop.hbase.snapshot" target="classFrame">ExportSnapshot</a></li>
 <li><a href="org/apache/hadoop/hbase/snapshot/ExportSnapshotException.html" title="class in org.apache.hadoop.hbase.snapshot" target="classFrame">ExportSnapshotException</a></li>
@@ -184,6 +185,7 @@
 <li><a href="org/apache/hadoop/hbase/zookeeper/MiniZooKeeperCluster.html" title="class in org.apache.hadoop.hbase.zookeeper" target="classFrame">MiniZooKeeperCluster</a></li>
 <li><a href="org/apache/hadoop/hbase/client/MobCompactPartitionPolicy.html" title="enum in org.apache.hadoop.hbase.client" target="classFrame">MobCompactPartitionPolicy</a></li>
 <li><a href="org/apache/hadoop/hbase/mob/MobConstants.html" title="class in org.apache.hadoop.hbase.mob" target="classFrame">MobConstants</a></li>
+<li><a href="org/apache/hadoop/hbase/util/MovingAverage.html" title="class in org.apache.hadoop.hbase.util" target="classFrame">MovingAverage</a></li>
 <li><a href="org/apache/hadoop/hbase/MultiActionResultTooLarge.html" title="class in org.apache.hadoop.hbase" target="classFrame">MultiActionResultTooLarge</a></li>
 <li><a href="org/apache/hadoop/hbase/filter/MultipleColumnPrefixFilter.html" title="class in org.apache.hadoop.hbase.filter" target="classFrame">MultipleColumnPrefixFilter</a></li>
 <li><a href="org/apache/hadoop/hbase/filter/MultiRowRangeFilter.html" title="class in org.apache.hadoop.hbase.filter" target="classFrame">MultiRowRangeFilter</a></li>
@@ -316,6 +318,7 @@
 <li><a href="org/apache/hadoop/hbase/ipc/ServerTooBusyException.html" title="class in org.apache.hadoop.hbase.ipc" target="classFrame">ServerTooBusyException</a></li>
 <li><a href="org/apache/hadoop/hbase/client/ServiceCaller.html" title="interface in org.apache.hadoop.hbase.client" target="classFrame"><span class="interfaceName">ServiceCaller</span></a></li>
 <li><a href="org/apache/hadoop/hbase/util/SimpleByteRange.html" title="class in org.apache.hadoop.hbase.util" target="classFrame">SimpleByteRange</a></li>
+<li><a href="org/apache/hadoop/hbase/util/SimpleMovingAverage.html" title="class in org.apache.hadoop.hbase.util" target="classFrame">SimpleMovingAverage</a></li>
 <li><a href="org/apache/hadoop/hbase/util/SimpleMutableByteRange.html" title="class in org.apache.hadoop.hbase.util" target="classFrame">SimpleMutableByteRange</a></li>
 <li><a href="org/apache/hadoop/hbase/util/SimplePositionedByteRange.html" title="class in org.apache.hadoop.hbase.util" target="classFrame">SimplePositionedByteRange</a></li>
 <li><a href="org/apache/hadoop/hbase/util/SimplePositionedMutableByteRange.html" title="class in org.apache.hadoop.hbase.util" target="classFrame">SimplePositionedMutableByteRange</a></li>
@@ -378,6 +381,7 @@
 <li><a href="org/apache/hadoop/hbase/types/TerminatedWrapper.html" title="class in org.apache.hadoop.hbase.types" target="classFrame">TerminatedWrapper</a></li>
 <li><a href="org/apache/hadoop/hbase/mapreduce/TextSortReducer.html" title="class in org.apache.hadoop.hbase.mapreduce" target="classFrame">TextSortReducer</a></li>
 <li><a href="org/apache/hadoop/hbase/quotas/ThrottleType.html" title="enum in org.apache.hadoop.hbase.quotas" target="classFrame">ThrottleType</a></li>
+<li><a href="org/apache/hadoop/hbase/util/TimeMeasurable.html" title="interface in org.apache.hadoop.hbase.util" target="classFrame"><span class="interfaceName">TimeMeasurable</span></a></li>
 <li><a href="org/apache/hadoop/hbase/errorhandling/TimeoutException.html" title="class in org.apache.hadoop.hbase.errorhandling" target="classFrame">TimeoutException</a></li>
 <li><a href="org/apache/hadoop/hbase/io/TimeRange.html" title="class in org.apache.hadoop.hbase.io" target="classFrame">TimeRange</a></li>
 <li><a href="org/apache/hadoop/hbase/filter/TimestampsFilter.html" title="class in org.apache.hadoop.hbase.filter" target="classFrame">TimestampsFilter</a></li>
@@ -399,7 +403,9 @@
 <li><a href="org/apache/hadoop/hbase/mapreduce/VisibilityExpressionResolver.html" title="interface in org.apache.hadoop.hbase.mapreduce" target="classFrame"><span class="interfaceName">VisibilityExpressionResolver</span></a></li>
 <li><a href="org/apache/hadoop/hbase/mapreduce/WALInputFormat.html" title="class in org.apache.hadoop.hbase.mapreduce" target="classFrame">WALInputFormat</a></li>
 <li><a href="org/apache/hadoop/hbase/mapreduce/WALPlayer.html" title="class in org.apache.hadoop.hbase.mapreduce" target="classFrame">WALPlayer</a></li>
+<li><a href="org/apache/hadoop/hbase/util/WeightedMovingAverage.html" title="class in org.apache.hadoop.hbase.util" target="classFrame">WeightedMovingAverage</a></li>
 <li><a href="org/apache/hadoop/hbase/filter/WhileMatchFilter.html" title="class in org.apache.hadoop.hbase.filter" target="classFrame">WhileMatchFilter</a></li>
+<li><a href="org/apache/hadoop/hbase/util/WindowMovingAverage.html" title="class in org.apache.hadoop.hbase.util" target="classFrame">WindowMovingAverage</a></li>
 <li><a href="org/apache/hadoop/hbase/regionserver/WrongRegionException.html" title="class in org.apache.hadoop.hbase.regionserver" target="classFrame">WrongRegionException</a></li>
 <li><a href="org/apache/hadoop/hbase/client/WrongRowIOException.html" title="class in org.apache.hadoop.hbase.client" target="classFrame">WrongRowIOException</a></li>
 <li><a href="org/apache/hadoop/hbase/ipc/WrongVersionException.html" title="class in org.apache.hadoop.hbase.ipc" target="classFrame">WrongVersionException</a></li>
diff --git a/apidocs/allclasses-noframe.html b/apidocs/allclasses-noframe.html
index ff45322..4847be5 100644
--- a/apidocs/allclasses-noframe.html
+++ b/apidocs/allclasses-noframe.html
@@ -117,6 +117,7 @@
 <li><a href="org/apache/hadoop/hbase/io/crypto/Encryptor.html" title="interface in org.apache.hadoop.hbase.io.crypto"><span class="interfaceName">Encryptor</span></a></li>
 <li><a href="org/apache/hadoop/hbase/client/locking/EntityLock.html" title="class in org.apache.hadoop.hbase.client.locking">EntityLock</a></li>
 <li><a href="org/apache/hadoop/hbase/client/backoff/ExponentialClientBackoffPolicy.html" title="class in org.apache.hadoop.hbase.client.backoff">ExponentialClientBackoffPolicy</a></li>
+<li><a href="org/apache/hadoop/hbase/util/ExponentialMovingAverage.html" title="class in org.apache.hadoop.hbase.util">ExponentialMovingAverage</a></li>
 <li><a href="org/apache/hadoop/hbase/mapreduce/Export.html" title="class in org.apache.hadoop.hbase.mapreduce">Export</a></li>
 <li><a href="org/apache/hadoop/hbase/snapshot/ExportSnapshot.html" title="class in org.apache.hadoop.hbase.snapshot">ExportSnapshot</a></li>
 <li><a href="org/apache/hadoop/hbase/snapshot/ExportSnapshotException.html" title="class in org.apache.hadoop.hbase.snapshot">ExportSnapshotException</a></li>
@@ -184,6 +185,7 @@
 <li><a href="org/apache/hadoop/hbase/zookeeper/MiniZooKeeperCluster.html" title="class in org.apache.hadoop.hbase.zookeeper">MiniZooKeeperCluster</a></li>
 <li><a href="org/apache/hadoop/hbase/client/MobCompactPartitionPolicy.html" title="enum in org.apache.hadoop.hbase.client">MobCompactPartitionPolicy</a></li>
 <li><a href="org/apache/hadoop/hbase/mob/MobConstants.html" title="class in org.apache.hadoop.hbase.mob">MobConstants</a></li>
+<li><a href="org/apache/hadoop/hbase/util/MovingAverage.html" title="class in org.apache.hadoop.hbase.util">MovingAverage</a></li>
 <li><a href="org/apache/hadoop/hbase/MultiActionResultTooLarge.html" title="class in org.apache.hadoop.hbase">MultiActionResultTooLarge</a></li>
 <li><a href="org/apache/hadoop/hbase/filter/MultipleColumnPrefixFilter.html" title="class in org.apache.hadoop.hbase.filter">MultipleColumnPrefixFilter</a></li>
 <li><a href="org/apache/hadoop/hbase/filter/MultiRowRangeFilter.html" title="class in org.apache.hadoop.hbase.filter">MultiRowRangeFilter</a></li>
@@ -316,6 +318,7 @@
 <li><a href="org/apache/hadoop/hbase/ipc/ServerTooBusyException.html" title="class in org.apache.hadoop.hbase.ipc">ServerTooBusyException</a></li>
 <li><a href="org/apache/hadoop/hbase/client/ServiceCaller.html" title="interface in org.apache.hadoop.hbase.client"><span class="interfaceName">ServiceCaller</span></a></li>
 <li><a href="org/apache/hadoop/hbase/util/SimpleByteRange.html" title="class in org.apache.hadoop.hbase.util">SimpleByteRange</a></li>
+<li><a href="org/apache/hadoop/hbase/util/SimpleMovingAverage.html" title="class in org.apache.hadoop.hbase.util">SimpleMovingAverage</a></li>
 <li><a href="org/apache/hadoop/hbase/util/SimpleMutableByteRange.html" title="class in org.apache.hadoop.hbase.util">SimpleMutableByteRange</a></li>
 <li><a href="org/apache/hadoop/hbase/util/SimplePositionedByteRange.html" title="class in org.apache.hadoop.hbase.util">SimplePositionedByteRange</a></li>
 <li><a href="org/apache/hadoop/hbase/util/SimplePositionedMutableByteRange.html" title="class in org.apache.hadoop.hbase.util">SimplePositionedMutableByteRange</a></li>
@@ -378,6 +381,7 @@
 <li><a href="org/apache/hadoop/hbase/types/TerminatedWrapper.html" title="class in org.apache.hadoop.hbase.types">TerminatedWrapper</a></li>
 <li><a href="org/apache/hadoop/hbase/mapreduce/TextSortReducer.html" title="class in org.apache.hadoop.hbase.mapreduce">TextSortReducer</a></li>
 <li><a href="org/apache/hadoop/hbase/quotas/ThrottleType.html" title="enum in org.apache.hadoop.hbase.quotas">ThrottleType</a></li>
+<li><a href="org/apache/hadoop/hbase/util/TimeMeasurable.html" title="interface in org.apache.hadoop.hbase.util"><span class="interfaceName">TimeMeasurable</span></a></li>
 <li><a href="org/apache/hadoop/hbase/errorhandling/TimeoutException.html" title="class in org.apache.hadoop.hbase.errorhandling">TimeoutException</a></li>
 <li><a href="org/apache/hadoop/hbase/io/TimeRange.html" title="class in org.apache.hadoop.hbase.io">TimeRange</a></li>
 <li><a href="org/apache/hadoop/hbase/filter/TimestampsFilter.html" title="class in org.apache.hadoop.hbase.filter">TimestampsFilter</a></li>
@@ -399,7 +403,9 @@
 <li><a href="org/apache/hadoop/hbase/mapreduce/VisibilityExpressionResolver.html" title="interface in org.apache.hadoop.hbase.mapreduce"><span class="interfaceName">VisibilityExpressionResolver</span></a></li>
 <li><a href="org/apache/hadoop/hbase/mapreduce/WALInputFormat.html" title="class in org.apache.hadoop.hbase.mapreduce">WALInputFormat</a></li>
 <li><a href="org/apache/hadoop/hbase/mapreduce/WALPlayer.html" title="class in org.apache.hadoop.hbase.mapreduce">WALPlayer</a></li>
+<li><a href="org/apache/hadoop/hbase/util/WeightedMovingAverage.html" title="class in org.apache.hadoop.hbase.util">WeightedMovingAverage</a></li>
 <li><a href="org/apache/hadoop/hbase/filter/WhileMatchFilter.html" title="class in org.apache.hadoop.hbase.filter">WhileMatchFilter</a></li>
+<li><a href="org/apache/hadoop/hbase/util/WindowMovingAverage.html" title="class in org.apache.hadoop.hbase.util">WindowMovingAverage</a></li>
 <li><a href="org/apache/hadoop/hbase/regionserver/WrongRegionException.html" title="class in org.apache.hadoop.hbase.regionserver">WrongRegionException</a></li>
 <li><a href="org/apache/hadoop/hbase/client/WrongRowIOException.html" title="class in org.apache.hadoop.hbase.client">WrongRowIOException</a></li>
 <li><a href="org/apache/hadoop/hbase/ipc/WrongVersionException.html" title="class in org.apache.hadoop.hbase.ipc">WrongVersionException</a></li>
diff --git a/apidocs/constant-values.html b/apidocs/constant-values.html
index 392445a..d16c175 100644
--- a/apidocs/constant-values.html
+++ b/apidocs/constant-values.html
@@ -5413,6 +5413,25 @@
 </tbody>
 </table>
 </li>
+<li class="blockList">
+<table class="constantsSummary" border="0" cellpadding="3" cellspacing="0" summary="Constant Field Values table, listing constant fields, and values">
+<caption><span>org.apache.hadoop.hbase.util.<a href="org/apache/hadoop/hbase/util/WindowMovingAverage.html" title="class in org.apache.hadoop.hbase.util">WindowMovingAverage</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th scope="col">Constant Field</th>
+<th class="colLast" scope="col">Value</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a name="org.apache.hadoop.hbase.util.WindowMovingAverage.DEFAULT_SIZE">
+<!--   -->
+</a><code>protected&nbsp;static&nbsp;final&nbsp;int</code></td>
+<td><code><a href="org/apache/hadoop/hbase/util/WindowMovingAverage.html#DEFAULT_SIZE">DEFAULT_SIZE</a></code></td>
+<td class="colLast"><code>5</code></td>
+</tr>
+</tbody>
+</table>
+</li>
 </ul>
 </div>
 <!-- ======= START OF BOTTOM NAVBAR ====== -->
diff --git a/apidocs/index-all.html b/apidocs/index-all.html
index 303f76a..2973c1a 100644
--- a/apidocs/index-all.html
+++ b/apidocs/index-all.html
@@ -2319,6 +2319,8 @@
 <dd>
 <div class="block">Snapshot was corrupt for some reason.</div>
 </dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/util/SimpleMovingAverage.html#count">count</a></span> - Variable in class org.apache.hadoop.hbase.util.<a href="org/apache/hadoop/hbase/util/SimpleMovingAverage.html" title="class in org.apache.hadoop.hbase.util">SimpleMovingAverage</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/HConstants.html#CP_HTD_ATTR_INCLUSION_KEY">CP_HTD_ATTR_INCLUSION_KEY</a></span> - Static variable in class org.apache.hadoop.hbase.<a href="org/apache/hadoop/hbase/HConstants.html" title="class in org.apache.hadoop.hbase">HConstants</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/HConstants.html#CP_HTD_ATTR_KEY_PATTERN">CP_HTD_ATTR_KEY_PATTERN</a></span> - Static variable in class org.apache.hadoop.hbase.<a href="org/apache/hadoop/hbase/HConstants.html" title="class in org.apache.hadoop.hbase">HConstants</a></dt>
@@ -3529,6 +3531,8 @@
 &nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/util/RegionMover.html#DEFAULT_SERVERSTART_WAIT_MAX">DEFAULT_SERVERSTART_WAIT_MAX</a></span> - Static variable in class org.apache.hadoop.hbase.util.<a href="org/apache/hadoop/hbase/util/RegionMover.html" title="class in org.apache.hadoop.hbase.util">RegionMover</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/util/WindowMovingAverage.html#DEFAULT_SIZE">DEFAULT_SIZE</a></span> - Static variable in class org.apache.hadoop.hbase.util.<a href="org/apache/hadoop/hbase/util/WindowMovingAverage.html" title="class in org.apache.hadoop.hbase.util">WindowMovingAverage</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/HConstants.html#DEFAULT_SNAPSHOT_RESTORE_FAILSAFE_NAME">DEFAULT_SNAPSHOT_RESTORE_FAILSAFE_NAME</a></span> - Static variable in class org.apache.hadoop.hbase.<a href="org/apache/hadoop/hbase/HConstants.html" title="class in org.apache.hadoop.hbase">HConstants</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/HConstants.html#DEFAULT_SNAPSHOT_RESTORE_TAKE_FAILSAFE_SNAPSHOT">DEFAULT_SNAPSHOT_RESTORE_TAKE_FAILSAFE_SNAPSHOT</a></span> - Static variable in class org.apache.hadoop.hbase.<a href="org/apache/hadoop/hbase/HConstants.html" title="class in org.apache.hadoop.hbase">HConstants</a></dt>
@@ -4434,6 +4438,10 @@
 </dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/mapreduce/WALInputFormat.html#END_TIME_KEY">END_TIME_KEY</a></span> - Static variable in class org.apache.hadoop.hbase.mapreduce.<a href="org/apache/hadoop/hbase/mapreduce/WALInputFormat.html" title="class in org.apache.hadoop.hbase.mapreduce">WALInputFormat</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/util/WindowMovingAverage.html#enoughStatistics--">enoughStatistics()</a></span> - Method in class org.apache.hadoop.hbase.util.<a href="org/apache/hadoop/hbase/util/WindowMovingAverage.html" title="class in org.apache.hadoop.hbase.util">WindowMovingAverage</a></dt>
+<dd>
+<div class="block">Check if there are enough statistics.</div>
+</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/HConstants.html#ENSEMBLE_TABLE_NAME">ENSEMBLE_TABLE_NAME</a></span> - Static variable in class org.apache.hadoop.hbase.<a href="org/apache/hadoop/hbase/HConstants.html" title="class in org.apache.hadoop.hbase">HConstants</a></dt>
 <dd>
 <div class="block">The name of the ensemble table</div>
@@ -4657,6 +4665,19 @@
 </dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/backoff/ExponentialClientBackoffPolicy.html#ExponentialClientBackoffPolicy-org.apache.hadoop.conf.Configuration-">ExponentialClientBackoffPolicy(Configuration)</a></span> - Constructor for class org.apache.hadoop.hbase.client.backoff.<a href="org/apache/hadoop/hbase/client/backoff/ExponentialClientBackoffPolicy.html" title="class in org.apache.hadoop.hbase.client.backoff">ExponentialClientBackoffPolicy</a></dt>
 <dd>&nbsp;</dd>
+<dt><a href="org/apache/hadoop/hbase/util/ExponentialMovingAverage.html" title="class in org.apache.hadoop.hbase.util"><span class="typeNameLink">ExponentialMovingAverage</span></a> - Class in <a href="org/apache/hadoop/hbase/util/package-summary.html">org.apache.hadoop.hbase.util</a></dt>
+<dd>
+<div class="block">EMA is similar to <a href="org/apache/hadoop/hbase/util/WeightedMovingAverage.html" title="class in org.apache.hadoop.hbase.util"><code>WeightedMovingAverage</code></a> in weighted, but the weighting factor decrease
+ exponentially.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/util/ExponentialMovingAverage.html#ExponentialMovingAverage--">ExponentialMovingAverage()</a></span> - Constructor for class org.apache.hadoop.hbase.util.<a href="org/apache/hadoop/hbase/util/ExponentialMovingAverage.html" title="class in org.apache.hadoop.hbase.util">ExponentialMovingAverage</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/util/ExponentialMovingAverage.html#ExponentialMovingAverage-double-">ExponentialMovingAverage(double)</a></span> - Constructor for class org.apache.hadoop.hbase.util.<a href="org/apache/hadoop/hbase/util/ExponentialMovingAverage.html" title="class in org.apache.hadoop.hbase.util">ExponentialMovingAverage</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/util/ExponentialMovingAverage.html#ExponentialMovingAverage-int-">ExponentialMovingAverage(int)</a></span> - Constructor for class org.apache.hadoop.hbase.util.<a href="org/apache/hadoop/hbase/util/ExponentialMovingAverage.html" title="class in org.apache.hadoop.hbase.util">ExponentialMovingAverage</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/util/ExponentialMovingAverage.html#ExponentialMovingAverage-int-double-">ExponentialMovingAverage(int, double)</a></span> - Constructor for class org.apache.hadoop.hbase.util.<a href="org/apache/hadoop/hbase/util/ExponentialMovingAverage.html" title="class in org.apache.hadoop.hbase.util">ExponentialMovingAverage</a></dt>
+<dd>&nbsp;</dd>
 <dt><a href="org/apache/hadoop/hbase/mapreduce/Export.html" title="class in org.apache.hadoop.hbase.mapreduce"><span class="typeNameLink">Export</span></a> - Class in <a href="org/apache/hadoop/hbase/mapreduce/package-summary.html">org.apache.hadoop.hbase.mapreduce</a></dt>
 <dd>
 <div class="block">Export an HBase table.</div>
@@ -5371,6 +5392,18 @@
 </dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/ClusterMetrics.html#getAverageLoad--">getAverageLoad()</a></span> - Method in interface org.apache.hadoop.hbase.<a href="org/apache/hadoop/hbase/ClusterMetrics.html" title="interface in org.apache.hadoop.hbase">ClusterMetrics</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/util/ExponentialMovingAverage.html#getAverageTime--">getAverageTime()</a></span> - Method in class org.apache.hadoop.hbase.util.<a href="org/apache/hadoop/hbase/util/ExponentialMovingAverage.html" title="class in org.apache.hadoop.hbase.util">ExponentialMovingAverage</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/util/MovingAverage.html#getAverageTime--">getAverageTime()</a></span> - Method in class org.apache.hadoop.hbase.util.<a href="org/apache/hadoop/hbase/util/MovingAverage.html" title="class in org.apache.hadoop.hbase.util">MovingAverage</a></dt>
+<dd>
+<div class="block">Get average execution time of the measured method.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/util/SimpleMovingAverage.html#getAverageTime--">getAverageTime()</a></span> - Method in class org.apache.hadoop.hbase.util.<a href="org/apache/hadoop/hbase/util/SimpleMovingAverage.html" title="class in org.apache.hadoop.hbase.util">SimpleMovingAverage</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/util/WeightedMovingAverage.html#getAverageTime--">getAverageTime()</a></span> - Method in class org.apache.hadoop.hbase.util.<a href="org/apache/hadoop/hbase/util/WeightedMovingAverage.html" title="class in org.apache.hadoop.hbase.util">WeightedMovingAverage</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/util/WindowMovingAverage.html#getAverageTime--">getAverageTime()</a></span> - Method in class org.apache.hadoop.hbase.util.<a href="org/apache/hadoop/hbase/util/WindowMovingAverage.html" title="class in org.apache.hadoop.hbase.util">WindowMovingAverage</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/backoff/ClientBackoffPolicy.html#getBackoffTime-org.apache.hadoop.hbase.ServerName-byte:A-org.apache.hadoop.hbase.client.backoff.ServerStatistics-">getBackoffTime(ServerName, byte[], ServerStatistics)</a></span> - Method in interface org.apache.hadoop.hbase.client.backoff.<a href="org/apache/hadoop/hbase/client/backoff/ClientBackoffPolicy.html" title="interface in org.apache.hadoop.hbase.client.backoff">ClientBackof [...]
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/backoff/ExponentialClientBackoffPolicy.html#getBackoffTime-org.apache.hadoop.hbase.ServerName-byte:A-org.apache.hadoop.hbase.client.backoff.ServerStatistics-">getBackoffTime(ServerName, byte[], ServerStatistics)</a></span> - Method in class org.apache.hadoop.hbase.client.backoff.<a href="org/apache/hadoop/hbase/client/backoff/ExponentialClientBackoffPolicy.html" title="class in org.apache.hadoop.hbase.client.backoff [...]
@@ -6544,6 +6577,8 @@
 <dd>
 <div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
 &nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/util/WindowMovingAverage.html#getMostRecentPosistion--">getMostRecentPosistion()</a></span> - Method in class org.apache.hadoop.hbase.util.<a href="org/apache/hadoop/hbase/util/WindowMovingAverage.html" title="class in org.apache.hadoop.hbase.util">WindowMovingAverage</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/RowMutations.html#getMutations--">getMutations()</a></span> - Method in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/RowMutations.html" title="class in org.apache.hadoop.hbase.client">RowMutations</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/AsyncBufferedMutator.html#getName--">getName()</a></span> - Method in interface org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/AsyncBufferedMutator.html" title="interface in org.apache.hadoop.hbase.client">AsyncBufferedMutator</a></dt>
@@ -6698,6 +6733,8 @@
 <dd>
 <div class="block">Map of families to their most recent qualifiers and values.</div>
 </dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/util/WindowMovingAverage.html#getNumberOfStatistics--">getNumberOfStatistics()</a></span> - Method in class org.apache.hadoop.hbase.util.<a href="org/apache/hadoop/hbase/util/WindowMovingAverage.html" title="class in org.apache.hadoop.hbase.util">WindowMovingAverage</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/RequestController.html#getNumberOfTasksInProgress--">getNumberOfTasksInProgress()</a></span> - Method in interface org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/RequestController.html" title="interface in org.apache.hadoop.hbase.client">RequestController</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/RetriesExhaustedWithDetailsException.html#getNumExceptions--">getNumExceptions()</a></span> - Method in exception org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/RetriesExhaustedWithDetailsException.html" title="class in org.apache.hadoop.hbase.client">RetriesExhaustedWithDetailsException</a></dt>
@@ -7561,6 +7598,10 @@
 <dd>
 <div class="block">Returns the start row.</div>
 </dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/util/WindowMovingAverage.html#getStatisticsAtIndex-int-">getStatisticsAtIndex(int)</a></span> - Method in class org.apache.hadoop.hbase.util.<a href="org/apache/hadoop/hbase/util/WindowMovingAverage.html" title="class in org.apache.hadoop.hbase.util">WindowMovingAverage</a></dt>
+<dd>
+<div class="block">Get statistics at index.</div>
+</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/Result.html#getStats--">getStats()</a></span> - Method in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/Result.html" title="class in org.apache.hadoop.hbase.client">Result</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/ScheduledChore.html#getStopper--">getStopper()</a></span> - Method in class org.apache.hadoop.hbase.<a href="org/apache/hadoop/hbase/ScheduledChore.html" title="class in org.apache.hadoop.hbase">ScheduledChore</a></dt>
@@ -10231,6 +10272,8 @@
 </dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/rest/client/Cluster.html#lastHost">lastHost</a></span> - Variable in class org.apache.hadoop.hbase.rest.client.<a href="org/apache/hadoop/hbase/rest/client/Cluster.html" title="class in org.apache.hadoop.hbase.rest.client">Cluster</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/util/WindowMovingAverage.html#lastN">lastN</a></span> - Variable in class org.apache.hadoop.hbase.util.<a href="org/apache/hadoop/hbase/util/WindowMovingAverage.html" title="class in org.apache.hadoop.hbase.util">WindowMovingAverage</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/HConstants.html#LATEST_TIMESTAMP">LATEST_TIMESTAMP</a></span> - Static variable in class org.apache.hadoop.hbase.<a href="org/apache/hadoop/hbase/HConstants.html" title="class in org.apache.hadoop.hbase">HConstants</a></dt>
 <dd>
 <div class="block">Timestamp to use when we want to refer to the latest cell.</div>
@@ -10911,6 +10954,14 @@
 </dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/util/MD5Hash.html#MD5Hash--">MD5Hash()</a></span> - Constructor for class org.apache.hadoop.hbase.util.<a href="org/apache/hadoop/hbase/util/MD5Hash.html" title="class in org.apache.hadoop.hbase.util">MD5Hash</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/util/MovingAverage.html#measure-org.apache.hadoop.hbase.util.TimeMeasurable-">measure(TimeMeasurable&lt;T&gt;)</a></span> - Method in class org.apache.hadoop.hbase.util.<a href="org/apache/hadoop/hbase/util/MovingAverage.html" title="class in org.apache.hadoop.hbase.util">MovingAverage</a></dt>
+<dd>
+<div class="block">Measure elapsed time of a measurable method.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/util/TimeMeasurable.html#measure--">measure()</a></span> - Method in interface org.apache.hadoop.hbase.util.<a href="org/apache/hadoop/hbase/util/TimeMeasurable.html" title="interface in org.apache.hadoop.hbase.util">TimeMeasurable</a></dt>
+<dd>
+<div class="block">Measure elapsed time.</div>
+</dd>
 <dt><a href="org/apache/hadoop/hbase/MemoryCompactionPolicy.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">MemoryCompactionPolicy</span></a> - Enum in <a href="org/apache/hadoop/hbase/package-summary.html">org.apache.hadoop.hbase</a></dt>
 <dd>
 <div class="block">Enum describing all possible memory compaction policies</div>
@@ -11206,6 +11257,8 @@
 <dd>
 <div class="block">Modify an existing table, more IRB (ruby) friendly version.</div>
 </dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/util/WindowMovingAverage.html#mostRecent">mostRecent</a></span> - Variable in class org.apache.hadoop.hbase.util.<a href="org/apache/hadoop/hbase/util/WindowMovingAverage.html" title="class in org.apache.hadoop.hbase.util">WindowMovingAverage</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/Admin.html#move-byte:A-">move(byte[])</a></span> - Method in interface org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/Admin.html" title="interface in org.apache.hadoop.hbase.client">Admin</a></dt>
 <dd>
 <div class="block">Move the region <code>encodedRegionName</code> to a random server.</div>
@@ -11234,6 +11287,18 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/util/RegionMover.html#MOVE_WAIT_MAX_KEY">MOVE_WAIT_MAX_KEY</a></span> - Static variable in class org.apache.hadoop.hbase.util.<a href="org/apache/hadoop/hbase/util/RegionMover.html" title="class in org.apache.hadoop.hbase.util">RegionMover</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/util/WindowMovingAverage.html#moveForwardMostRecentPosistion--">moveForwardMostRecentPosistion()</a></span> - Method in class org.apache.hadoop.hbase.util.<a href="org/apache/hadoop/hbase/util/WindowMovingAverage.html" title="class in org.apache.hadoop.hbase.util">WindowMovingAverage</a></dt>
+<dd>
+<div class="block">Move forward the most recent index.</div>
+</dd>
+<dt><a href="org/apache/hadoop/hbase/util/MovingAverage.html" title="class in org.apache.hadoop.hbase.util"><span class="typeNameLink">MovingAverage</span></a>&lt;<a href="org/apache/hadoop/hbase/util/MovingAverage.html" title="type parameter in MovingAverage">T</a>&gt; - Class in <a href="org/apache/hadoop/hbase/util/package-summary.html">org.apache.hadoop.hbase.util</a></dt>
+<dd>
+<div class="block">The purpose of introduction of <a href="org/apache/hadoop/hbase/util/MovingAverage.html" title="class in org.apache.hadoop.hbase.util"><code>MovingAverage</code></a> mainly is to measure execution time of a
+ specific method, which can help us to know its performance fluctuation in response to different
+ machine states or situations, better case, then to act accordingly.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/util/MovingAverage.html#MovingAverage--">MovingAverage()</a></span> - Constructor for class org.apache.hadoop.hbase.util.<a href="org/apache/hadoop/hbase/util/MovingAverage.html" title="class in org.apache.hadoop.hbase.util">MovingAverage</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/mapreduce/WALPlayer.html#MULTI_TABLES_SUPPORT">MULTI_TABLES_SUPPORT</a></span> - Static variable in class org.apache.hadoop.hbase.mapreduce.<a href="org/apache/hadoop/hbase/mapreduce/WALPlayer.html" title="class in org.apache.hadoop.hbase.mapreduce">WALPlayer</a></dt>
 <dd>&nbsp;</dd>
 <dt><a href="org/apache/hadoop/hbase/MultiActionResultTooLarge.html" title="class in org.apache.hadoop.hbase"><span class="typeNameLink">MultiActionResultTooLarge</span></a> - Exception in <a href="org/apache/hadoop/hbase/package-summary.html">org.apache.hadoop.hbase</a></dt>
@@ -11750,6 +11815,8 @@
 <dd>
 <div class="block">Indicate that the scan operation is completed normally.</div>
 </dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/util/WindowMovingAverage.html#oneRound">oneRound</a></span> - Variable in class org.apache.hadoop.hbase.util.<a href="org/apache/hadoop/hbase/util/WindowMovingAverage.html" title="class in org.apache.hadoop.hbase.util">WindowMovingAverage</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/AsyncTable.CoprocessorCallback.html#onError-java.lang.Throwable-">onError(Throwable)</a></span> - Method in interface org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/AsyncTable.CoprocessorCallback.html" title="interface in org.apache.hadoop.hbase.client">AsyncTable.CoprocessorCallback</a></dt>
 <dd>
 <div class="block">Indicate that we got an error which does not belong to any regions.</div>
@@ -15830,6 +15897,12 @@ Input/OutputFormats, a table indexing MapReduce job, and utility methods.</div>
 <dd>
 <div class="block">Create a new <code>ByteRange</code> over the provided <code>bytes</code>.</div>
 </dd>
+<dt><a href="org/apache/hadoop/hbase/util/SimpleMovingAverage.html" title="class in org.apache.hadoop.hbase.util"><span class="typeNameLink">SimpleMovingAverage</span></a> - Class in <a href="org/apache/hadoop/hbase/util/package-summary.html">org.apache.hadoop.hbase.util</a></dt>
+<dd>
+<div class="block">SMA measure the overall average execution time of a specific method.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/util/SimpleMovingAverage.html#SimpleMovingAverage--">SimpleMovingAverage()</a></span> - Constructor for class org.apache.hadoop.hbase.util.<a href="org/apache/hadoop/hbase/util/SimpleMovingAverage.html" title="class in org.apache.hadoop.hbase.util">SimpleMovingAverage</a></dt>
+<dd>&nbsp;</dd>
 <dt><a href="org/apache/hadoop/hbase/util/SimpleMutableByteRange.html" title="class in org.apache.hadoop.hbase.util"><span class="typeNameLink">SimpleMutableByteRange</span></a> - Class in <a href="org/apache/hadoop/hbase/util/package-summary.html">org.apache.hadoop.hbase.util</a></dt>
 <dd>
 <div class="block">A basic mutable <a href="org/apache/hadoop/hbase/util/ByteRange.html" title="interface in org.apache.hadoop.hbase.util"><code>ByteRange</code></a> implementation.</div>
@@ -16289,6 +16362,10 @@ Input/OutputFormats, a table indexing MapReduce job, and utility methods.</div>
 <div class="block"><span class="deprecationComment">since 0.90.0</span></div>
 </div>
 </dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/util/MovingAverage.html#start--">start()</a></span> - Method in class org.apache.hadoop.hbase.util.<a href="org/apache/hadoop/hbase/util/MovingAverage.html" title="class in org.apache.hadoop.hbase.util">MovingAverage</a></dt>
+<dd>
+<div class="block">Mark start time of an execution.</div>
+</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/mapreduce/WALInputFormat.html#START_TIME_KEY">START_TIME_KEY</a></span> - Static variable in class org.apache.hadoop.hbase.mapreduce.<a href="org/apache/hadoop/hbase/mapreduce/WALInputFormat.html" title="class in org.apache.hadoop.hbase.mapreduce">WALInputFormat</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/HConstants.html#STARTCODE_QUALIFIER">STARTCODE_QUALIFIER</a></span> - Static variable in class org.apache.hadoop.hbase.<a href="org/apache/hadoop/hbase/HConstants.html" title="class in org.apache.hadoop.hbase">HConstants</a></dt>
@@ -16348,6 +16425,10 @@ Input/OutputFormats, a table indexing MapReduce job, and utility methods.</div>
 <dd>
 <div class="block">Stop this service.</div>
 </dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/util/MovingAverage.html#stop-long-">stop(long)</a></span> - Method in class org.apache.hadoop.hbase.util.<a href="org/apache/hadoop/hbase/util/MovingAverage.html" title="class in org.apache.hadoop.hbase.util">MovingAverage</a></dt>
+<dd>
+<div class="block">Mark end time of an execution, and return its interval.</div>
+</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/Admin.html#stopMaster--">stopMaster()</a></span> - Method in interface org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/Admin.html" title="interface in org.apache.hadoop.hbase.client">Admin</a></dt>
 <dd>
 <div class="block">Shuts down the current HBase master only.</div>
@@ -16875,6 +16956,10 @@ Input/OutputFormats, a table indexing MapReduce job, and utility methods.</div>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/quotas/RpcThrottlingException.html#throwWriteSizeExceeded-long-">throwWriteSizeExceeded(long)</a></span> - Static method in exception org.apache.hadoop.hbase.quotas.<a href="org/apache/hadoop/hbase/quotas/RpcThrottlingException.html" title="class in org.apache.hadoop.hbase.quotas">RpcThrottlingException</a></dt>
 <dd>&nbsp;</dd>
+<dt><a href="org/apache/hadoop/hbase/util/TimeMeasurable.html" title="interface in org.apache.hadoop.hbase.util"><span class="typeNameLink">TimeMeasurable</span></a>&lt;<a href="org/apache/hadoop/hbase/util/TimeMeasurable.html" title="type parameter in TimeMeasurable">T</a>&gt; - Interface in <a href="org/apache/hadoop/hbase/util/package-summary.html">org.apache.hadoop.hbase.util</a></dt>
+<dd>
+<div class="block">Methods that implement this interface can be measured elapsed time.</div>
+</dd>
 <dt><a href="org/apache/hadoop/hbase/errorhandling/TimeoutException.html" title="class in org.apache.hadoop.hbase.errorhandling"><span class="typeNameLink">TimeoutException</span></a> - Exception in <a href="org/apache/hadoop/hbase/errorhandling/package-summary.html">org.apache.hadoop.hbase.errorhandling</a></dt>
 <dd>
 <div class="block">Exception for timeout of a task.</div>
@@ -17721,6 +17806,16 @@ Input/OutputFormats, a table indexing MapReduce job, and utility methods.</div>
 </dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/mapreduce/TableRecordReaderImpl.html#updateCounters-org.apache.hadoop.hbase.client.metrics.ScanMetrics-long-java.lang.reflect.Method-org.apache.hadoop.mapreduce.TaskAttemptContext-long-">updateCounters(ScanMetrics, long, Method, TaskAttemptContext, long)</a></span> - Static method in class org.apache.hadoop.hbase.mapreduce.<a href="org/apache/hadoop/hbase/mapreduce/TableRecordReaderImpl.html" title="class in org.apache.had [...]
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/util/ExponentialMovingAverage.html#updateMostRecentTime-long-">updateMostRecentTime(long)</a></span> - Method in class org.apache.hadoop.hbase.util.<a href="org/apache/hadoop/hbase/util/ExponentialMovingAverage.html" title="class in org.apache.hadoop.hbase.util">ExponentialMovingAverage</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/util/MovingAverage.html#updateMostRecentTime-long-">updateMostRecentTime(long)</a></span> - Method in class org.apache.hadoop.hbase.util.<a href="org/apache/hadoop/hbase/util/MovingAverage.html" title="class in org.apache.hadoop.hbase.util">MovingAverage</a></dt>
+<dd>
+<div class="block">Update the most recent data.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/util/SimpleMovingAverage.html#updateMostRecentTime-long-">updateMostRecentTime(long)</a></span> - Method in class org.apache.hadoop.hbase.util.<a href="org/apache/hadoop/hbase/util/SimpleMovingAverage.html" title="class in org.apache.hadoop.hbase.util">SimpleMovingAverage</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/util/WindowMovingAverage.html#updateMostRecentTime-long-">updateMostRecentTime(long)</a></span> - Method in class org.apache.hadoop.hbase.util.<a href="org/apache/hadoop/hbase/util/WindowMovingAverage.html" title="class in org.apache.hadoop.hbase.util">WindowMovingAverage</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/Admin.html#updateReplicationPeerConfig-java.lang.String-org.apache.hadoop.hbase.replication.ReplicationPeerConfig-">updateReplicationPeerConfig(String, ReplicationPeerConfig)</a></span> - Method in interface org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/Admin.html" title="interface in org.apache.hadoop.hbase.client">Admin</a></dt>
 <dd>
 <div class="block">Update the peerConfig for the specified peer.</div>
@@ -18157,6 +18252,15 @@ the order they are declared.</div>
 <dd>
 <div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
 &nbsp;</dd>
+<dt><a href="org/apache/hadoop/hbase/util/WeightedMovingAverage.html" title="class in org.apache.hadoop.hbase.util"><span class="typeNameLink">WeightedMovingAverage</span></a> - Class in <a href="org/apache/hadoop/hbase/util/package-summary.html">org.apache.hadoop.hbase.util</a></dt>
+<dd>
+<div class="block">Different from SMA <a href="org/apache/hadoop/hbase/util/SimpleMovingAverage.html" title="class in org.apache.hadoop.hbase.util"><code>SimpleMovingAverage</code></a>, WeightedMovingAverage gives each data different
+ weight.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/util/WeightedMovingAverage.html#WeightedMovingAverage--">WeightedMovingAverage()</a></span> - Constructor for class org.apache.hadoop.hbase.util.<a href="org/apache/hadoop/hbase/util/WeightedMovingAverage.html" title="class in org.apache.hadoop.hbase.util">WeightedMovingAverage</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/util/WeightedMovingAverage.html#WeightedMovingAverage-int-">WeightedMovingAverage(int)</a></span> - Constructor for class org.apache.hadoop.hbase.util.<a href="org/apache/hadoop/hbase/util/WeightedMovingAverage.html" title="class in org.apache.hadoop.hbase.util">WeightedMovingAverage</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/filter/ParseConstants.html#WHILE_ARRAY">WHILE_ARRAY</a></span> - Static variable in class org.apache.hadoop.hbase.filter.<a href="org/apache/hadoop/hbase/filter/ParseConstants.html" title="class in org.apache.hadoop.hbase.filter">ParseConstants</a></dt>
 <dd>
 <div class="block">WHILE Array</div>
@@ -18178,6 +18282,14 @@ the order they are declared.</div>
 <dd>
 <div class="block">ASCII code for whitespace</div>
 </dd>
+<dt><a href="org/apache/hadoop/hbase/util/WindowMovingAverage.html" title="class in org.apache.hadoop.hbase.util"><span class="typeNameLink">WindowMovingAverage</span></a> - Class in <a href="org/apache/hadoop/hbase/util/package-summary.html">org.apache.hadoop.hbase.util</a></dt>
+<dd>
+<div class="block">Instead of calculate a whole time average, this class focus on the last N.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/util/WindowMovingAverage.html#WindowMovingAverage--">WindowMovingAverage()</a></span> - Constructor for class org.apache.hadoop.hbase.util.<a href="org/apache/hadoop/hbase/util/WindowMovingAverage.html" title="class in org.apache.hadoop.hbase.util">WindowMovingAverage</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/util/WindowMovingAverage.html#WindowMovingAverage-int-">WindowMovingAverage(int)</a></span> - Constructor for class org.apache.hadoop.hbase.util.<a href="org/apache/hadoop/hbase/util/WindowMovingAverage.html" title="class in org.apache.hadoop.hbase.util">WindowMovingAverage</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/io/TimeRange.html#withinOrAfterTimeRange-long-">withinOrAfterTimeRange(long)</a></span> - Method in class org.apache.hadoop.hbase.io.<a href="org/apache/hadoop/hbase/io/TimeRange.html" title="class in org.apache.hadoop.hbase.io">TimeRange</a></dt>
 <dd>
 <div class="block">Check if the specified timestamp is within or after this TimeRange.</div>
diff --git a/apidocs/org/apache/hadoop/hbase/ChoreService.html b/apidocs/org/apache/hadoop/hbase/ChoreService.html
index ee916f3..300d7d1 100644
--- a/apidocs/org/apache/hadoop/hbase/ChoreService.html
+++ b/apidocs/org/apache/hadoop/hbase/ChoreService.html
@@ -298,7 +298,7 @@ public&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ChoreService.h
 <ul class="blockList">
 <li class="blockList">
 <h4>shutdown</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ChoreService.html#line.328">shutdown</a>()</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ChoreService.html#line.329">shutdown</a>()</pre>
 <div class="block">shutdown the service. Any chores that are scheduled for execution will be cancelled. Any chores
  in the middle of execution will be interrupted and shutdown. This service will be unusable
  after this method has been called (i.e. future scheduling attempts will fail).</div>
@@ -310,7 +310,7 @@ public&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ChoreService.h
 <ul class="blockList">
 <li class="blockList">
 <h4>isShutdown</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ChoreService.html#line.342">isShutdown</a>()</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ChoreService.html#line.343">isShutdown</a>()</pre>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>true when the service is shutdown and thus cannot be used anymore</dd>
@@ -323,7 +323,7 @@ public&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ChoreService.h
 <ul class="blockListLast">
 <li class="blockList">
 <h4>isTerminated</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ChoreService.html#line.349">isTerminated</a>()</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ChoreService.html#line.350">isTerminated</a>()</pre>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>true when the service is shutdown and all threads have terminated</dd>
diff --git a/apidocs/org/apache/hadoop/hbase/ScheduledChore.html b/apidocs/org/apache/hadoop/hbase/ScheduledChore.html
index 7f33f9d..e666798 100644
--- a/apidocs/org/apache/hadoop/hbase/ScheduledChore.html
+++ b/apidocs/org/apache/hadoop/hbase/ScheduledChore.html
@@ -114,7 +114,7 @@ var activeTableTab = "activeTableTab";
 <hr>
 <br>
 <pre>@InterfaceAudience.Public
-public abstract class <a href="../../../../src-html/org/apache/hadoop/hbase/ScheduledChore.html#line.43">ScheduledChore</a>
+public abstract class <a href="../../../../src-html/org/apache/hadoop/hbase/ScheduledChore.html#line.45">ScheduledChore</a>
 extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
 implements <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Runnable.html?is-external=true" title="class or interface in java.lang">Runnable</a></pre>
 <div class="block">ScheduledChore is a task performed on a period in hbase. ScheduledChores become active once
@@ -279,7 +279,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Runnable
 <li class="blockList">
 <h4>ScheduledChore</h4>
 <pre>@InterfaceAudience.Private
-protected&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ScheduledChore.html#line.120">ScheduledChore</a>()</pre>
+protected&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ScheduledChore.html#line.124">ScheduledChore</a>()</pre>
 <div class="block">This constructor is for test only. It allows us to create an object and to call chore() on it.</div>
 </li>
 </ul>
@@ -289,7 +289,7 @@ protected&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ScheduledCh
 <ul class="blockList">
 <li class="blockList">
 <h4>ScheduledChore</h4>
-<pre>public&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ScheduledChore.html#line.133">ScheduledChore</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name,
+<pre>public&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ScheduledChore.html#line.137">ScheduledChore</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name,
                       <a href="../../../../org/apache/hadoop/hbase/Stoppable.html" title="interface in org.apache.hadoop.hbase">Stoppable</a>&nbsp;stopper,
                       int&nbsp;period)</pre>
 <dl>
@@ -306,7 +306,7 @@ protected&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ScheduledCh
 <ul class="blockList">
 <li class="blockList">
 <h4>ScheduledChore</h4>
-<pre>public&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ScheduledChore.html#line.145">ScheduledChore</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name,
+<pre>public&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ScheduledChore.html#line.149">ScheduledChore</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name,
                       <a href="../../../../org/apache/hadoop/hbase/Stoppable.html" title="interface in org.apache.hadoop.hbase">Stoppable</a>&nbsp;stopper,
                       int&nbsp;period,
                       long&nbsp;initialDelay)</pre>
@@ -327,7 +327,7 @@ protected&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ScheduledCh
 <ul class="blockListLast">
 <li class="blockList">
 <h4>ScheduledChore</h4>
-<pre>public&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ScheduledChore.html#line.159">ScheduledChore</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name,
+<pre>public&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ScheduledChore.html#line.163">ScheduledChore</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name,
                       <a href="../../../../org/apache/hadoop/hbase/Stoppable.html" title="interface in org.apache.hadoop.hbase">Stoppable</a>&nbsp;stopper,
                       int&nbsp;period,
                       long&nbsp;initialDelay,
@@ -358,7 +358,7 @@ protected&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ScheduledCh
 <ul class="blockList">
 <li class="blockList">
 <h4>run</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ScheduledChore.html#line.172">run</a>()</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ScheduledChore.html#line.176">run</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Runnable.html?is-external=true#run--" title="class or interface in java.lang">run</a></code>&nbsp;in interface&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Runnable.html?is-external=true" title="class or interface in java.lang">Runnable</a></code></dd>
@@ -373,7 +373,7 @@ protected&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ScheduledCh
 <ul class="blockList">
 <li class="blockList">
 <h4>triggerNow</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ScheduledChore.html#line.251">triggerNow</a>()</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ScheduledChore.html#line.260">triggerNow</a>()</pre>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>false when the Chore is not currently scheduled with a ChoreService</dd>
@@ -386,7 +386,7 @@ protected&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ScheduledCh
 <ul class="blockList">
 <li class="blockList">
 <h4>cancel</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ScheduledChore.html#line.269">cancel</a>()</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ScheduledChore.html#line.278">cancel</a>()</pre>
 </li>
 </ul>
 <a name="cancel-boolean-">
@@ -395,7 +395,7 @@ protected&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ScheduledCh
 <ul class="blockList">
 <li class="blockList">
 <h4>cancel</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ScheduledChore.html#line.273">cancel</a>(boolean&nbsp;mayInterruptIfRunning)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ScheduledChore.html#line.282">cancel</a>(boolean&nbsp;mayInterruptIfRunning)</pre>
 </li>
 </ul>
 <a name="getName--">
@@ -404,7 +404,7 @@ protected&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ScheduledCh
 <ul class="blockList">
 <li class="blockList">
 <h4>getName</h4>
-<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ScheduledChore.html#line.279">getName</a>()</pre>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ScheduledChore.html#line.288">getName</a>()</pre>
 </li>
 </ul>
 <a name="getStopper--">
@@ -413,7 +413,7 @@ protected&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ScheduledCh
 <ul class="blockList">
 <li class="blockList">
 <h4>getStopper</h4>
-<pre>public&nbsp;<a href="../../../../org/apache/hadoop/hbase/Stoppable.html" title="interface in org.apache.hadoop.hbase">Stoppable</a>&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ScheduledChore.html#line.283">getStopper</a>()</pre>
+<pre>public&nbsp;<a href="../../../../org/apache/hadoop/hbase/Stoppable.html" title="interface in org.apache.hadoop.hbase">Stoppable</a>&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ScheduledChore.html#line.292">getStopper</a>()</pre>
 </li>
 </ul>
 <a name="getPeriod--">
@@ -422,7 +422,7 @@ protected&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ScheduledCh
 <ul class="blockList">
 <li class="blockList">
 <h4>getPeriod</h4>
-<pre>public&nbsp;int&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ScheduledChore.html#line.290">getPeriod</a>()</pre>
+<pre>public&nbsp;int&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ScheduledChore.html#line.299">getPeriod</a>()</pre>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>period to execute chore in getTimeUnit() units</dd>
@@ -435,7 +435,7 @@ protected&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ScheduledCh
 <ul class="blockList">
 <li class="blockList">
 <h4>getInitialDelay</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ScheduledChore.html#line.297">getInitialDelay</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ScheduledChore.html#line.306">getInitialDelay</a>()</pre>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>initial delay before executing chore in getTimeUnit() units</dd>
@@ -448,7 +448,7 @@ protected&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ScheduledCh
 <ul class="blockList">
 <li class="blockList">
 <h4>getTimeUnit</h4>
-<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/TimeUnit.html?is-external=true" title="class or interface in java.util.concurrent">TimeUnit</a>&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ScheduledChore.html#line.301">getTimeUnit</a>()</pre>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/TimeUnit.html?is-external=true" title="class or interface in java.util.concurrent">TimeUnit</a>&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ScheduledChore.html#line.310">getTimeUnit</a>()</pre>
 </li>
 </ul>
 <a name="isInitialChoreComplete--">
@@ -457,7 +457,7 @@ protected&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ScheduledCh
 <ul class="blockList">
 <li class="blockList">
 <h4>isInitialChoreComplete</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ScheduledChore.html#line.305">isInitialChoreComplete</a>()</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ScheduledChore.html#line.314">isInitialChoreComplete</a>()</pre>
 </li>
 </ul>
 <a name="isScheduled--">
@@ -466,7 +466,7 @@ protected&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ScheduledCh
 <ul class="blockList">
 <li class="blockList">
 <h4>isScheduled</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ScheduledChore.html#line.327">isScheduled</a>()</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ScheduledChore.html#line.336">isScheduled</a>()</pre>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>true when this Chore is scheduled with a ChoreService</dd>
@@ -479,7 +479,7 @@ protected&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ScheduledCh
 <ul class="blockList">
 <li class="blockList">
 <h4>chore</h4>
-<pre>protected abstract&nbsp;void&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ScheduledChore.html#line.340">chore</a>()</pre>
+<pre>protected abstract&nbsp;void&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ScheduledChore.html#line.349">chore</a>()</pre>
 <div class="block">The task to execute on each scheduled execution of the Chore</div>
 </li>
 </ul>
@@ -489,7 +489,7 @@ protected&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ScheduledCh
 <ul class="blockList">
 <li class="blockList">
 <h4>initialChore</h4>
-<pre>protected&nbsp;boolean&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ScheduledChore.html#line.346">initialChore</a>()</pre>
+<pre>protected&nbsp;boolean&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ScheduledChore.html#line.355">initialChore</a>()</pre>
 <div class="block">Override to run a task before we start looping.</div>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
@@ -503,7 +503,7 @@ protected&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ScheduledCh
 <ul class="blockListLast">
 <li class="blockList">
 <h4>cleanup</h4>
-<pre>protected&nbsp;void&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ScheduledChore.html#line.354">cleanup</a>()</pre>
+<pre>protected&nbsp;void&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ScheduledChore.html#line.363">cleanup</a>()</pre>
 <div class="block">Override to run cleanup tasks when the Chore encounters an error and must stop running</div>
 </li>
 </ul>
diff --git a/apidocs/org/apache/hadoop/hbase/util/ConfigurationUtil.html b/apidocs/org/apache/hadoop/hbase/util/ConfigurationUtil.html
index d978105..0a94705 100644
--- a/apidocs/org/apache/hadoop/hbase/util/ConfigurationUtil.html
+++ b/apidocs/org/apache/hadoop/hbase/util/ConfigurationUtil.html
@@ -50,7 +50,7 @@ var activeTableTab = "activeTableTab";
 <div class="subNav">
 <ul class="navList">
 <li><a href="../../../../../org/apache/hadoop/hbase/util/Bytes.RowEndKeyComparator.html" title="class in org.apache.hadoop.hbase.util"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
-<li><a href="../../../../../org/apache/hadoop/hbase/util/FileSystemVersionException.html" title="class in org.apache.hadoop.hbase.util"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/util/ExponentialMovingAverage.html" title="class in org.apache.hadoop.hbase.util"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
 </ul>
 <ul class="navList">
 <li><a href="../../../../../index.html?org/apache/hadoop/hbase/util/ConfigurationUtil.html" target="_top">Frames</a></li>
@@ -339,7 +339,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <div class="subNav">
 <ul class="navList">
 <li><a href="../../../../../org/apache/hadoop/hbase/util/Bytes.RowEndKeyComparator.html" title="class in org.apache.hadoop.hbase.util"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
-<li><a href="../../../../../org/apache/hadoop/hbase/util/FileSystemVersionException.html" title="class in org.apache.hadoop.hbase.util"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/util/ExponentialMovingAverage.html" title="class in org.apache.hadoop.hbase.util"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
 </ul>
 <ul class="navList">
 <li><a href="../../../../../index.html?org/apache/hadoop/hbase/util/ConfigurationUtil.html" target="_top">Frames</a></li>
diff --git a/testdevapidocs/org/apache/hadoop/hbase/util/TestOrder.html b/apidocs/org/apache/hadoop/hbase/util/ExponentialMovingAverage.html
similarity index 50%
copy from testdevapidocs/org/apache/hadoop/hbase/util/TestOrder.html
copy to apidocs/org/apache/hadoop/hbase/util/ExponentialMovingAverage.html
index dc24acc..fbec91d 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/util/TestOrder.html
+++ b/apidocs/org/apache/hadoop/hbase/util/ExponentialMovingAverage.html
@@ -4,7 +4,7 @@
 <head>
 <!-- Generated by javadoc -->
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>TestOrder (Apache HBase 3.0.0-SNAPSHOT Test API)</title>
+<title>ExponentialMovingAverage (Apache HBase 3.0.0-SNAPSHOT API)</title>
 <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
 <script type="text/javascript" src="../../../../../script.js"></script>
 </head>
@@ -12,7 +12,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="TestOrder (Apache HBase 3.0.0-SNAPSHOT Test API)";
+            parent.document.title="ExponentialMovingAverage (Apache HBase 3.0.0-SNAPSHOT API)";
         }
     }
     catch(err) {
@@ -40,7 +40,7 @@ var activeTableTab = "activeTableTab";
 <li><a href="../../../../../overview-summary.html">Overview</a></li>
 <li><a href="package-summary.html">Package</a></li>
 <li class="navBarCell1Rev">Class</li>
-<li><a href="class-use/TestOrder.html">Use</a></li>
+<li><a href="class-use/ExponentialMovingAverage.html">Use</a></li>
 <li><a href="package-tree.html">Tree</a></li>
 <li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
 <li><a href="../../../../../index-all.html">Index</a></li>
@@ -49,12 +49,12 @@ var activeTableTab = "activeTableTab";
 </div>
 <div class="subNav">
 <ul class="navList">
-<li><a href="../../../../../org/apache/hadoop/hbase/util/TestMiniClusterLoadSequential.html" title="class in org.apache.hadoop.hbase.util"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
-<li><a href="../../../../../org/apache/hadoop/hbase/util/TestOrderedBytes.html" title="class in org.apache.hadoop.hbase.util"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/util/ConfigurationUtil.html" title="class in org.apache.hadoop.hbase.util"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/util/FileSystemVersionException.html" title="class in org.apache.hadoop.hbase.util"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
 </ul>
 <ul class="navList">
-<li><a href="../../../../../index.html?org/apache/hadoop/hbase/util/TestOrder.html" target="_top">Frames</a></li>
-<li><a href="TestOrder.html" target="_top">No&nbsp;Frames</a></li>
+<li><a href="../../../../../index.html?org/apache/hadoop/hbase/util/ExponentialMovingAverage.html" target="_top">Frames</a></li>
+<li><a href="ExponentialMovingAverage.html" target="_top">No&nbsp;Frames</a></li>
 </ul>
 <ul class="navList" id="allclasses_navbar_top">
 <li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
@@ -75,13 +75,13 @@ var activeTableTab = "activeTableTab";
 <ul class="subNavList">
 <li>Summary:&nbsp;</li>
 <li>Nested&nbsp;|&nbsp;</li>
-<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#fields.inherited.from.class.org.apache.hadoop.hbase.util.WindowMovingAverage">Field</a>&nbsp;|&nbsp;</li>
 <li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
 <li><a href="#method.summary">Method</a></li>
 </ul>
 <ul class="subNavList">
 <li>Detail:&nbsp;</li>
-<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
 <li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
 <li><a href="#method.detail">Method</a></li>
 </ul>
@@ -93,14 +93,24 @@ var activeTableTab = "activeTableTab";
 <!-- ======== START OF CLASS DATA ======== -->
 <div class="header">
 <div class="subTitle">org.apache.hadoop.hbase.util</div>
-<h2 title="Class TestOrder" class="title">Class TestOrder</h2>
+<h2 title="Class ExponentialMovingAverage" class="title">Class ExponentialMovingAverage</h2>
 </div>
 <div class="contentContainer">
 <ul class="inheritance">
 <li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
 <li>
 <ul class="inheritance">
-<li>org.apache.hadoop.hbase.util.TestOrder</li>
+<li><a href="../../../../../org/apache/hadoop/hbase/util/MovingAverage.html" title="class in org.apache.hadoop.hbase.util">org.apache.hadoop.hbase.util.MovingAverage</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../../org/apache/hadoop/hbase/util/WindowMovingAverage.html" title="class in org.apache.hadoop.hbase.util">org.apache.hadoop.hbase.util.WindowMovingAverage</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.hadoop.hbase.util.ExponentialMovingAverage</li>
+</ul>
+</li>
+</ul>
+</li>
 </ul>
 </li>
 </ul>
@@ -109,8 +119,11 @@ var activeTableTab = "activeTableTab";
 <li class="blockList">
 <hr>
 <br>
-<pre>public class <a href="../../../../../src-html/org/apache/hadoop/hbase/util/TestOrder.html#line.34">TestOrder</a>
-extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></pre>
+<pre>@InterfaceAudience.Public
+public class <a href="../../../../../src-html/org/apache/hadoop/hbase/util/ExponentialMovingAverage.html#line.28">ExponentialMovingAverage</a>
+extends <a href="../../../../../org/apache/hadoop/hbase/util/WindowMovingAverage.html" title="class in org.apache.hadoop.hbase.util">WindowMovingAverage</a></pre>
+<div class="block">EMA is similar to <a href="../../../../../org/apache/hadoop/hbase/util/WeightedMovingAverage.html" title="class in org.apache.hadoop.hbase.util"><code>WeightedMovingAverage</code></a> in weighted, but the weighting factor decrease
+ exponentially. It brings benefits that it is more sensitive, and can see the trends easily.</div>
 </li>
 </ul>
 </div>
@@ -123,21 +136,13 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <!--   -->
 </a>
 <h3>Field Summary</h3>
-<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Field Summary table, listing fields, and an explanation">
-<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
-<tr>
-<th class="colFirst" scope="col">Modifier and Type</th>
-<th class="colLast" scope="col">Field and Description</th>
-</tr>
-<tr class="altColor">
-<td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/TestOrder.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
-</tr>
-<tr class="rowColor">
-<td class="colFirst"><code>(package private) byte[][]</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/TestOrder.html#VALS">VALS</a></span></code>&nbsp;</td>
-</tr>
-</table>
+<ul class="blockList">
+<li class="blockList"><a name="fields.inherited.from.class.org.apache.hadoop.hbase.util.WindowMovingAverage">
+<!--   -->
+</a>
+<h3>Fields inherited from class&nbsp;org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/WindowMovingAverage.html" title="class in org.apache.hadoop.hbase.util">WindowMovingAverage</a></h3>
+<code><a href="../../../../../org/apache/hadoop/hbase/util/WindowMovingAverage.html#DEFAULT_SIZE">DEFAULT_SIZE</a>, <a href="../../../../../org/apache/hadoop/hbase/util/WindowMovingAverage.html#lastN">lastN</a>, <a href="../../../../../org/apache/hadoop/hbase/util/WindowMovingAverage.html#mostRecent">mostRecent</a>, <a href="../../../../../org/apache/hadoop/hbase/util/WindowMovingAverage.html#oneRound">oneRound</a></code></li>
+</ul>
 </li>
 </ul>
 <!-- ======== CONSTRUCTOR SUMMARY ======== -->
@@ -152,7 +157,17 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <th class="colOne" scope="col">Constructor and Description</th>
 </tr>
 <tr class="altColor">
-<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/TestOrder.html#TestOrder--">TestOrder</a></span>()</code>&nbsp;</td>
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/ExponentialMovingAverage.html#ExponentialMovingAverage--">ExponentialMovingAverage</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/ExponentialMovingAverage.html#ExponentialMovingAverage-double-">ExponentialMovingAverage</a></span>(double&nbsp;alpha)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/ExponentialMovingAverage.html#ExponentialMovingAverage-int-">ExponentialMovingAverage</a></span>(int&nbsp;size)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/ExponentialMovingAverage.html#ExponentialMovingAverage-int-double-">ExponentialMovingAverage</a></span>(int&nbsp;size,
+                        double&nbsp;alpha)</code>&nbsp;</td>
 </tr>
 </table>
 </li>
@@ -170,15 +185,33 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <th class="colLast" scope="col">Method and Description</th>
 </tr>
 <tr id="i0" class="altColor">
-<td class="colFirst"><code>void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/TestOrder.html#testApplyAscending--">testApplyAscending</a></span>()</code>&nbsp;</td>
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/ExponentialMovingAverage.html#getAverageTime--">getAverageTime</a></span>()</code>
+<div class="block">Get average execution time of the measured method.</div>
+</td>
 </tr>
 <tr id="i1" class="rowColor">
 <td class="colFirst"><code>void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/TestOrder.html#testApplyDescending--">testApplyDescending</a></span>()</code>&nbsp;</td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/ExponentialMovingAverage.html#updateMostRecentTime-long-">updateMostRecentTime</a></span>(long&nbsp;elapsed)</code>
+<div class="block">Update the most recent data.</div>
+</td>
 </tr>
 </table>
 <ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.hadoop.hbase.util.WindowMovingAverage">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/WindowMovingAverage.html" title="class in org.apache.hadoop.hbase.util">WindowMovingAverage</a></h3>
+<code><a href="../../../../../org/apache/hadoop/hbase/util/WindowMovingAverage.html#enoughStatistics--">enoughStatistics</a>, <a href="../../../../../org/apache/hadoop/hbase/util/WindowMovingAverage.html#getMostRecentPosistion--">getMostRecentPosistion</a>, <a href="../../../../../org/apache/hadoop/hbase/util/WindowMovingAverage.html#getNumberOfStatistics--">getNumberOfStatistics</a>, <a href="../../../../../org/apache/hadoop/hbase/util/WindowMovingAverage.html#getStatisticsAtIndex-int-" [...]
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.hadoop.hbase.util.MovingAverage">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/MovingAverage.html" title="class in org.apache.hadoop.hbase.util">MovingAverage</a></h3>
+<code><a href="../../../../../org/apache/hadoop/hbase/util/MovingAverage.html#measure-org.apache.hadoop.hbase.util.TimeMeasurable-">measure</a>, <a href="../../../../../org/apache/hadoop/hbase/util/MovingAverage.html#start--">start</a>, <a href="../../../../../org/apache/hadoop/hbase/util/MovingAverage.html#stop-long-">stop</a></code></li>
+</ul>
+<ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
 <!--   -->
 </a>
@@ -193,45 +226,47 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <div class="details">
 <ul class="blockList">
 <li class="blockList">
-<!-- ============ FIELD DETAIL =========== -->
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
 <ul class="blockList">
-<li class="blockList"><a name="field.detail">
+<li class="blockList"><a name="constructor.detail">
 <!--   -->
 </a>
-<h3>Field Detail</h3>
-<a name="CLASS_RULE">
+<h3>Constructor Detail</h3>
+<a name="ExponentialMovingAverage--">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>CLASS_RULE</h4>
-<pre>public static final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/util/TestOrder.html#line.37">CLASS_RULE</a></pre>
+<h4>ExponentialMovingAverage</h4>
+<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/ExponentialMovingAverage.html#line.33">ExponentialMovingAverage</a>()</pre>
 </li>
 </ul>
-<a name="VALS">
+<a name="ExponentialMovingAverage-double-">
 <!--   -->
 </a>
-<ul class="blockListLast">
+<ul class="blockList">
 <li class="blockList">
-<h4>VALS</h4>
-<pre>byte[][] <a href="../../../../../src-html/org/apache/hadoop/hbase/util/TestOrder.html#line.40">VALS</a></pre>
-</li>
-</ul>
+<h4>ExponentialMovingAverage</h4>
+<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/ExponentialMovingAverage.html#line.37">ExponentialMovingAverage</a>(double&nbsp;alpha)</pre>
 </li>
 </ul>
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<ul class="blockList">
-<li class="blockList"><a name="constructor.detail">
+<a name="ExponentialMovingAverage-int-">
 <!--   -->
 </a>
-<h3>Constructor Detail</h3>
-<a name="TestOrder--">
+<ul class="blockList">
+<li class="blockList">
+<h4>ExponentialMovingAverage</h4>
+<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/ExponentialMovingAverage.html#line.41">ExponentialMovingAverage</a>(int&nbsp;size)</pre>
+</li>
+</ul>
+<a name="ExponentialMovingAverage-int-double-">
 <!--   -->
 </a>
 <ul class="blockListLast">
 <li class="blockList">
-<h4>TestOrder</h4>
-<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/TestOrder.html#line.34">TestOrder</a>()</pre>
+<h4>ExponentialMovingAverage</h4>
+<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/ExponentialMovingAverage.html#line.45">ExponentialMovingAverage</a>(int&nbsp;size,
+                                double&nbsp;alpha)</pre>
 </li>
 </ul>
 </li>
@@ -242,22 +277,38 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <!--   -->
 </a>
 <h3>Method Detail</h3>
-<a name="testApplyAscending--">
+<a name="updateMostRecentTime-long-">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>testApplyAscending</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/TestOrder.html#line.43">testApplyAscending</a>()</pre>
+<h4>updateMostRecentTime</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/ExponentialMovingAverage.html#line.53">updateMostRecentTime</a>(long&nbsp;elapsed)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/util/MovingAverage.html#updateMostRecentTime-long-">MovingAverage</a></code></span></div>
+<div class="block">Update the most recent data.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="../../../../../org/apache/hadoop/hbase/util/WindowMovingAverage.html#updateMostRecentTime-long-">updateMostRecentTime</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/util/WindowMovingAverage.html" title="class in org.apache.hadoop.hbase.util">WindowMovingAverage</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>elapsed</code> - elapsed time of the most recent measurement</dd>
+</dl>
 </li>
 </ul>
-<a name="testApplyDescending--">
+<a name="getAverageTime--">
 <!--   -->
 </a>
 <ul class="blockListLast">
 <li class="blockList">
-<h4>testApplyDescending</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/TestOrder.html#line.65">testApplyDescending</a>()</pre>
+<h4>getAverageTime</h4>
+<pre>public&nbsp;double&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/ExponentialMovingAverage.html#line.69">getAverageTime</a>()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/util/MovingAverage.html#getAverageTime--">MovingAverage</a></code></span></div>
+<div class="block">Get average execution time of the measured method.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="../../../../../org/apache/hadoop/hbase/util/WindowMovingAverage.html#getAverageTime--">getAverageTime</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/util/WindowMovingAverage.html" title="class in org.apache.hadoop.hbase.util">WindowMovingAverage</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>average time in ns</dd>
+</dl>
 </li>
 </ul>
 </li>
@@ -279,7 +330,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <li><a href="../../../../../overview-summary.html">Overview</a></li>
 <li><a href="package-summary.html">Package</a></li>
 <li class="navBarCell1Rev">Class</li>
-<li><a href="class-use/TestOrder.html">Use</a></li>
+<li><a href="class-use/ExponentialMovingAverage.html">Use</a></li>
 <li><a href="package-tree.html">Tree</a></li>
 <li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
 <li><a href="../../../../../index-all.html">Index</a></li>
@@ -288,12 +339,12 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 </div>
 <div class="subNav">
 <ul class="navList">
-<li><a href="../../../../../org/apache/hadoop/hbase/util/TestMiniClusterLoadSequential.html" title="class in org.apache.hadoop.hbase.util"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
-<li><a href="../../../../../org/apache/hadoop/hbase/util/TestOrderedBytes.html" title="class in org.apache.hadoop.hbase.util"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/util/ConfigurationUtil.html" title="class in org.apache.hadoop.hbase.util"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/util/FileSystemVersionException.html" title="class in org.apache.hadoop.hbase.util"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
 </ul>
 <ul class="navList">
-<li><a href="../../../../../index.html?org/apache/hadoop/hbase/util/TestOrder.html" target="_top">Frames</a></li>
-<li><a href="TestOrder.html" target="_top">No&nbsp;Frames</a></li>
+<li><a href="../../../../../index.html?org/apache/hadoop/hbase/util/ExponentialMovingAverage.html" target="_top">Frames</a></li>
+<li><a href="ExponentialMovingAverage.html" target="_top">No&nbsp;Frames</a></li>
 </ul>
 <ul class="navList" id="allclasses_navbar_bottom">
 <li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
@@ -314,13 +365,13 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="subNavList">
 <li>Summary:&nbsp;</li>
 <li>Nested&nbsp;|&nbsp;</li>
-<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#fields.inherited.from.class.org.apache.hadoop.hbase.util.WindowMovingAverage">Field</a>&nbsp;|&nbsp;</li>
 <li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
 <li><a href="#method.summary">Method</a></li>
 </ul>
 <ul class="subNavList">
 <li>Detail:&nbsp;</li>
-<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
 <li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
 <li><a href="#method.detail">Method</a></li>
 </ul>
diff --git a/apidocs/org/apache/hadoop/hbase/util/FileSystemVersionException.html b/apidocs/org/apache/hadoop/hbase/util/FileSystemVersionException.html
index e79f02d..dc2ea8c 100644
--- a/apidocs/org/apache/hadoop/hbase/util/FileSystemVersionException.html
+++ b/apidocs/org/apache/hadoop/hbase/util/FileSystemVersionException.html
@@ -43,7 +43,7 @@
 </div>
 <div class="subNav">
 <ul class="navList">
-<li><a href="../../../../../org/apache/hadoop/hbase/util/ConfigurationUtil.html" title="class in org.apache.hadoop.hbase.util"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/util/ExponentialMovingAverage.html" title="class in org.apache.hadoop.hbase.util"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
 <li><a href="../../../../../org/apache/hadoop/hbase/util/JsonMapper.html" title="class in org.apache.hadoop.hbase.util"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
 </ul>
 <ul class="navList">
@@ -243,7 +243,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.h
 </div>
 <div class="subNav">
 <ul class="navList">
-<li><a href="../../../../../org/apache/hadoop/hbase/util/ConfigurationUtil.html" title="class in org.apache.hadoop.hbase.util"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/util/ExponentialMovingAverage.html" title="class in org.apache.hadoop.hbase.util"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
 <li><a href="../../../../../org/apache/hadoop/hbase/util/JsonMapper.html" title="class in org.apache.hadoop.hbase.util"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
 </ul>
 <ul class="navList">
diff --git a/apidocs/org/apache/hadoop/hbase/util/MD5Hash.html b/apidocs/org/apache/hadoop/hbase/util/MD5Hash.html
index 6460b8e..a108c84 100644
--- a/apidocs/org/apache/hadoop/hbase/util/MD5Hash.html
+++ b/apidocs/org/apache/hadoop/hbase/util/MD5Hash.html
@@ -50,7 +50,7 @@ var activeTableTab = "activeTableTab";
 <div class="subNav">
 <ul class="navList">
 <li><a href="../../../../../org/apache/hadoop/hbase/util/LeaseNotRecoveredException.html" title="class in org.apache.hadoop.hbase.util"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
-<li><a href="../../../../../org/apache/hadoop/hbase/util/Order.html" title="enum in org.apache.hadoop.hbase.util"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/util/MovingAverage.html" title="class in org.apache.hadoop.hbase.util"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
 </ul>
 <ul class="navList">
 <li><a href="../../../../../index.html?org/apache/hadoop/hbase/util/MD5Hash.html" target="_top">Frames</a></li>
@@ -269,7 +269,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <div class="subNav">
 <ul class="navList">
 <li><a href="../../../../../org/apache/hadoop/hbase/util/LeaseNotRecoveredException.html" title="class in org.apache.hadoop.hbase.util"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
-<li><a href="../../../../../org/apache/hadoop/hbase/util/Order.html" title="enum in org.apache.hadoop.hbase.util"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/util/MovingAverage.html" title="class in org.apache.hadoop.hbase.util"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
 </ul>
 <ul class="navList">
 <li><a href="../../../../../index.html?org/apache/hadoop/hbase/util/MD5Hash.html" target="_top">Frames</a></li>
diff --git a/apidocs/org/apache/hadoop/hbase/util/MD5Hash.html b/apidocs/org/apache/hadoop/hbase/util/MovingAverage.html
similarity index 56%
copy from apidocs/org/apache/hadoop/hbase/util/MD5Hash.html
copy to apidocs/org/apache/hadoop/hbase/util/MovingAverage.html
index 6460b8e..77e5621 100644
--- a/apidocs/org/apache/hadoop/hbase/util/MD5Hash.html
+++ b/apidocs/org/apache/hadoop/hbase/util/MovingAverage.html
@@ -4,7 +4,7 @@
 <head>
 <!-- Generated by javadoc -->
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>MD5Hash (Apache HBase 3.0.0-SNAPSHOT API)</title>
+<title>MovingAverage (Apache HBase 3.0.0-SNAPSHOT API)</title>
 <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
 <script type="text/javascript" src="../../../../../script.js"></script>
 </head>
@@ -12,14 +12,14 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="MD5Hash (Apache HBase 3.0.0-SNAPSHOT API)";
+            parent.document.title="MovingAverage (Apache HBase 3.0.0-SNAPSHOT API)";
         }
     }
     catch(err) {
     }
 //-->
-var methods = {"i0":9,"i1":9};
-var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],8:["t4","Concrete Methods"]};
+var methods = {"i0":6,"i1":10,"i2":10,"i3":10,"i4":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"],8:["t4","Concrete Methods"]};
 var altColor = "altColor";
 var rowColor = "rowColor";
 var tableTab = "tableTab";
@@ -40,7 +40,7 @@ var activeTableTab = "activeTableTab";
 <li><a href="../../../../../overview-summary.html">Overview</a></li>
 <li><a href="package-summary.html">Package</a></li>
 <li class="navBarCell1Rev">Class</li>
-<li><a href="class-use/MD5Hash.html">Use</a></li>
+<li><a href="class-use/MovingAverage.html">Use</a></li>
 <li><a href="package-tree.html">Tree</a></li>
 <li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
 <li><a href="../../../../../index-all.html">Index</a></li>
@@ -49,12 +49,12 @@ var activeTableTab = "activeTableTab";
 </div>
 <div class="subNav">
 <ul class="navList">
-<li><a href="../../../../../org/apache/hadoop/hbase/util/LeaseNotRecoveredException.html" title="class in org.apache.hadoop.hbase.util"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/util/MD5Hash.html" title="class in org.apache.hadoop.hbase.util"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
 <li><a href="../../../../../org/apache/hadoop/hbase/util/Order.html" title="enum in org.apache.hadoop.hbase.util"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
 </ul>
 <ul class="navList">
-<li><a href="../../../../../index.html?org/apache/hadoop/hbase/util/MD5Hash.html" target="_top">Frames</a></li>
-<li><a href="MD5Hash.html" target="_top">No&nbsp;Frames</a></li>
+<li><a href="../../../../../index.html?org/apache/hadoop/hbase/util/MovingAverage.html" target="_top">Frames</a></li>
+<li><a href="MovingAverage.html" target="_top">No&nbsp;Frames</a></li>
 </ul>
 <ul class="navList" id="allclasses_navbar_top">
 <li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
@@ -93,27 +93,34 @@ var activeTableTab = "activeTableTab";
 <!-- ======== START OF CLASS DATA ======== -->
 <div class="header">
 <div class="subTitle">org.apache.hadoop.hbase.util</div>
-<h2 title="Class MD5Hash" class="title">Class MD5Hash</h2>
+<h2 title="Class MovingAverage" class="title">Class MovingAverage&lt;T&gt;</h2>
 </div>
 <div class="contentContainer">
 <ul class="inheritance">
 <li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
 <li>
 <ul class="inheritance">
-<li>org.apache.hadoop.hbase.util.MD5Hash</li>
+<li>org.apache.hadoop.hbase.util.MovingAverage&lt;T&gt;</li>
 </ul>
 </li>
 </ul>
 <div class="description">
 <ul class="blockList">
 <li class="blockList">
+<dl>
+<dt>Direct Known Subclasses:</dt>
+<dd><a href="../../../../../org/apache/hadoop/hbase/util/SimpleMovingAverage.html" title="class in org.apache.hadoop.hbase.util">SimpleMovingAverage</a>, <a href="../../../../../org/apache/hadoop/hbase/util/WindowMovingAverage.html" title="class in org.apache.hadoop.hbase.util">WindowMovingAverage</a></dd>
+</dl>
 <hr>
 <br>
 <pre>@InterfaceAudience.Public
-public class <a href="../../../../../src-html/org/apache/hadoop/hbase/util/MD5Hash.html#line.35">MD5Hash</a>
+public abstract class <a href="../../../../../src-html/org/apache/hadoop/hbase/util/MovingAverage.html#line.33">MovingAverage</a>&lt;T&gt;
 extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></pre>
-<div class="block">Utility class for MD5
- MD5 hash produces a 128-bit digest.</div>
+<div class="block">The purpose of introduction of <a href="../../../../../org/apache/hadoop/hbase/util/MovingAverage.html" title="class in org.apache.hadoop.hbase.util"><code>MovingAverage</code></a> mainly is to measure execution time of a
+ specific method, which can help us to know its performance fluctuation in response to different
+ machine states or situations, better case, then to act accordingly.
+ <br>
+ In different situation, different <a href="../../../../../org/apache/hadoop/hbase/util/MovingAverage.html" title="class in org.apache.hadoop.hbase.util"><code>MovingAverage</code></a> algorithm can be used based on needs.</div>
 </li>
 </ul>
 </div>
@@ -132,7 +139,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <th class="colOne" scope="col">Constructor and Description</th>
 </tr>
 <tr class="altColor">
-<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/MD5Hash.html#MD5Hash--">MD5Hash</a></span>()</code>&nbsp;</td>
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/MovingAverage.html#MovingAverage--">MovingAverage</a></span>()</code>&nbsp;</td>
 </tr>
 </table>
 </li>
@@ -144,23 +151,39 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 </a>
 <h3>Method Summary</h3>
 <table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
-<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabE [...]
 <tr>
 <th class="colFirst" scope="col">Modifier and Type</th>
 <th class="colLast" scope="col">Method and Description</th>
 </tr>
 <tr id="i0" class="altColor">
-<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/MD5Hash.html#getMD5AsHex-byte:A-">getMD5AsHex</a></span>(byte[]&nbsp;key)</code>
-<div class="block">Given a byte array, returns in MD5 hash as a hex string.</div>
+<td class="colFirst"><code>abstract double</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/MovingAverage.html#getAverageTime--">getAverageTime</a></span>()</code>
+<div class="block">Get average execution time of the measured method.</div>
 </td>
 </tr>
 <tr id="i1" class="rowColor">
-<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/MD5Hash.html#getMD5AsHex-byte:A-int-int-">getMD5AsHex</a></span>(byte[]&nbsp;key,
-           int&nbsp;offset,
-           int&nbsp;length)</code>
-<div class="block">Given a byte array, returns its MD5 hash as a hex string.</div>
+<td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/util/MovingAverage.html" title="type parameter in MovingAverage">T</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/MovingAverage.html#measure-org.apache.hadoop.hbase.util.TimeMeasurable-">measure</a></span>(<a href="../../../../../org/apache/hadoop/hbase/util/TimeMeasurable.html" title="interface in org.apache.hadoop.hbase.util">TimeMeasurable</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/util/MovingAverage.html" title="type parameter in MovingAverage">T</a>&gt;&nbsp;measurable)</code>
+<div class="block">Measure elapsed time of a measurable method.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>protected long</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/MovingAverage.html#start--">start</a></span>()</code>
+<div class="block">Mark start time of an execution.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>protected long</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/MovingAverage.html#stop-long-">stop</a></span>(long&nbsp;startTime)</code>
+<div class="block">Mark end time of an execution, and return its interval.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code>protected abstract void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/MovingAverage.html#updateMostRecentTime-long-">updateMostRecentTime</a></span>(long&nbsp;elapsed)</code>
+<div class="block">Update the most recent data.</div>
 </td>
 </tr>
 </table>
@@ -185,13 +208,13 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <!--   -->
 </a>
 <h3>Constructor Detail</h3>
-<a name="MD5Hash--">
+<a name="MovingAverage--">
 <!--   -->
 </a>
 <ul class="blockListLast">
 <li class="blockList">
-<h4>MD5Hash</h4>
-<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/MD5Hash.html#line.35">MD5Hash</a>()</pre>
+<h4>MovingAverage</h4>
+<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/MovingAverage.html#line.33">MovingAverage</a>()</pre>
 </li>
 </ul>
 </li>
@@ -202,41 +225,77 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <!--   -->
 </a>
 <h3>Method Detail</h3>
-<a name="getMD5AsHex-byte:A-">
+<a name="start--">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>getMD5AsHex</h4>
-<pre>public static&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/MD5Hash.html#line.43">getMD5AsHex</a>(byte[]&nbsp;key)</pre>
-<div class="block">Given a byte array, returns in MD5 hash as a hex string.</div>
+<h4>start</h4>
+<pre>protected&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/MovingAverage.html#line.40">start</a>()</pre>
+<div class="block">Mark start time of an execution.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>time in ns.</dd>
+</dl>
+</li>
+</ul>
+<a name="stop-long-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>stop</h4>
+<pre>protected&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/MovingAverage.html#line.49">stop</a>(long&nbsp;startTime)</pre>
+<div class="block">Mark end time of an execution, and return its interval.</div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
-<dd><code>key</code> - </dd>
+<dd><code>startTime</code> - start time of an execution</dd>
 <dt><span class="returnLabel">Returns:</span></dt>
-<dd>SHA1 hash as a 32 character hex string.</dd>
+<dd>elapsed time</dd>
 </dl>
 </li>
 </ul>
-<a name="getMD5AsHex-byte:A-int-int-">
+<a name="measure-org.apache.hadoop.hbase.util.TimeMeasurable-">
 <!--   -->
 </a>
-<ul class="blockListLast">
+<ul class="blockList">
 <li class="blockList">
-<h4>getMD5AsHex</h4>
-<pre>public static&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/MD5Hash.html#line.57">getMD5AsHex</a>(byte[]&nbsp;key,
-                                 int&nbsp;offset,
-                                 int&nbsp;length)</pre>
-<div class="block">Given a byte array, returns its MD5 hash as a hex string.
- Only "length" number of bytes starting at "offset" within the
- byte array are used.</div>
+<h4>measure</h4>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/util/MovingAverage.html" title="type parameter in MovingAverage">T</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/MovingAverage.html#line.58">measure</a>(<a href="../../../../../org/apache/hadoop/hbase/util/TimeMeasurable.html" title="interface in org.apache.hadoop.hbase.util">TimeMeasurable</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/util/MovingAverage.html" title="type parameter in Movin [...]
+<div class="block">Measure elapsed time of a measurable method.</div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
-<dd><code>key</code> - the key to hash (variable length byte array)</dd>
-<dd><code>offset</code> - </dd>
-<dd><code>length</code> - </dd>
+<dd><code>measurable</code> - method implements <a href="../../../../../org/apache/hadoop/hbase/util/TimeMeasurable.html" title="interface in org.apache.hadoop.hbase.util"><code>TimeMeasurable</code></a></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>T it refers to the original return type of the measurable method</dd>
+</dl>
+</li>
+</ul>
+<a name="updateMostRecentTime-long-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>updateMostRecentTime</h4>
+<pre>protected abstract&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/MovingAverage.html#line.74">updateMostRecentTime</a>(long&nbsp;elapsed)</pre>
+<div class="block">Update the most recent data.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>elapsed</code> - elapsed time of the most recent measurement</dd>
+</dl>
+</li>
+</ul>
+<a name="getAverageTime--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getAverageTime</h4>
+<pre>public abstract&nbsp;double&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/MovingAverage.html#line.80">getAverageTime</a>()</pre>
+<div class="block">Get average execution time of the measured method.</div>
+<dl>
 <dt><span class="returnLabel">Returns:</span></dt>
-<dd>MD5 hash as a 32 character hex string.</dd>
+<dd>average time in ns</dd>
 </dl>
 </li>
 </ul>
@@ -259,7 +318,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <li><a href="../../../../../overview-summary.html">Overview</a></li>
 <li><a href="package-summary.html">Package</a></li>
 <li class="navBarCell1Rev">Class</li>
-<li><a href="class-use/MD5Hash.html">Use</a></li>
+<li><a href="class-use/MovingAverage.html">Use</a></li>
 <li><a href="package-tree.html">Tree</a></li>
 <li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
 <li><a href="../../../../../index-all.html">Index</a></li>
@@ -268,12 +327,12 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 </div>
 <div class="subNav">
 <ul class="navList">
-<li><a href="../../../../../org/apache/hadoop/hbase/util/LeaseNotRecoveredException.html" title="class in org.apache.hadoop.hbase.util"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/util/MD5Hash.html" title="class in org.apache.hadoop.hbase.util"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
 <li><a href="../../../../../org/apache/hadoop/hbase/util/Order.html" title="enum in org.apache.hadoop.hbase.util"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
 </ul>
 <ul class="navList">
-<li><a href="../../../../../index.html?org/apache/hadoop/hbase/util/MD5Hash.html" target="_top">Frames</a></li>
-<li><a href="MD5Hash.html" target="_top">No&nbsp;Frames</a></li>
+<li><a href="../../../../../index.html?org/apache/hadoop/hbase/util/MovingAverage.html" target="_top">Frames</a></li>
+<li><a href="MovingAverage.html" target="_top">No&nbsp;Frames</a></li>
 </ul>
 <ul class="navList" id="allclasses_navbar_bottom">
 <li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
diff --git a/apidocs/org/apache/hadoop/hbase/util/Order.html b/apidocs/org/apache/hadoop/hbase/util/Order.html
index 093f49b..cb15a27 100644
--- a/apidocs/org/apache/hadoop/hbase/util/Order.html
+++ b/apidocs/org/apache/hadoop/hbase/util/Order.html
@@ -49,7 +49,7 @@ var activeTableTab = "activeTableTab";
 </div>
 <div class="subNav">
 <ul class="navList">
-<li><a href="../../../../../org/apache/hadoop/hbase/util/MD5Hash.html" title="class in org.apache.hadoop.hbase.util"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/util/MovingAverage.html" title="class in org.apache.hadoop.hbase.util"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
 <li><a href="../../../../../org/apache/hadoop/hbase/util/OrderedBytes.html" title="class in org.apache.hadoop.hbase.util"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
 </ul>
 <ul class="navList">
@@ -371,7 +371,7 @@ not permitted.)</div>
 </div>
 <div class="subNav">
 <ul class="navList">
-<li><a href="../../../../../org/apache/hadoop/hbase/util/MD5Hash.html" title="class in org.apache.hadoop.hbase.util"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/util/MovingAverage.html" title="class in org.apache.hadoop.hbase.util"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
 <li><a href="../../../../../org/apache/hadoop/hbase/util/OrderedBytes.html" title="class in org.apache.hadoop.hbase.util"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
 </ul>
 <ul class="navList">
diff --git a/apidocs/org/apache/hadoop/hbase/util/SimpleByteRange.html b/apidocs/org/apache/hadoop/hbase/util/SimpleByteRange.html
index a975173..211bfc2 100644
--- a/apidocs/org/apache/hadoop/hbase/util/SimpleByteRange.html
+++ b/apidocs/org/apache/hadoop/hbase/util/SimpleByteRange.html
@@ -50,7 +50,7 @@ var activeTableTab = "activeTableTab";
 <div class="subNav">
 <ul class="navList">
 <li><a href="../../../../../org/apache/hadoop/hbase/util/RegionMover.html" title="class in org.apache.hadoop.hbase.util"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
-<li><a href="../../../../../org/apache/hadoop/hbase/util/SimpleMutableByteRange.html" title="class in org.apache.hadoop.hbase.util"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/util/SimpleMovingAverage.html" title="class in org.apache.hadoop.hbase.util"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
 </ul>
 <ul class="navList">
 <li><a href="../../../../../index.html?org/apache/hadoop/hbase/util/SimpleByteRange.html" target="_top">Frames</a></li>
@@ -736,7 +736,7 @@ extends org.apache.hadoop.hbase.util.AbstractByteRange</pre>
 <div class="subNav">
 <ul class="navList">
 <li><a href="../../../../../org/apache/hadoop/hbase/util/RegionMover.html" title="class in org.apache.hadoop.hbase.util"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
-<li><a href="../../../../../org/apache/hadoop/hbase/util/SimpleMutableByteRange.html" title="class in org.apache.hadoop.hbase.util"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/util/SimpleMovingAverage.html" title="class in org.apache.hadoop.hbase.util"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
 </ul>
 <ul class="navList">
 <li><a href="../../../../../index.html?org/apache/hadoop/hbase/util/SimpleByteRange.html" target="_top">Frames</a></li>
diff --git a/testdevapidocs/org/apache/hadoop/hbase/util/TestOrder.html b/apidocs/org/apache/hadoop/hbase/util/SimpleMovingAverage.html
similarity index 65%
copy from testdevapidocs/org/apache/hadoop/hbase/util/TestOrder.html
copy to apidocs/org/apache/hadoop/hbase/util/SimpleMovingAverage.html
index dc24acc..ca1aa50 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/util/TestOrder.html
+++ b/apidocs/org/apache/hadoop/hbase/util/SimpleMovingAverage.html
@@ -4,7 +4,7 @@
 <head>
 <!-- Generated by javadoc -->
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>TestOrder (Apache HBase 3.0.0-SNAPSHOT Test API)</title>
+<title>SimpleMovingAverage (Apache HBase 3.0.0-SNAPSHOT API)</title>
 <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
 <script type="text/javascript" src="../../../../../script.js"></script>
 </head>
@@ -12,7 +12,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="TestOrder (Apache HBase 3.0.0-SNAPSHOT Test API)";
+            parent.document.title="SimpleMovingAverage (Apache HBase 3.0.0-SNAPSHOT API)";
         }
     }
     catch(err) {
@@ -40,7 +40,7 @@ var activeTableTab = "activeTableTab";
 <li><a href="../../../../../overview-summary.html">Overview</a></li>
 <li><a href="package-summary.html">Package</a></li>
 <li class="navBarCell1Rev">Class</li>
-<li><a href="class-use/TestOrder.html">Use</a></li>
+<li><a href="class-use/SimpleMovingAverage.html">Use</a></li>
 <li><a href="package-tree.html">Tree</a></li>
 <li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
 <li><a href="../../../../../index-all.html">Index</a></li>
@@ -49,12 +49,12 @@ var activeTableTab = "activeTableTab";
 </div>
 <div class="subNav">
 <ul class="navList">
-<li><a href="../../../../../org/apache/hadoop/hbase/util/TestMiniClusterLoadSequential.html" title="class in org.apache.hadoop.hbase.util"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
-<li><a href="../../../../../org/apache/hadoop/hbase/util/TestOrderedBytes.html" title="class in org.apache.hadoop.hbase.util"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/util/SimpleByteRange.html" title="class in org.apache.hadoop.hbase.util"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/util/SimpleMutableByteRange.html" title="class in org.apache.hadoop.hbase.util"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
 </ul>
 <ul class="navList">
-<li><a href="../../../../../index.html?org/apache/hadoop/hbase/util/TestOrder.html" target="_top">Frames</a></li>
-<li><a href="TestOrder.html" target="_top">No&nbsp;Frames</a></li>
+<li><a href="../../../../../index.html?org/apache/hadoop/hbase/util/SimpleMovingAverage.html" target="_top">Frames</a></li>
+<li><a href="SimpleMovingAverage.html" target="_top">No&nbsp;Frames</a></li>
 </ul>
 <ul class="navList" id="allclasses_navbar_top">
 <li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
@@ -93,14 +93,19 @@ var activeTableTab = "activeTableTab";
 <!-- ======== START OF CLASS DATA ======== -->
 <div class="header">
 <div class="subTitle">org.apache.hadoop.hbase.util</div>
-<h2 title="Class TestOrder" class="title">Class TestOrder</h2>
+<h2 title="Class SimpleMovingAverage" class="title">Class SimpleMovingAverage</h2>
 </div>
 <div class="contentContainer">
 <ul class="inheritance">
 <li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
 <li>
 <ul class="inheritance">
-<li>org.apache.hadoop.hbase.util.TestOrder</li>
+<li><a href="../../../../../org/apache/hadoop/hbase/util/MovingAverage.html" title="class in org.apache.hadoop.hbase.util">org.apache.hadoop.hbase.util.MovingAverage</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.hadoop.hbase.util.SimpleMovingAverage</li>
+</ul>
+</li>
 </ul>
 </li>
 </ul>
@@ -109,8 +114,10 @@ var activeTableTab = "activeTableTab";
 <li class="blockList">
 <hr>
 <br>
-<pre>public class <a href="../../../../../src-html/org/apache/hadoop/hbase/util/TestOrder.html#line.34">TestOrder</a>
-extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></pre>
+<pre>@InterfaceAudience.Public
+public class <a href="../../../../../src-html/org/apache/hadoop/hbase/util/SimpleMovingAverage.html#line.27">SimpleMovingAverage</a>
+extends <a href="../../../../../org/apache/hadoop/hbase/util/MovingAverage.html" title="class in org.apache.hadoop.hbase.util">MovingAverage</a></pre>
+<div class="block">SMA measure the overall average execution time of a specific method.</div>
 </li>
 </ul>
 </div>
@@ -130,12 +137,8 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <th class="colLast" scope="col">Field and Description</th>
 </tr>
 <tr class="altColor">
-<td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/TestOrder.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
-</tr>
-<tr class="rowColor">
-<td class="colFirst"><code>(package private) byte[][]</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/TestOrder.html#VALS">VALS</a></span></code>&nbsp;</td>
+<td class="colFirst"><code>protected long</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/SimpleMovingAverage.html#count">count</a></span></code>&nbsp;</td>
 </tr>
 </table>
 </li>
@@ -152,7 +155,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <th class="colOne" scope="col">Constructor and Description</th>
 </tr>
 <tr class="altColor">
-<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/TestOrder.html#TestOrder--">TestOrder</a></span>()</code>&nbsp;</td>
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/SimpleMovingAverage.html#SimpleMovingAverage--">SimpleMovingAverage</a></span>()</code>&nbsp;</td>
 </tr>
 </table>
 </li>
@@ -170,15 +173,26 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <th class="colLast" scope="col">Method and Description</th>
 </tr>
 <tr id="i0" class="altColor">
-<td class="colFirst"><code>void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/TestOrder.html#testApplyAscending--">testApplyAscending</a></span>()</code>&nbsp;</td>
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/SimpleMovingAverage.html#getAverageTime--">getAverageTime</a></span>()</code>
+<div class="block">Get average execution time of the measured method.</div>
+</td>
 </tr>
 <tr id="i1" class="rowColor">
 <td class="colFirst"><code>void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/TestOrder.html#testApplyDescending--">testApplyDescending</a></span>()</code>&nbsp;</td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/SimpleMovingAverage.html#updateMostRecentTime-long-">updateMostRecentTime</a></span>(long&nbsp;elapsed)</code>
+<div class="block">Update the most recent data.</div>
+</td>
 </tr>
 </table>
 <ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.hadoop.hbase.util.MovingAverage">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/MovingAverage.html" title="class in org.apache.hadoop.hbase.util">MovingAverage</a></h3>
+<code><a href="../../../../../org/apache/hadoop/hbase/util/MovingAverage.html#measure-org.apache.hadoop.hbase.util.TimeMeasurable-">measure</a>, <a href="../../../../../org/apache/hadoop/hbase/util/MovingAverage.html#start--">start</a>, <a href="../../../../../org/apache/hadoop/hbase/util/MovingAverage.html#stop-long-">stop</a></code></li>
+</ul>
+<ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
 <!--   -->
 </a>
@@ -199,22 +213,13 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <!--   -->
 </a>
 <h3>Field Detail</h3>
-<a name="CLASS_RULE">
-<!--   -->
-</a>
-<ul class="blockList">
-<li class="blockList">
-<h4>CLASS_RULE</h4>
-<pre>public static final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/util/TestOrder.html#line.37">CLASS_RULE</a></pre>
-</li>
-</ul>
-<a name="VALS">
+<a name="count">
 <!--   -->
 </a>
 <ul class="blockListLast">
 <li class="blockList">
-<h4>VALS</h4>
-<pre>byte[][] <a href="../../../../../src-html/org/apache/hadoop/hbase/util/TestOrder.html#line.40">VALS</a></pre>
+<h4>count</h4>
+<pre>protected&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/util/SimpleMovingAverage.html#line.29">count</a></pre>
 </li>
 </ul>
 </li>
@@ -225,13 +230,13 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <!--   -->
 </a>
 <h3>Constructor Detail</h3>
-<a name="TestOrder--">
+<a name="SimpleMovingAverage--">
 <!--   -->
 </a>
 <ul class="blockListLast">
 <li class="blockList">
-<h4>TestOrder</h4>
-<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/TestOrder.html#line.34">TestOrder</a>()</pre>
+<h4>SimpleMovingAverage</h4>
+<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/SimpleMovingAverage.html#line.31">SimpleMovingAverage</a>()</pre>
 </li>
 </ul>
 </li>
@@ -242,22 +247,38 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <!--   -->
 </a>
 <h3>Method Detail</h3>
-<a name="testApplyAscending--">
+<a name="updateMostRecentTime-long-">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>testApplyAscending</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/TestOrder.html#line.43">testApplyAscending</a>()</pre>
+<h4>updateMostRecentTime</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/SimpleMovingAverage.html#line.37">updateMostRecentTime</a>(long&nbsp;elapsed)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/util/MovingAverage.html#updateMostRecentTime-long-">MovingAverage</a></code></span></div>
+<div class="block">Update the most recent data.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/hadoop/hbase/util/MovingAverage.html#updateMostRecentTime-long-">updateMostRecentTime</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/util/MovingAverage.html" title="class in org.apache.hadoop.hbase.util">MovingAverage</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>elapsed</code> - elapsed time of the most recent measurement</dd>
+</dl>
 </li>
 </ul>
-<a name="testApplyDescending--">
+<a name="getAverageTime--">
 <!--   -->
 </a>
 <ul class="blockListLast">
 <li class="blockList">
-<h4>testApplyDescending</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/TestOrder.html#line.65">testApplyDescending</a>()</pre>
+<h4>getAverageTime</h4>
+<pre>public&nbsp;double&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/SimpleMovingAverage.html#line.42">getAverageTime</a>()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/util/MovingAverage.html#getAverageTime--">MovingAverage</a></code></span></div>
+<div class="block">Get average execution time of the measured method.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/hadoop/hbase/util/MovingAverage.html#getAverageTime--">getAverageTime</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/util/MovingAverage.html" title="class in org.apache.hadoop.hbase.util">MovingAverage</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>average time in ns</dd>
+</dl>
 </li>
 </ul>
 </li>
@@ -279,7 +300,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <li><a href="../../../../../overview-summary.html">Overview</a></li>
 <li><a href="package-summary.html">Package</a></li>
 <li class="navBarCell1Rev">Class</li>
-<li><a href="class-use/TestOrder.html">Use</a></li>
+<li><a href="class-use/SimpleMovingAverage.html">Use</a></li>
 <li><a href="package-tree.html">Tree</a></li>
 <li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
 <li><a href="../../../../../index-all.html">Index</a></li>
@@ -288,12 +309,12 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 </div>
 <div class="subNav">
 <ul class="navList">
-<li><a href="../../../../../org/apache/hadoop/hbase/util/TestMiniClusterLoadSequential.html" title="class in org.apache.hadoop.hbase.util"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
-<li><a href="../../../../../org/apache/hadoop/hbase/util/TestOrderedBytes.html" title="class in org.apache.hadoop.hbase.util"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/util/SimpleByteRange.html" title="class in org.apache.hadoop.hbase.util"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/util/SimpleMutableByteRange.html" title="class in org.apache.hadoop.hbase.util"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
 </ul>
 <ul class="navList">
-<li><a href="../../../../../index.html?org/apache/hadoop/hbase/util/TestOrder.html" target="_top">Frames</a></li>
-<li><a href="TestOrder.html" target="_top">No&nbsp;Frames</a></li>
+<li><a href="../../../../../index.html?org/apache/hadoop/hbase/util/SimpleMovingAverage.html" target="_top">Frames</a></li>
+<li><a href="SimpleMovingAverage.html" target="_top">No&nbsp;Frames</a></li>
 </ul>
 <ul class="navList" id="allclasses_navbar_bottom">
 <li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
diff --git a/apidocs/org/apache/hadoop/hbase/util/SimpleMutableByteRange.html b/apidocs/org/apache/hadoop/hbase/util/SimpleMutableByteRange.html
index 850bc4d..f5a43da 100644
--- a/apidocs/org/apache/hadoop/hbase/util/SimpleMutableByteRange.html
+++ b/apidocs/org/apache/hadoop/hbase/util/SimpleMutableByteRange.html
@@ -49,7 +49,7 @@ var activeTableTab = "activeTableTab";
 </div>
 <div class="subNav">
 <ul class="navList">
-<li><a href="../../../../../org/apache/hadoop/hbase/util/SimpleByteRange.html" title="class in org.apache.hadoop.hbase.util"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/util/SimpleMovingAverage.html" title="class in org.apache.hadoop.hbase.util"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
 <li><a href="../../../../../org/apache/hadoop/hbase/util/SimplePositionedByteRange.html" title="class in org.apache.hadoop.hbase.util"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
 </ul>
 <ul class="navList">
@@ -655,7 +655,7 @@ extends org.apache.hadoop.hbase.util.AbstractByteRange</pre>
 </div>
 <div class="subNav">
 <ul class="navList">
-<li><a href="../../../../../org/apache/hadoop/hbase/util/SimpleByteRange.html" title="class in org.apache.hadoop.hbase.util"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/util/SimpleMovingAverage.html" title="class in org.apache.hadoop.hbase.util"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
 <li><a href="../../../../../org/apache/hadoop/hbase/util/SimplePositionedByteRange.html" title="class in org.apache.hadoop.hbase.util"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
 </ul>
 <ul class="navList">
diff --git a/apidocs/org/apache/hadoop/hbase/util/SimplePositionedMutableByteRange.html b/apidocs/org/apache/hadoop/hbase/util/SimplePositionedMutableByteRange.html
index e1f9e70..c2ce4a3 100644
--- a/apidocs/org/apache/hadoop/hbase/util/SimplePositionedMutableByteRange.html
+++ b/apidocs/org/apache/hadoop/hbase/util/SimplePositionedMutableByteRange.html
@@ -50,7 +50,7 @@ var activeTableTab = "activeTableTab";
 <div class="subNav">
 <ul class="navList">
 <li><a href="../../../../../org/apache/hadoop/hbase/util/SimplePositionedByteRange.html" title="class in org.apache.hadoop.hbase.util"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
-<li><a href="../../../../../org/apache/hadoop/hbase/util/VersionInfo.html" title="class in org.apache.hadoop.hbase.util"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/util/TimeMeasurable.html" title="interface in org.apache.hadoop.hbase.util"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
 </ul>
 <ul class="navList">
 <li><a href="../../../../../index.html?org/apache/hadoop/hbase/util/SimplePositionedMutableByteRange.html" target="_top">Frames</a></li>
@@ -1136,7 +1136,7 @@ extends org.apache.hadoop.hbase.util.AbstractPositionedByteRange</pre>
 <div class="subNav">
 <ul class="navList">
 <li><a href="../../../../../org/apache/hadoop/hbase/util/SimplePositionedByteRange.html" title="class in org.apache.hadoop.hbase.util"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
-<li><a href="../../../../../org/apache/hadoop/hbase/util/VersionInfo.html" title="class in org.apache.hadoop.hbase.util"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/util/TimeMeasurable.html" title="interface in org.apache.hadoop.hbase.util"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
 </ul>
 <ul class="navList">
 <li><a href="../../../../../index.html?org/apache/hadoop/hbase/util/SimplePositionedMutableByteRange.html" target="_top">Frames</a></li>
diff --git a/devapidocs/org/apache/hadoop/hbase/util/ModifyRegionUtils.RegionFillTask.html b/apidocs/org/apache/hadoop/hbase/util/TimeMeasurable.html
similarity index 66%
copy from devapidocs/org/apache/hadoop/hbase/util/ModifyRegionUtils.RegionFillTask.html
copy to apidocs/org/apache/hadoop/hbase/util/TimeMeasurable.html
index 70182ae..fc92385 100644
--- a/devapidocs/org/apache/hadoop/hbase/util/ModifyRegionUtils.RegionFillTask.html
+++ b/apidocs/org/apache/hadoop/hbase/util/TimeMeasurable.html
@@ -4,7 +4,7 @@
 <head>
 <!-- Generated by javadoc -->
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>ModifyRegionUtils.RegionFillTask (Apache HBase 3.0.0-SNAPSHOT API)</title>
+<title>TimeMeasurable (Apache HBase 3.0.0-SNAPSHOT API)</title>
 <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
 <script type="text/javascript" src="../../../../../script.js"></script>
 </head>
@@ -12,7 +12,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="ModifyRegionUtils.RegionFillTask (Apache HBase 3.0.0-SNAPSHOT API)";
+            parent.document.title="TimeMeasurable (Apache HBase 3.0.0-SNAPSHOT API)";
         }
     }
     catch(err) {
@@ -40,7 +40,7 @@ var activeTableTab = "activeTableTab";
 <li><a href="../../../../../overview-summary.html">Overview</a></li>
 <li><a href="package-summary.html">Package</a></li>
 <li class="navBarCell1Rev">Class</li>
-<li><a href="class-use/ModifyRegionUtils.RegionFillTask.html">Use</a></li>
+<li><a href="class-use/TimeMeasurable.html">Use</a></li>
 <li><a href="package-tree.html">Tree</a></li>
 <li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
 <li><a href="../../../../../index-all.html">Index</a></li>
@@ -49,12 +49,12 @@ var activeTableTab = "activeTableTab";
 </div>
 <div class="subNav">
 <ul class="navList">
-<li><a href="../../../../../org/apache/hadoop/hbase/util/ModifyRegionUtils.RegionEditTask.html" title="interface in org.apache.hadoop.hbase.util"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
-<li><a href="../../../../../org/apache/hadoop/hbase/util/MunkresAssignment.html" title="class in org.apache.hadoop.hbase.util"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/util/SimplePositionedMutableByteRange.html" title="class in org.apache.hadoop.hbase.util"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/util/VersionInfo.html" title="class in org.apache.hadoop.hbase.util"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
 </ul>
 <ul class="navList">
-<li><a href="../../../../../index.html?org/apache/hadoop/hbase/util/ModifyRegionUtils.RegionFillTask.html" target="_top">Frames</a></li>
-<li><a href="ModifyRegionUtils.RegionFillTask.html" target="_top">No&nbsp;Frames</a></li>
+<li><a href="../../../../../index.html?org/apache/hadoop/hbase/util/TimeMeasurable.html" target="_top">Frames</a></li>
+<li><a href="TimeMeasurable.html" target="_top">No&nbsp;Frames</a></li>
 </ul>
 <ul class="navList" id="allclasses_navbar_top">
 <li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
@@ -93,19 +93,18 @@ var activeTableTab = "activeTableTab";
 <!-- ======== START OF CLASS DATA ======== -->
 <div class="header">
 <div class="subTitle">org.apache.hadoop.hbase.util</div>
-<h2 title="Interface ModifyRegionUtils.RegionFillTask" class="title">Interface ModifyRegionUtils.RegionFillTask</h2>
+<h2 title="Interface TimeMeasurable" class="title">Interface TimeMeasurable&lt;T&gt;</h2>
 </div>
 <div class="contentContainer">
 <div class="description">
 <ul class="blockList">
 <li class="blockList">
-<dl>
-<dt>Enclosing class:</dt>
-<dd><a href="../../../../../org/apache/hadoop/hbase/util/ModifyRegionUtils.html" title="class in org.apache.hadoop.hbase.util">ModifyRegionUtils</a></dd>
-</dl>
 <hr>
 <br>
-<pre>public static interface <a href="../../../../../src-html/org/apache/hadoop/hbase/util/ModifyRegionUtils.html#line.55">ModifyRegionUtils.RegionFillTask</a></pre>
+<pre>@InterfaceAudience.Public
+public interface <a href="../../../../../src-html/org/apache/hadoop/hbase/util/TimeMeasurable.html#line.28">TimeMeasurable</a>&lt;T&gt;</pre>
+<div class="block">Methods that implement this interface can be measured elapsed time.
+ It works together with <a href="../../../../../org/apache/hadoop/hbase/util/MovingAverage.html" title="class in org.apache.hadoop.hbase.util"><code>MovingAverage</code></a> to take effect.</div>
 </li>
 </ul>
 </div>
@@ -125,8 +124,10 @@ var activeTableTab = "activeTableTab";
 <th class="colLast" scope="col">Method and Description</th>
 </tr>
 <tr id="i0" class="altColor">
-<td class="colFirst"><code>void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/ModifyRegionUtils.RegionFillTask.html#fillRegion-org.apache.hadoop.hbase.regionserver.HRegion-">fillRegion</a></span>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion</a>&nbsp;region)</code>&nbsp;</td>
+<td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/util/TimeMeasurable.html" title="type parameter in TimeMeasurable">T</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/TimeMeasurable.html#measure--">measure</a></span>()</code>
+<div class="block">Measure elapsed time.</div>
+</td>
 </tr>
 </table>
 </li>
@@ -143,17 +144,17 @@ var activeTableTab = "activeTableTab";
 <!--   -->
 </a>
 <h3>Method Detail</h3>
-<a name="fillRegion-org.apache.hadoop.hbase.regionserver.HRegion-">
+<a name="measure--">
 <!--   -->
 </a>
 <ul class="blockListLast">
 <li class="blockList">
-<h4>fillRegion</h4>
-<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/ModifyRegionUtils.RegionFillTask.html#line.56">fillRegion</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion</a>&nbsp;region)
-         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>
+<h4>measure</h4>
+<pre><a href="../../../../../org/apache/hadoop/hbase/util/TimeMeasurable.html" title="type parameter in TimeMeasurable">T</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/TimeMeasurable.html#line.34">measure</a>()</pre>
+<div class="block">Measure elapsed time.</div>
 <dl>
-<dt><span class="throwsLabel">Throws:</span></dt>
-<dd><code><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></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>T</dd>
 </dl>
 </li>
 </ul>
@@ -176,7 +177,7 @@ var activeTableTab = "activeTableTab";
 <li><a href="../../../../../overview-summary.html">Overview</a></li>
 <li><a href="package-summary.html">Package</a></li>
 <li class="navBarCell1Rev">Class</li>
-<li><a href="class-use/ModifyRegionUtils.RegionFillTask.html">Use</a></li>
+<li><a href="class-use/TimeMeasurable.html">Use</a></li>
 <li><a href="package-tree.html">Tree</a></li>
 <li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
 <li><a href="../../../../../index-all.html">Index</a></li>
@@ -185,12 +186,12 @@ var activeTableTab = "activeTableTab";
 </div>
 <div class="subNav">
 <ul class="navList">
-<li><a href="../../../../../org/apache/hadoop/hbase/util/ModifyRegionUtils.RegionEditTask.html" title="interface in org.apache.hadoop.hbase.util"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
-<li><a href="../../../../../org/apache/hadoop/hbase/util/MunkresAssignment.html" title="class in org.apache.hadoop.hbase.util"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/util/SimplePositionedMutableByteRange.html" title="class in org.apache.hadoop.hbase.util"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/util/VersionInfo.html" title="class in org.apache.hadoop.hbase.util"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
 </ul>
 <ul class="navList">
-<li><a href="../../../../../index.html?org/apache/hadoop/hbase/util/ModifyRegionUtils.RegionFillTask.html" target="_top">Frames</a></li>
-<li><a href="ModifyRegionUtils.RegionFillTask.html" target="_top">No&nbsp;Frames</a></li>
+<li><a href="../../../../../index.html?org/apache/hadoop/hbase/util/TimeMeasurable.html" target="_top">Frames</a></li>
+<li><a href="TimeMeasurable.html" target="_top">No&nbsp;Frames</a></li>
 </ul>
 <ul class="navList" id="allclasses_navbar_bottom">
 <li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
diff --git a/apidocs/org/apache/hadoop/hbase/util/VersionInfo.html b/apidocs/org/apache/hadoop/hbase/util/VersionInfo.html
index 881a827..7ddfbfc 100644
--- a/apidocs/org/apache/hadoop/hbase/util/VersionInfo.html
+++ b/apidocs/org/apache/hadoop/hbase/util/VersionInfo.html
@@ -49,8 +49,8 @@ var activeTableTab = "activeTableTab";
 </div>
 <div class="subNav">
 <ul class="navList">
-<li><a href="../../../../../org/apache/hadoop/hbase/util/SimplePositionedMutableByteRange.html" title="class in org.apache.hadoop.hbase.util"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
-<li>Next&nbsp;Class</li>
+<li><a href="../../../../../org/apache/hadoop/hbase/util/TimeMeasurable.html" title="interface in org.apache.hadoop.hbase.util"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/util/WeightedMovingAverage.html" title="class in org.apache.hadoop.hbase.util"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
 </ul>
 <ul class="navList">
 <li><a href="../../../../../index.html?org/apache/hadoop/hbase/util/VersionInfo.html" target="_top">Frames</a></li>
@@ -415,8 +415,8 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 </div>
 <div class="subNav">
 <ul class="navList">
-<li><a href="../../../../../org/apache/hadoop/hbase/util/SimplePositionedMutableByteRange.html" title="class in org.apache.hadoop.hbase.util"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
-<li>Next&nbsp;Class</li>
+<li><a href="../../../../../org/apache/hadoop/hbase/util/TimeMeasurable.html" title="interface in org.apache.hadoop.hbase.util"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/util/WeightedMovingAverage.html" title="class in org.apache.hadoop.hbase.util"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
 </ul>
 <ul class="navList">
 <li><a href="../../../../../index.html?org/apache/hadoop/hbase/util/VersionInfo.html" target="_top">Frames</a></li>
diff --git a/testdevapidocs/org/apache/hadoop/hbase/util/TestOrder.html b/apidocs/org/apache/hadoop/hbase/util/WeightedMovingAverage.html
similarity index 56%
copy from testdevapidocs/org/apache/hadoop/hbase/util/TestOrder.html
copy to apidocs/org/apache/hadoop/hbase/util/WeightedMovingAverage.html
index dc24acc..a2c9523 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/util/TestOrder.html
+++ b/apidocs/org/apache/hadoop/hbase/util/WeightedMovingAverage.html
@@ -4,7 +4,7 @@
 <head>
 <!-- Generated by javadoc -->
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>TestOrder (Apache HBase 3.0.0-SNAPSHOT Test API)</title>
+<title>WeightedMovingAverage (Apache HBase 3.0.0-SNAPSHOT API)</title>
 <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
 <script type="text/javascript" src="../../../../../script.js"></script>
 </head>
@@ -12,13 +12,13 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="TestOrder (Apache HBase 3.0.0-SNAPSHOT Test API)";
+            parent.document.title="WeightedMovingAverage (Apache HBase 3.0.0-SNAPSHOT API)";
         }
     }
     catch(err) {
     }
 //-->
-var methods = {"i0":10,"i1":10};
+var methods = {"i0":10};
 var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
 var altColor = "altColor";
 var rowColor = "rowColor";
@@ -40,7 +40,7 @@ var activeTableTab = "activeTableTab";
 <li><a href="../../../../../overview-summary.html">Overview</a></li>
 <li><a href="package-summary.html">Package</a></li>
 <li class="navBarCell1Rev">Class</li>
-<li><a href="class-use/TestOrder.html">Use</a></li>
+<li><a href="class-use/WeightedMovingAverage.html">Use</a></li>
 <li><a href="package-tree.html">Tree</a></li>
 <li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
 <li><a href="../../../../../index-all.html">Index</a></li>
@@ -49,12 +49,12 @@ var activeTableTab = "activeTableTab";
 </div>
 <div class="subNav">
 <ul class="navList">
-<li><a href="../../../../../org/apache/hadoop/hbase/util/TestMiniClusterLoadSequential.html" title="class in org.apache.hadoop.hbase.util"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
-<li><a href="../../../../../org/apache/hadoop/hbase/util/TestOrderedBytes.html" title="class in org.apache.hadoop.hbase.util"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/util/VersionInfo.html" title="class in org.apache.hadoop.hbase.util"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/util/WindowMovingAverage.html" title="class in org.apache.hadoop.hbase.util"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
 </ul>
 <ul class="navList">
-<li><a href="../../../../../index.html?org/apache/hadoop/hbase/util/TestOrder.html" target="_top">Frames</a></li>
-<li><a href="TestOrder.html" target="_top">No&nbsp;Frames</a></li>
+<li><a href="../../../../../index.html?org/apache/hadoop/hbase/util/WeightedMovingAverage.html" target="_top">Frames</a></li>
+<li><a href="WeightedMovingAverage.html" target="_top">No&nbsp;Frames</a></li>
 </ul>
 <ul class="navList" id="allclasses_navbar_top">
 <li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
@@ -75,13 +75,13 @@ var activeTableTab = "activeTableTab";
 <ul class="subNavList">
 <li>Summary:&nbsp;</li>
 <li>Nested&nbsp;|&nbsp;</li>
-<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#fields.inherited.from.class.org.apache.hadoop.hbase.util.WindowMovingAverage">Field</a>&nbsp;|&nbsp;</li>
 <li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
 <li><a href="#method.summary">Method</a></li>
 </ul>
 <ul class="subNavList">
 <li>Detail:&nbsp;</li>
-<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
 <li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
 <li><a href="#method.detail">Method</a></li>
 </ul>
@@ -93,14 +93,24 @@ var activeTableTab = "activeTableTab";
 <!-- ======== START OF CLASS DATA ======== -->
 <div class="header">
 <div class="subTitle">org.apache.hadoop.hbase.util</div>
-<h2 title="Class TestOrder" class="title">Class TestOrder</h2>
+<h2 title="Class WeightedMovingAverage" class="title">Class WeightedMovingAverage</h2>
 </div>
 <div class="contentContainer">
 <ul class="inheritance">
 <li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
 <li>
 <ul class="inheritance">
-<li>org.apache.hadoop.hbase.util.TestOrder</li>
+<li><a href="../../../../../org/apache/hadoop/hbase/util/MovingAverage.html" title="class in org.apache.hadoop.hbase.util">org.apache.hadoop.hbase.util.MovingAverage</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../../org/apache/hadoop/hbase/util/WindowMovingAverage.html" title="class in org.apache.hadoop.hbase.util">org.apache.hadoop.hbase.util.WindowMovingAverage</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.hadoop.hbase.util.WeightedMovingAverage</li>
+</ul>
+</li>
+</ul>
+</li>
 </ul>
 </li>
 </ul>
@@ -109,8 +119,11 @@ var activeTableTab = "activeTableTab";
 <li class="blockList">
 <hr>
 <br>
-<pre>public class <a href="../../../../../src-html/org/apache/hadoop/hbase/util/TestOrder.html#line.34">TestOrder</a>
-extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></pre>
+<pre>@InterfaceAudience.Public
+public class <a href="../../../../../src-html/org/apache/hadoop/hbase/util/WeightedMovingAverage.html#line.28">WeightedMovingAverage</a>
+extends <a href="../../../../../org/apache/hadoop/hbase/util/WindowMovingAverage.html" title="class in org.apache.hadoop.hbase.util">WindowMovingAverage</a></pre>
+<div class="block">Different from SMA <a href="../../../../../org/apache/hadoop/hbase/util/SimpleMovingAverage.html" title="class in org.apache.hadoop.hbase.util"><code>SimpleMovingAverage</code></a>, WeightedMovingAverage gives each data different
+ weight. And it is based on <a href="../../../../../org/apache/hadoop/hbase/util/WindowMovingAverage.html" title="class in org.apache.hadoop.hbase.util"><code>WindowMovingAverage</code></a>, such that it only focus on the last N.</div>
 </li>
 </ul>
 </div>
@@ -123,21 +136,13 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <!--   -->
 </a>
 <h3>Field Summary</h3>
-<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Field Summary table, listing fields, and an explanation">
-<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
-<tr>
-<th class="colFirst" scope="col">Modifier and Type</th>
-<th class="colLast" scope="col">Field and Description</th>
-</tr>
-<tr class="altColor">
-<td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/TestOrder.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
-</tr>
-<tr class="rowColor">
-<td class="colFirst"><code>(package private) byte[][]</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/TestOrder.html#VALS">VALS</a></span></code>&nbsp;</td>
-</tr>
-</table>
+<ul class="blockList">
+<li class="blockList"><a name="fields.inherited.from.class.org.apache.hadoop.hbase.util.WindowMovingAverage">
+<!--   -->
+</a>
+<h3>Fields inherited from class&nbsp;org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/WindowMovingAverage.html" title="class in org.apache.hadoop.hbase.util">WindowMovingAverage</a></h3>
+<code><a href="../../../../../org/apache/hadoop/hbase/util/WindowMovingAverage.html#DEFAULT_SIZE">DEFAULT_SIZE</a>, <a href="../../../../../org/apache/hadoop/hbase/util/WindowMovingAverage.html#lastN">lastN</a>, <a href="../../../../../org/apache/hadoop/hbase/util/WindowMovingAverage.html#mostRecent">mostRecent</a>, <a href="../../../../../org/apache/hadoop/hbase/util/WindowMovingAverage.html#oneRound">oneRound</a></code></li>
+</ul>
 </li>
 </ul>
 <!-- ======== CONSTRUCTOR SUMMARY ======== -->
@@ -152,7 +157,10 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <th class="colOne" scope="col">Constructor and Description</th>
 </tr>
 <tr class="altColor">
-<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/TestOrder.html#TestOrder--">TestOrder</a></span>()</code>&nbsp;</td>
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/WeightedMovingAverage.html#WeightedMovingAverage--">WeightedMovingAverage</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/WeightedMovingAverage.html#WeightedMovingAverage-int-">WeightedMovingAverage</a></span>(int&nbsp;size)</code>&nbsp;</td>
 </tr>
 </table>
 </li>
@@ -170,15 +178,27 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <th class="colLast" scope="col">Method and Description</th>
 </tr>
 <tr id="i0" class="altColor">
-<td class="colFirst"><code>void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/TestOrder.html#testApplyAscending--">testApplyAscending</a></span>()</code>&nbsp;</td>
-</tr>
-<tr id="i1" class="rowColor">
-<td class="colFirst"><code>void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/TestOrder.html#testApplyDescending--">testApplyDescending</a></span>()</code>&nbsp;</td>
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/WeightedMovingAverage.html#getAverageTime--">getAverageTime</a></span>()</code>
+<div class="block">Get average execution time of the measured method.</div>
+</td>
 </tr>
 </table>
 <ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.hadoop.hbase.util.WindowMovingAverage">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/WindowMovingAverage.html" title="class in org.apache.hadoop.hbase.util">WindowMovingAverage</a></h3>
+<code><a href="../../../../../org/apache/hadoop/hbase/util/WindowMovingAverage.html#enoughStatistics--">enoughStatistics</a>, <a href="../../../../../org/apache/hadoop/hbase/util/WindowMovingAverage.html#getMostRecentPosistion--">getMostRecentPosistion</a>, <a href="../../../../../org/apache/hadoop/hbase/util/WindowMovingAverage.html#getNumberOfStatistics--">getNumberOfStatistics</a>, <a href="../../../../../org/apache/hadoop/hbase/util/WindowMovingAverage.html#getStatisticsAtIndex-int-" [...]
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.hadoop.hbase.util.MovingAverage">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/MovingAverage.html" title="class in org.apache.hadoop.hbase.util">MovingAverage</a></h3>
+<code><a href="../../../../../org/apache/hadoop/hbase/util/MovingAverage.html#measure-org.apache.hadoop.hbase.util.TimeMeasurable-">measure</a>, <a href="../../../../../org/apache/hadoop/hbase/util/MovingAverage.html#start--">start</a>, <a href="../../../../../org/apache/hadoop/hbase/util/MovingAverage.html#stop-long-">stop</a></code></li>
+</ul>
+<ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
 <!--   -->
 </a>
@@ -193,45 +213,28 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <div class="details">
 <ul class="blockList">
 <li class="blockList">
-<!-- ============ FIELD DETAIL =========== -->
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
 <ul class="blockList">
-<li class="blockList"><a name="field.detail">
+<li class="blockList"><a name="constructor.detail">
 <!--   -->
 </a>
-<h3>Field Detail</h3>
-<a name="CLASS_RULE">
+<h3>Constructor Detail</h3>
+<a name="WeightedMovingAverage--">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>CLASS_RULE</h4>
-<pre>public static final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/util/TestOrder.html#line.37">CLASS_RULE</a></pre>
+<h4>WeightedMovingAverage</h4>
+<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/WeightedMovingAverage.html#line.32">WeightedMovingAverage</a>()</pre>
 </li>
 </ul>
-<a name="VALS">
+<a name="WeightedMovingAverage-int-">
 <!--   -->
 </a>
 <ul class="blockListLast">
 <li class="blockList">
-<h4>VALS</h4>
-<pre>byte[][] <a href="../../../../../src-html/org/apache/hadoop/hbase/util/TestOrder.html#line.40">VALS</a></pre>
-</li>
-</ul>
-</li>
-</ul>
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<ul class="blockList">
-<li class="blockList"><a name="constructor.detail">
-<!--   -->
-</a>
-<h3>Constructor Detail</h3>
-<a name="TestOrder--">
-<!--   -->
-</a>
-<ul class="blockListLast">
-<li class="blockList">
-<h4>TestOrder</h4>
-<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/TestOrder.html#line.34">TestOrder</a>()</pre>
+<h4>WeightedMovingAverage</h4>
+<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/WeightedMovingAverage.html#line.36">WeightedMovingAverage</a>(int&nbsp;size)</pre>
 </li>
 </ul>
 </li>
@@ -242,22 +245,21 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <!--   -->
 </a>
 <h3>Method Detail</h3>
-<a name="testApplyAscending--">
-<!--   -->
-</a>
-<ul class="blockList">
-<li class="blockList">
-<h4>testApplyAscending</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/TestOrder.html#line.43">testApplyAscending</a>()</pre>
-</li>
-</ul>
-<a name="testApplyDescending--">
+<a name="getAverageTime--">
 <!--   -->
 </a>
 <ul class="blockListLast">
 <li class="blockList">
-<h4>testApplyDescending</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/TestOrder.html#line.65">testApplyDescending</a>()</pre>
+<h4>getAverageTime</h4>
+<pre>public&nbsp;double&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/WeightedMovingAverage.html#line.48">getAverageTime</a>()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/util/MovingAverage.html#getAverageTime--">MovingAverage</a></code></span></div>
+<div class="block">Get average execution time of the measured method.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="../../../../../org/apache/hadoop/hbase/util/WindowMovingAverage.html#getAverageTime--">getAverageTime</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/util/WindowMovingAverage.html" title="class in org.apache.hadoop.hbase.util">WindowMovingAverage</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>average time in ns</dd>
+</dl>
 </li>
 </ul>
 </li>
@@ -279,7 +281,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <li><a href="../../../../../overview-summary.html">Overview</a></li>
 <li><a href="package-summary.html">Package</a></li>
 <li class="navBarCell1Rev">Class</li>
-<li><a href="class-use/TestOrder.html">Use</a></li>
+<li><a href="class-use/WeightedMovingAverage.html">Use</a></li>
 <li><a href="package-tree.html">Tree</a></li>
 <li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
 <li><a href="../../../../../index-all.html">Index</a></li>
@@ -288,12 +290,12 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 </div>
 <div class="subNav">
 <ul class="navList">
-<li><a href="../../../../../org/apache/hadoop/hbase/util/TestMiniClusterLoadSequential.html" title="class in org.apache.hadoop.hbase.util"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
-<li><a href="../../../../../org/apache/hadoop/hbase/util/TestOrderedBytes.html" title="class in org.apache.hadoop.hbase.util"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/util/VersionInfo.html" title="class in org.apache.hadoop.hbase.util"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/util/WindowMovingAverage.html" title="class in org.apache.hadoop.hbase.util"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
 </ul>
 <ul class="navList">
-<li><a href="../../../../../index.html?org/apache/hadoop/hbase/util/TestOrder.html" target="_top">Frames</a></li>
-<li><a href="TestOrder.html" target="_top">No&nbsp;Frames</a></li>
+<li><a href="../../../../../index.html?org/apache/hadoop/hbase/util/WeightedMovingAverage.html" target="_top">Frames</a></li>
+<li><a href="WeightedMovingAverage.html" target="_top">No&nbsp;Frames</a></li>
 </ul>
 <ul class="navList" id="allclasses_navbar_bottom">
 <li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
@@ -314,13 +316,13 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="subNavList">
 <li>Summary:&nbsp;</li>
 <li>Nested&nbsp;|&nbsp;</li>
-<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#fields.inherited.from.class.org.apache.hadoop.hbase.util.WindowMovingAverage">Field</a>&nbsp;|&nbsp;</li>
 <li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
 <li><a href="#method.summary">Method</a></li>
 </ul>
 <ul class="subNavList">
 <li>Detail:&nbsp;</li>
-<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li>Field&nbsp;|&nbsp;</li>
 <li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
 <li><a href="#method.detail">Method</a></li>
 </ul>
diff --git a/apidocs/org/apache/hadoop/hbase/util/WindowMovingAverage.html b/apidocs/org/apache/hadoop/hbase/util/WindowMovingAverage.html
new file mode 100644
index 0000000..196155d
--- /dev/null
+++ b/apidocs/org/apache/hadoop/hbase/util/WindowMovingAverage.html
@@ -0,0 +1,511 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>WindowMovingAverage (Apache HBase 3.0.0-SNAPSHOT API)</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="WindowMovingAverage (Apache HBase 3.0.0-SNAPSHOT API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/WindowMovingAverage.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/hadoop/hbase/util/WeightedMovingAverage.html" title="class in org.apache.hadoop.hbase.util"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li>Next&nbsp;Class</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/hadoop/hbase/util/WindowMovingAverage.html" target="_top">Frames</a></li>
+<li><a href="WindowMovingAverage.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.hadoop.hbase.util</div>
+<h2 title="Class WindowMovingAverage" class="title">Class WindowMovingAverage</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../../org/apache/hadoop/hbase/util/MovingAverage.html" title="class in org.apache.hadoop.hbase.util">org.apache.hadoop.hbase.util.MovingAverage</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.hadoop.hbase.util.WindowMovingAverage</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>Direct Known Subclasses:</dt>
+<dd><a href="../../../../../org/apache/hadoop/hbase/util/ExponentialMovingAverage.html" title="class in org.apache.hadoop.hbase.util">ExponentialMovingAverage</a>, <a href="../../../../../org/apache/hadoop/hbase/util/WeightedMovingAverage.html" title="class in org.apache.hadoop.hbase.util">WeightedMovingAverage</a></dd>
+</dl>
+<hr>
+<br>
+<pre>@InterfaceAudience.Public
+public class <a href="../../../../../src-html/org/apache/hadoop/hbase/util/WindowMovingAverage.html#line.28">WindowMovingAverage</a>
+extends <a href="../../../../../org/apache/hadoop/hbase/util/MovingAverage.html" title="class in org.apache.hadoop.hbase.util">MovingAverage</a></pre>
+<div class="block">Instead of calculate a whole time average, this class focus on the last N.
+ The last N is stored in a circle array.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== FIELD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field.summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Field Summary table, listing fields, and an explanation">
+<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Field and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>protected static int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/WindowMovingAverage.html#DEFAULT_SIZE">DEFAULT_SIZE</a></span></code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>protected long[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/WindowMovingAverage.html#lastN">lastN</a></span></code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>protected int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/WindowMovingAverage.html#mostRecent">mostRecent</a></span></code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>protected boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/WindowMovingAverage.html#oneRound">oneRound</a></span></code>&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/WindowMovingAverage.html#WindowMovingAverage--">WindowMovingAverage</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/WindowMovingAverage.html#WindowMovingAverage-int-">WindowMovingAverage</a></span>(int&nbsp;size)</code>&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>protected boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/WindowMovingAverage.html#enoughStatistics--">enoughStatistics</a></span>()</code>
+<div class="block">Check if there are enough statistics.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/WindowMovingAverage.html#getAverageTime--">getAverageTime</a></span>()</code>
+<div class="block">Get average execution time of the measured method.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>protected int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/WindowMovingAverage.html#getMostRecentPosistion--">getMostRecentPosistion</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>protected int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/WindowMovingAverage.html#getNumberOfStatistics--">getNumberOfStatistics</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code>protected long</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/WindowMovingAverage.html#getStatisticsAtIndex-int-">getStatisticsAtIndex</a></span>(int&nbsp;index)</code>
+<div class="block">Get statistics at index.</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code>protected int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/WindowMovingAverage.html#moveForwardMostRecentPosistion--">moveForwardMostRecentPosistion</a></span>()</code>
+<div class="block">Move forward the most recent index.</div>
+</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code>protected void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/WindowMovingAverage.html#updateMostRecentTime-long-">updateMostRecentTime</a></span>(long&nbsp;elapsed)</code>
+<div class="block">Update the most recent data.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.hadoop.hbase.util.MovingAverage">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/MovingAverage.html" title="class in org.apache.hadoop.hbase.util">MovingAverage</a></h3>
+<code><a href="../../../../../org/apache/hadoop/hbase/util/MovingAverage.html#measure-org.apache.hadoop.hbase.util.TimeMeasurable-">measure</a>, <a href="../../../../../org/apache/hadoop/hbase/util/MovingAverage.html#start--">start</a>, <a href="../../../../../org/apache/hadoop/hbase/util/MovingAverage.html#stop-long-">stop</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="htt [...]
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ FIELD DETAIL =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field.detail">
+<!--   -->
+</a>
+<h3>Field Detail</h3>
+<a name="DEFAULT_SIZE">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>DEFAULT_SIZE</h4>
+<pre>protected static final&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/util/WindowMovingAverage.html#line.29">DEFAULT_SIZE</a></pre>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../../constant-values.html#org.apache.hadoop.hbase.util.WindowMovingAverage.DEFAULT_SIZE">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+<a name="lastN">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>lastN</h4>
+<pre>protected&nbsp;long[] <a href="../../../../../src-html/org/apache/hadoop/hbase/util/WindowMovingAverage.html#line.32">lastN</a></pre>
+</li>
+</ul>
+<a name="mostRecent">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>mostRecent</h4>
+<pre>protected&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/util/WindowMovingAverage.html#line.34">mostRecent</a></pre>
+</li>
+</ul>
+<a name="oneRound">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>oneRound</h4>
+<pre>protected&nbsp;boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/util/WindowMovingAverage.html#line.36">oneRound</a></pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="WindowMovingAverage--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>WindowMovingAverage</h4>
+<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/WindowMovingAverage.html#line.38">WindowMovingAverage</a>()</pre>
+</li>
+</ul>
+<a name="WindowMovingAverage-int-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>WindowMovingAverage</h4>
+<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/WindowMovingAverage.html#line.42">WindowMovingAverage</a>(int&nbsp;size)</pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="updateMostRecentTime-long-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>updateMostRecentTime</h4>
+<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/WindowMovingAverage.html#line.49">updateMostRecentTime</a>(long&nbsp;elapsed)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/util/MovingAverage.html#updateMostRecentTime-long-">MovingAverage</a></code></span></div>
+<div class="block">Update the most recent data.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/hadoop/hbase/util/MovingAverage.html#updateMostRecentTime-long-">updateMostRecentTime</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/util/MovingAverage.html" title="class in org.apache.hadoop.hbase.util">MovingAverage</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>elapsed</code> - elapsed time of the most recent measurement</dd>
+</dl>
+</li>
+</ul>
+<a name="getAverageTime--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getAverageTime</h4>
+<pre>public&nbsp;double&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/WindowMovingAverage.html#line.55">getAverageTime</a>()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/util/MovingAverage.html#getAverageTime--">MovingAverage</a></code></span></div>
+<div class="block">Get average execution time of the measured method.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/hadoop/hbase/util/MovingAverage.html#getAverageTime--">getAverageTime</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/util/MovingAverage.html" title="class in org.apache.hadoop.hbase.util">MovingAverage</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>average time in ns</dd>
+</dl>
+</li>
+</ul>
+<a name="enoughStatistics--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>enoughStatistics</h4>
+<pre>protected&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/WindowMovingAverage.html#line.65">enoughStatistics</a>()</pre>
+<div class="block">Check if there are enough statistics.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>true if lastN is full</dd>
+</dl>
+</li>
+</ul>
+<a name="getNumberOfStatistics--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getNumberOfStatistics</h4>
+<pre>protected&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/WindowMovingAverage.html#line.72">getNumberOfStatistics</a>()</pre>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>number of statistics</dd>
+</dl>
+</li>
+</ul>
+<a name="getStatisticsAtIndex-int-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getStatisticsAtIndex</h4>
+<pre>protected&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/WindowMovingAverage.html#line.81">getStatisticsAtIndex</a>(int&nbsp;index)</pre>
+<div class="block">Get statistics at index.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>index</code> - index of bar</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>statistics</dd>
+</dl>
+</li>
+</ul>
+<a name="getMostRecentPosistion--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getMostRecentPosistion</h4>
+<pre>protected&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/WindowMovingAverage.html#line.92">getMostRecentPosistion</a>()</pre>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>index of most recent</dd>
+</dl>
+</li>
+</ul>
+<a name="moveForwardMostRecentPosistion--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>moveForwardMostRecentPosistion</h4>
+<pre>protected&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/WindowMovingAverage.html#line.100">moveForwardMostRecentPosistion</a>()</pre>
+<div class="block">Move forward the most recent index.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>the most recent index</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/WindowMovingAverage.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/hadoop/hbase/util/WeightedMovingAverage.html" title="class in org.apache.hadoop.hbase.util"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li>Next&nbsp;Class</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/hadoop/hbase/util/WindowMovingAverage.html" target="_top">Frames</a></li>
+<li><a href="WindowMovingAverage.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2007&#x2013;2019 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/org/apache/hadoop/hbase/util/class-use/ExponentialMovingAverage.html b/apidocs/org/apache/hadoop/hbase/util/class-use/ExponentialMovingAverage.html
new file mode 100644
index 0000000..8ed8318
--- /dev/null
+++ b/apidocs/org/apache/hadoop/hbase/util/class-use/ExponentialMovingAverage.html
@@ -0,0 +1,125 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.hadoop.hbase.util.ExponentialMovingAverage (Apache HBase 3.0.0-SNAPSHOT API)</title>
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.hadoop.hbase.util.ExponentialMovingAverage (Apache HBase 3.0.0-SNAPSHOT API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/hadoop/hbase/util/ExponentialMovingAverage.html" title="class in org.apache.hadoop.hbase.util">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/hadoop/hbase/util/class-use/ExponentialMovingAverage.html" target="_top">Frames</a></li>
+<li><a href="ExponentialMovingAverage.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.hadoop.hbase.util.ExponentialMovingAverage" class="title">Uses of Class<br>org.apache.hadoop.hbase.util.ExponentialMovingAverage</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.hadoop.hbase.util.ExponentialMovingAverage</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/hadoop/hbase/util/ExponentialMovingAverage.html" title="class in org.apache.hadoop.hbase.util">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/hadoop/hbase/util/class-use/ExponentialMovingAverage.html" target="_top">Frames</a></li>
+<li><a href="ExponentialMovingAverage.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2007&#x2013;2019 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/org/apache/hadoop/hbase/util/class-use/MovingAverage.html b/apidocs/org/apache/hadoop/hbase/util/class-use/MovingAverage.html
new file mode 100644
index 0000000..d18f385
--- /dev/null
+++ b/apidocs/org/apache/hadoop/hbase/util/class-use/MovingAverage.html
@@ -0,0 +1,187 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.hadoop.hbase.util.MovingAverage (Apache HBase 3.0.0-SNAPSHOT API)</title>
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.hadoop.hbase.util.MovingAverage (Apache HBase 3.0.0-SNAPSHOT API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/hadoop/hbase/util/MovingAverage.html" title="class in org.apache.hadoop.hbase.util">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/hadoop/hbase/util/class-use/MovingAverage.html" target="_top">Frames</a></li>
+<li><a href="MovingAverage.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.hadoop.hbase.util.MovingAverage" class="title">Uses of Class<br>org.apache.hadoop.hbase.util.MovingAverage</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../../org/apache/hadoop/hbase/util/MovingAverage.html" title="class in org.apache.hadoop.hbase.util">MovingAverage</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.hadoop.hbase.util">org.apache.hadoop.hbase.util</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.hadoop.hbase.util">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../org/apache/hadoop/hbase/util/MovingAverage.html" title="class in org.apache.hadoop.hbase.util">MovingAverage</a> in <a href="../../../../../../org/apache/hadoop/hbase/util/package-summary.html">org.apache.hadoop.hbase.util</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing subclasses, and an explanation">
+<caption><span>Subclasses of <a href="../../../../../../org/apache/hadoop/hbase/util/MovingAverage.html" title="class in org.apache.hadoop.hbase.util">MovingAverage</a> in <a href="../../../../../../org/apache/hadoop/hbase/util/package-summary.html">org.apache.hadoop.hbase.util</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/util/ExponentialMovingAverage.html" title="class in org.apache.hadoop.hbase.util">ExponentialMovingAverage</a></span></code>
+<div class="block">EMA is similar to <a href="../../../../../../org/apache/hadoop/hbase/util/WeightedMovingAverage.html" title="class in org.apache.hadoop.hbase.util"><code>WeightedMovingAverage</code></a> in weighted, but the weighting factor decrease
+ exponentially.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/util/SimpleMovingAverage.html" title="class in org.apache.hadoop.hbase.util">SimpleMovingAverage</a></span></code>
+<div class="block">SMA measure the overall average execution time of a specific method.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/util/WeightedMovingAverage.html" title="class in org.apache.hadoop.hbase.util">WeightedMovingAverage</a></span></code>
+<div class="block">Different from SMA <a href="../../../../../../org/apache/hadoop/hbase/util/SimpleMovingAverage.html" title="class in org.apache.hadoop.hbase.util"><code>SimpleMovingAverage</code></a>, WeightedMovingAverage gives each data different
+ weight.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/util/WindowMovingAverage.html" title="class in org.apache.hadoop.hbase.util">WindowMovingAverage</a></span></code>
+<div class="block">Instead of calculate a whole time average, this class focus on the last N.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/hadoop/hbase/util/MovingAverage.html" title="class in org.apache.hadoop.hbase.util">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/hadoop/hbase/util/class-use/MovingAverage.html" target="_top">Frames</a></li>
+<li><a href="MovingAverage.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2007&#x2013;2019 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/org/apache/hadoop/hbase/util/class-use/SimpleMovingAverage.html b/apidocs/org/apache/hadoop/hbase/util/class-use/SimpleMovingAverage.html
new file mode 100644
index 0000000..c72d56e
--- /dev/null
+++ b/apidocs/org/apache/hadoop/hbase/util/class-use/SimpleMovingAverage.html
@@ -0,0 +1,125 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.hadoop.hbase.util.SimpleMovingAverage (Apache HBase 3.0.0-SNAPSHOT API)</title>
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.hadoop.hbase.util.SimpleMovingAverage (Apache HBase 3.0.0-SNAPSHOT API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/hadoop/hbase/util/SimpleMovingAverage.html" title="class in org.apache.hadoop.hbase.util">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/hadoop/hbase/util/class-use/SimpleMovingAverage.html" target="_top">Frames</a></li>
+<li><a href="SimpleMovingAverage.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.hadoop.hbase.util.SimpleMovingAverage" class="title">Uses of Class<br>org.apache.hadoop.hbase.util.SimpleMovingAverage</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.hadoop.hbase.util.SimpleMovingAverage</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/hadoop/hbase/util/SimpleMovingAverage.html" title="class in org.apache.hadoop.hbase.util">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/hadoop/hbase/util/class-use/SimpleMovingAverage.html" target="_top">Frames</a></li>
+<li><a href="SimpleMovingAverage.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2007&#x2013;2019 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/org/apache/hadoop/hbase/util/class-use/TimeMeasurable.html b/apidocs/org/apache/hadoop/hbase/util/class-use/TimeMeasurable.html
new file mode 100644
index 0000000..739cdc2
--- /dev/null
+++ b/apidocs/org/apache/hadoop/hbase/util/class-use/TimeMeasurable.html
@@ -0,0 +1,167 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Interface org.apache.hadoop.hbase.util.TimeMeasurable (Apache HBase 3.0.0-SNAPSHOT API)</title>
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface org.apache.hadoop.hbase.util.TimeMeasurable (Apache HBase 3.0.0-SNAPSHOT API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/hadoop/hbase/util/TimeMeasurable.html" title="interface in org.apache.hadoop.hbase.util">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/hadoop/hbase/util/class-use/TimeMeasurable.html" target="_top">Frames</a></li>
+<li><a href="TimeMeasurable.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Interface org.apache.hadoop.hbase.util.TimeMeasurable" class="title">Uses of Interface<br>org.apache.hadoop.hbase.util.TimeMeasurable</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../../org/apache/hadoop/hbase/util/TimeMeasurable.html" title="interface in org.apache.hadoop.hbase.util">TimeMeasurable</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.hadoop.hbase.util">org.apache.hadoop.hbase.util</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.hadoop.hbase.util">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../org/apache/hadoop/hbase/util/TimeMeasurable.html" title="interface in org.apache.hadoop.hbase.util">TimeMeasurable</a> in <a href="../../../../../../org/apache/hadoop/hbase/util/package-summary.html">org.apache.hadoop.hbase.util</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../../org/apache/hadoop/hbase/util/package-summary.html">org.apache.hadoop.hbase.util</a> with parameters of type <a href="../../../../../../org/apache/hadoop/hbase/util/TimeMeasurable.html" title="interface in org.apache.hadoop.hbase.util">TimeMeasurable</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/util/MovingAverage.html" title="type parameter in MovingAverage">T</a></code></td>
+<td class="colLast"><span class="typeNameLabel">MovingAverage.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/util/MovingAverage.html#measure-org.apache.hadoop.hbase.util.TimeMeasurable-">measure</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/util/TimeMeasurable.html" title="interface in org.apache.hadoop.hbase.util">TimeMeasurable</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/util/MovingAverage.html" title="type par [...]
+<div class="block">Measure elapsed time of a measurable method.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/hadoop/hbase/util/TimeMeasurable.html" title="interface in org.apache.hadoop.hbase.util">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/hadoop/hbase/util/class-use/TimeMeasurable.html" target="_top">Frames</a></li>
+<li><a href="TimeMeasurable.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2007&#x2013;2019 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/org/apache/hadoop/hbase/util/class-use/WeightedMovingAverage.html b/apidocs/org/apache/hadoop/hbase/util/class-use/WeightedMovingAverage.html
new file mode 100644
index 0000000..6e9a60f
--- /dev/null
+++ b/apidocs/org/apache/hadoop/hbase/util/class-use/WeightedMovingAverage.html
@@ -0,0 +1,125 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.hadoop.hbase.util.WeightedMovingAverage (Apache HBase 3.0.0-SNAPSHOT API)</title>
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.hadoop.hbase.util.WeightedMovingAverage (Apache HBase 3.0.0-SNAPSHOT API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/hadoop/hbase/util/WeightedMovingAverage.html" title="class in org.apache.hadoop.hbase.util">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/hadoop/hbase/util/class-use/WeightedMovingAverage.html" target="_top">Frames</a></li>
+<li><a href="WeightedMovingAverage.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.hadoop.hbase.util.WeightedMovingAverage" class="title">Uses of Class<br>org.apache.hadoop.hbase.util.WeightedMovingAverage</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.hadoop.hbase.util.WeightedMovingAverage</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/hadoop/hbase/util/WeightedMovingAverage.html" title="class in org.apache.hadoop.hbase.util">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/hadoop/hbase/util/class-use/WeightedMovingAverage.html" target="_top">Frames</a></li>
+<li><a href="WeightedMovingAverage.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2007&#x2013;2019 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/org/apache/hadoop/hbase/util/class-use/WindowMovingAverage.html b/apidocs/org/apache/hadoop/hbase/util/class-use/WindowMovingAverage.html
new file mode 100644
index 0000000..4cc7981
--- /dev/null
+++ b/apidocs/org/apache/hadoop/hbase/util/class-use/WindowMovingAverage.html
@@ -0,0 +1,175 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.hadoop.hbase.util.WindowMovingAverage (Apache HBase 3.0.0-SNAPSHOT API)</title>
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.hadoop.hbase.util.WindowMovingAverage (Apache HBase 3.0.0-SNAPSHOT API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/hadoop/hbase/util/WindowMovingAverage.html" title="class in org.apache.hadoop.hbase.util">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/hadoop/hbase/util/class-use/WindowMovingAverage.html" target="_top">Frames</a></li>
+<li><a href="WindowMovingAverage.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.hadoop.hbase.util.WindowMovingAverage" class="title">Uses of Class<br>org.apache.hadoop.hbase.util.WindowMovingAverage</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../../org/apache/hadoop/hbase/util/WindowMovingAverage.html" title="class in org.apache.hadoop.hbase.util">WindowMovingAverage</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.hadoop.hbase.util">org.apache.hadoop.hbase.util</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.hadoop.hbase.util">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../org/apache/hadoop/hbase/util/WindowMovingAverage.html" title="class in org.apache.hadoop.hbase.util">WindowMovingAverage</a> in <a href="../../../../../../org/apache/hadoop/hbase/util/package-summary.html">org.apache.hadoop.hbase.util</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing subclasses, and an explanation">
+<caption><span>Subclasses of <a href="../../../../../../org/apache/hadoop/hbase/util/WindowMovingAverage.html" title="class in org.apache.hadoop.hbase.util">WindowMovingAverage</a> in <a href="../../../../../../org/apache/hadoop/hbase/util/package-summary.html">org.apache.hadoop.hbase.util</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/util/ExponentialMovingAverage.html" title="class in org.apache.hadoop.hbase.util">ExponentialMovingAverage</a></span></code>
+<div class="block">EMA is similar to <a href="../../../../../../org/apache/hadoop/hbase/util/WeightedMovingAverage.html" title="class in org.apache.hadoop.hbase.util"><code>WeightedMovingAverage</code></a> in weighted, but the weighting factor decrease
+ exponentially.</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/util/WeightedMovingAverage.html" title="class in org.apache.hadoop.hbase.util">WeightedMovingAverage</a></span></code>
+<div class="block">Different from SMA <a href="../../../../../../org/apache/hadoop/hbase/util/SimpleMovingAverage.html" title="class in org.apache.hadoop.hbase.util"><code>SimpleMovingAverage</code></a>, WeightedMovingAverage gives each data different
+ weight.</div>
+</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/hadoop/hbase/util/WindowMovingAverage.html" title="class in org.apache.hadoop.hbase.util">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../package-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/hadoop/hbase/util/class-use/WindowMovingAverage.html" target="_top">Frames</a></li>
+<li><a href="WindowMovingAverage.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2007&#x2013;2019 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/apidocs/org/apache/hadoop/hbase/util/package-frame.html b/apidocs/org/apache/hadoop/hbase/util/package-frame.html
index 5e423c5..b9ca132 100644
--- a/apidocs/org/apache/hadoop/hbase/util/package-frame.html
+++ b/apidocs/org/apache/hadoop/hbase/util/package-frame.html
@@ -15,6 +15,7 @@
 <ul title="Interfaces">
 <li><a href="ByteRange.html" title="interface in org.apache.hadoop.hbase.util" target="classFrame"><span class="interfaceName">ByteRange</span></a></li>
 <li><a href="PositionedByteRange.html" title="interface in org.apache.hadoop.hbase.util" target="classFrame"><span class="interfaceName">PositionedByteRange</span></a></li>
+<li><a href="TimeMeasurable.html" title="interface in org.apache.hadoop.hbase.util" target="classFrame"><span class="interfaceName">TimeMeasurable</span></a></li>
 </ul>
 <h2 title="Classes">Classes</h2>
 <ul title="Classes">
@@ -23,17 +24,22 @@
 <li><a href="Bytes.ByteArrayComparator.html" title="class in org.apache.hadoop.hbase.util" target="classFrame">Bytes.ByteArrayComparator</a></li>
 <li><a href="Bytes.RowEndKeyComparator.html" title="class in org.apache.hadoop.hbase.util" target="classFrame">Bytes.RowEndKeyComparator</a></li>
 <li><a href="ConfigurationUtil.html" title="class in org.apache.hadoop.hbase.util" target="classFrame">ConfigurationUtil</a></li>
+<li><a href="ExponentialMovingAverage.html" title="class in org.apache.hadoop.hbase.util" target="classFrame">ExponentialMovingAverage</a></li>
 <li><a href="JsonMapper.html" title="class in org.apache.hadoop.hbase.util" target="classFrame">JsonMapper</a></li>
 <li><a href="MD5Hash.html" title="class in org.apache.hadoop.hbase.util" target="classFrame">MD5Hash</a></li>
+<li><a href="MovingAverage.html" title="class in org.apache.hadoop.hbase.util" target="classFrame">MovingAverage</a></li>
 <li><a href="OrderedBytes.html" title="class in org.apache.hadoop.hbase.util" target="classFrame">OrderedBytes</a></li>
 <li><a href="Pair.html" title="class in org.apache.hadoop.hbase.util" target="classFrame">Pair</a></li>
 <li><a href="PairOfSameType.html" title="class in org.apache.hadoop.hbase.util" target="classFrame">PairOfSameType</a></li>
 <li><a href="RegionMover.html" title="class in org.apache.hadoop.hbase.util" target="classFrame">RegionMover</a></li>
 <li><a href="SimpleByteRange.html" title="class in org.apache.hadoop.hbase.util" target="classFrame">SimpleByteRange</a></li>
+<li><a href="SimpleMovingAverage.html" title="class in org.apache.hadoop.hbase.util" target="classFrame">SimpleMovingAverage</a></li>
 <li><a href="SimpleMutableByteRange.html" title="class in org.apache.hadoop.hbase.util" target="classFrame">SimpleMutableByteRange</a></li>
 <li><a href="SimplePositionedByteRange.html" title="class in org.apache.hadoop.hbase.util" target="classFrame">SimplePositionedByteRange</a></li>
 <li><a href="SimplePositionedMutableByteRange.html" title="class in org.apache.hadoop.hbase.util" target="classFrame">SimplePositionedMutableByteRange</a></li>
 <li><a href="VersionInfo.html" title="class in org.apache.hadoop.hbase.util" target="classFrame">VersionInfo</a></li>
+<li><a href="WeightedMovingAverage.html" title="class in org.apache.hadoop.hbase.util" target="classFrame">WeightedMovingAverage</a></li>
+<li><a href="WindowMovingAverage.html" title="class in org.apache.hadoop.hbase.util" target="classFrame">WindowMovingAverage</a></li>
 </ul>
 <h2 title="Enums">Enums</h2>
 <ul title="Enums">
diff --git a/apidocs/org/apache/hadoop/hbase/util/package-summary.html b/apidocs/org/apache/hadoop/hbase/util/package-summary.html
index 0eaa2df..75185f2 100644
--- a/apidocs/org/apache/hadoop/hbase/util/package-summary.html
+++ b/apidocs/org/apache/hadoop/hbase/util/package-summary.html
@@ -96,6 +96,12 @@
  consumers position within the viewport.</div>
 </td>
 </tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/util/TimeMeasurable.html" title="interface in org.apache.hadoop.hbase.util">TimeMeasurable</a>&lt;T&gt;</td>
+<td class="colLast">
+<div class="block">Methods that implement this interface can be measured elapsed time.</div>
+</td>
+</tr>
 </tbody>
 </table>
 </li>
@@ -141,18 +147,33 @@
 </td>
 </tr>
 <tr class="rowColor">
+<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/util/ExponentialMovingAverage.html" title="class in org.apache.hadoop.hbase.util">ExponentialMovingAverage</a></td>
+<td class="colLast">
+<div class="block">EMA is similar to <a href="../../../../../org/apache/hadoop/hbase/util/WeightedMovingAverage.html" title="class in org.apache.hadoop.hbase.util"><code>WeightedMovingAverage</code></a> in weighted, but the weighting factor decrease
+ exponentially.</div>
+</td>
+</tr>
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/util/JsonMapper.html" title="class in org.apache.hadoop.hbase.util">JsonMapper</a></td>
 <td class="colLast">
 <div class="block">Utility class for converting objects to JSON</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/util/MD5Hash.html" title="class in org.apache.hadoop.hbase.util">MD5Hash</a></td>
 <td class="colLast">
 <div class="block">Utility class for MD5
  MD5 hash produces a 128-bit digest.</div>
 </td>
 </tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/util/MovingAverage.html" title="class in org.apache.hadoop.hbase.util">MovingAverage</a>&lt;T&gt;</td>
+<td class="colLast">
+<div class="block">The purpose of introduction of <a href="../../../../../org/apache/hadoop/hbase/util/MovingAverage.html" title="class in org.apache.hadoop.hbase.util"><code>MovingAverage</code></a> mainly is to measure execution time of a
+ specific method, which can help us to know its performance fluctuation in response to different
+ machine states or situations, better case, then to act accordingly.</div>
+</td>
+</tr>
 <tr class="rowColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/util/OrderedBytes.html" title="class in org.apache.hadoop.hbase.util">OrderedBytes</a></td>
 <td class="colLast">
@@ -185,31 +206,50 @@
 </td>
 </tr>
 <tr class="altColor">
+<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/util/SimpleMovingAverage.html" title="class in org.apache.hadoop.hbase.util">SimpleMovingAverage</a></td>
+<td class="colLast">
+<div class="block">SMA measure the overall average execution time of a specific method.</div>
+</td>
+</tr>
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/util/SimpleMutableByteRange.html" title="class in org.apache.hadoop.hbase.util">SimpleMutableByteRange</a></td>
 <td class="colLast">
 <div class="block">A basic mutable <a href="../../../../../org/apache/hadoop/hbase/util/ByteRange.html" title="interface in org.apache.hadoop.hbase.util"><code>ByteRange</code></a> implementation.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/util/SimplePositionedByteRange.html" title="class in org.apache.hadoop.hbase.util">SimplePositionedByteRange</a></td>
 <td class="colLast">
 <div class="block">Extends the basic <a href="../../../../../org/apache/hadoop/hbase/util/SimpleMutableByteRange.html" title="class in org.apache.hadoop.hbase.util"><code>SimpleMutableByteRange</code></a> implementation with position
  support and it is a readonly version.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/util/SimplePositionedMutableByteRange.html" title="class in org.apache.hadoop.hbase.util">SimplePositionedMutableByteRange</a></td>
 <td class="colLast">
 <div class="block">Extends the basic <code>AbstractPositionedByteRange</code> implementation with
  position support and it is a mutable version.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/util/VersionInfo.html" title="class in org.apache.hadoop.hbase.util">VersionInfo</a></td>
 <td class="colLast">
 <div class="block">This class finds the Version information for HBase.</div>
 </td>
 </tr>
+<tr class="rowColor">
+<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/util/WeightedMovingAverage.html" title="class in org.apache.hadoop.hbase.util">WeightedMovingAverage</a></td>
+<td class="colLast">
+<div class="block">Different from SMA <a href="../../../../../org/apache/hadoop/hbase/util/SimpleMovingAverage.html" title="class in org.apache.hadoop.hbase.util"><code>SimpleMovingAverage</code></a>, WeightedMovingAverage gives each data different
+ weight.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/util/WindowMovingAverage.html" title="class in org.apache.hadoop.hbase.util">WindowMovingAverage</a></td>
+<td class="colLast">
+<div class="block">Instead of calculate a whole time average, this class focus on the last N.</div>
+</td>
+</tr>
 </tbody>
 </table>
 </li>
diff --git a/apidocs/org/apache/hadoop/hbase/util/package-tree.html b/apidocs/org/apache/hadoop/hbase/util/package-tree.html
index 5420d7a..8f4712a 100644
--- a/apidocs/org/apache/hadoop/hbase/util/package-tree.html
+++ b/apidocs/org/apache/hadoop/hbase/util/package-tree.html
@@ -108,6 +108,17 @@
 <li type="circle">org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/ConfigurationUtil.html" title="class in org.apache.hadoop.hbase.util"><span class="typeNameLink">ConfigurationUtil</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/JsonMapper.html" title="class in org.apache.hadoop.hbase.util"><span class="typeNameLink">JsonMapper</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/MD5Hash.html" title="class in org.apache.hadoop.hbase.util"><span class="typeNameLink">MD5Hash</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/MovingAverage.html" title="class in org.apache.hadoop.hbase.util"><span class="typeNameLink">MovingAverage</span></a>&lt;T&gt;
+<ul>
+<li type="circle">org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/SimpleMovingAverage.html" title="class in org.apache.hadoop.hbase.util"><span class="typeNameLink">SimpleMovingAverage</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/WindowMovingAverage.html" title="class in org.apache.hadoop.hbase.util"><span class="typeNameLink">WindowMovingAverage</span></a>
+<ul>
+<li type="circle">org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/ExponentialMovingAverage.html" title="class in org.apache.hadoop.hbase.util"><span class="typeNameLink">ExponentialMovingAverage</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/WeightedMovingAverage.html" title="class in org.apache.hadoop.hbase.util"><span class="typeNameLink">WeightedMovingAverage</span></a></li>
+</ul>
+</li>
+</ul>
+</li>
 <li type="circle">org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/OrderedBytes.html" title="class in org.apache.hadoop.hbase.util"><span class="typeNameLink">OrderedBytes</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/Pair.html" title="class in org.apache.hadoop.hbase.util"><span class="typeNameLink">Pair</span></a>&lt;T1,T2&gt; (implements java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)</li>
 <li type="circle">org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/PairOfSameType.html" title="class in org.apache.hadoop.hbase.util"><span class="typeNameLink">PairOfSameType</span></a>&lt;T&gt; (implements java.lang.<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;T&gt;)</li>
@@ -153,6 +164,7 @@
 </li>
 </ul>
 </li>
+<li type="circle">org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/TimeMeasurable.html" title="interface in org.apache.hadoop.hbase.util"><span class="typeNameLink">TimeMeasurable</span></a>&lt;T&gt;</li>
 </ul>
 <h2 title="Enum Hierarchy">Enum Hierarchy</h2>
 <ul>
diff --git a/apidocs/org/apache/hadoop/hbase/util/package-use.html b/apidocs/org/apache/hadoop/hbase/util/package-use.html
index ce5d18e..33636a9 100644
--- a/apidocs/org/apache/hadoop/hbase/util/package-use.html
+++ b/apidocs/org/apache/hadoop/hbase/util/package-use.html
@@ -250,23 +250,40 @@ Input/OutputFormats, a table indexing MapReduce job, and utility methods.</div>
 </td>
 </tr>
 <tr class="rowColor">
+<td class="colOne"><a href="../../../../../org/apache/hadoop/hbase/util/class-use/MovingAverage.html#org.apache.hadoop.hbase.util">MovingAverage</a>
+<div class="block">The purpose of introduction of <a href="../../../../../org/apache/hadoop/hbase/util/MovingAverage.html" title="class in org.apache.hadoop.hbase.util"><code>MovingAverage</code></a> mainly is to measure execution time of a
+ specific method, which can help us to know its performance fluctuation in response to different
+ machine states or situations, better case, then to act accordingly.</div>
+</td>
+</tr>
+<tr class="altColor">
 <td class="colOne"><a href="../../../../../org/apache/hadoop/hbase/util/class-use/Order.html#org.apache.hadoop.hbase.util">Order</a>
 <div class="block">Used to describe or modify the lexicographical sort order of a
  <code>byte[]</code>.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colOne"><a href="../../../../../org/apache/hadoop/hbase/util/class-use/Pair.html#org.apache.hadoop.hbase.util">Pair</a>
 <div class="block">A generic class for pairs.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colOne"><a href="../../../../../org/apache/hadoop/hbase/util/class-use/PositionedByteRange.html#org.apache.hadoop.hbase.util">PositionedByteRange</a>
 <div class="block">
  Extends <a href="../../../../../org/apache/hadoop/hbase/util/ByteRange.html" title="interface in org.apache.hadoop.hbase.util"><code>ByteRange</code></a> with additional methods to support tracking a
  consumers position within the viewport.</div>
 </td>
 </tr>
+<tr class="rowColor">
+<td class="colOne"><a href="../../../../../org/apache/hadoop/hbase/util/class-use/TimeMeasurable.html#org.apache.hadoop.hbase.util">TimeMeasurable</a>
+<div class="block">Methods that implement this interface can be measured elapsed time.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../../org/apache/hadoop/hbase/util/class-use/WindowMovingAverage.html#org.apache.hadoop.hbase.util">WindowMovingAverage</a>
+<div class="block">Instead of calculate a whole time average, this class focus on the last N.</div>
+</td>
+</tr>
 </tbody>
 </table>
 </li>
diff --git a/apidocs/overview-tree.html b/apidocs/overview-tree.html
index 3d773ee..d99c271 100644
--- a/apidocs/overview-tree.html
+++ b/apidocs/overview-tree.html
@@ -344,6 +344,17 @@
 <li type="circle">org.apache.hadoop.hbase.util.<a href="org/apache/hadoop/hbase/util/MD5Hash.html" title="class in org.apache.hadoop.hbase.util"><span class="typeNameLink">MD5Hash</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.zookeeper.<a href="org/apache/hadoop/hbase/zookeeper/MiniZooKeeperCluster.html" title="class in org.apache.hadoop.hbase.zookeeper"><span class="typeNameLink">MiniZooKeeperCluster</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.mob.<a href="org/apache/hadoop/hbase/mob/MobConstants.html" title="class in org.apache.hadoop.hbase.mob"><span class="typeNameLink">MobConstants</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.util.<a href="org/apache/hadoop/hbase/util/MovingAverage.html" title="class in org.apache.hadoop.hbase.util"><span class="typeNameLink">MovingAverage</span></a>&lt;T&gt;
+<ul>
+<li type="circle">org.apache.hadoop.hbase.util.<a href="org/apache/hadoop/hbase/util/SimpleMovingAverage.html" title="class in org.apache.hadoop.hbase.util"><span class="typeNameLink">SimpleMovingAverage</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.util.<a href="org/apache/hadoop/hbase/util/WindowMovingAverage.html" title="class in org.apache.hadoop.hbase.util"><span class="typeNameLink">WindowMovingAverage</span></a>
+<ul>
+<li type="circle">org.apache.hadoop.hbase.util.<a href="org/apache/hadoop/hbase/util/ExponentialMovingAverage.html" title="class in org.apache.hadoop.hbase.util"><span class="typeNameLink">ExponentialMovingAverage</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.util.<a href="org/apache/hadoop/hbase/util/WeightedMovingAverage.html" title="class in org.apache.hadoop.hbase.util"><span class="typeNameLink">WeightedMovingAverage</span></a></li>
+</ul>
+</li>
+</ul>
+</li>
 <li type="circle">org.apache.hadoop.hbase.filter.<a href="org/apache/hadoop/hbase/filter/MultiRowRangeFilter.RowRange.html" title="class in org.apache.hadoop.hbase.filter"><span class="typeNameLink">MultiRowRangeFilter.RowRange</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.mapreduce.<a href="org/apache/hadoop/hbase/mapreduce/MutationSerialization.html" title="class in org.apache.hadoop.hbase.mapreduce"><span class="typeNameLink">MutationSerialization</span></a> (implements org.apache.hadoop.io.serializer.Serialization&lt;T&gt;)</li>
 <li type="circle">org.apache.hadoop.hbase.<a href="org/apache/hadoop/hbase/NamespaceDescriptor.html" title="class in org.apache.hadoop.hbase"><span class="typeNameLink">NamespaceDescriptor</span></a></li>
@@ -866,6 +877,7 @@
 <li type="circle">org.apache.hadoop.hbase.<a href="org/apache/hadoop/hbase/Stoppable.html" title="interface in org.apache.hadoop.hbase"><span class="typeNameLink">Stoppable</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/TableBuilder.html" title="interface in org.apache.hadoop.hbase.client"><span class="typeNameLink">TableBuilder</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/TableDescriptor.html" title="interface in org.apache.hadoop.hbase.client"><span class="typeNameLink">TableDescriptor</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.util.<a href="org/apache/hadoop/hbase/util/TimeMeasurable.html" title="interface in org.apache.hadoop.hbase.util"><span class="typeNameLink">TimeMeasurable</span></a>&lt;T&gt;</li>
 </ul>
 <h2 title="Enum Hierarchy">Enum Hierarchy</h2>
 <ul>
diff --git a/apidocs/src-html/org/apache/hadoop/hbase/ChoreService.html b/apidocs/src-html/org/apache/hadoop/hbase/ChoreService.html
index b70b24d..f216b24 100644
--- a/apidocs/src-html/org/apache/hadoop/hbase/ChoreService.html
+++ b/apidocs/src-html/org/apache/hadoop/hbase/ChoreService.html
@@ -159,250 +159,251 @@
 <span class="sourceLineNo">151</span><a name="line.151"></a>
 <span class="sourceLineNo">152</span>    try {<a name="line.152"></a>
 <span class="sourceLineNo">153</span>      if (chore.getPeriod() &lt;= 0) {<a name="line.153"></a>
-<span class="sourceLineNo">154</span>        LOG.info("The period is {} seconds, {} is disabled", chore.getPeriod(), chore.getName());<a name="line.154"></a>
+<span class="sourceLineNo">154</span>        LOG.info("Chore {} is disabled because its period is not positive.", chore);<a name="line.154"></a>
 <span class="sourceLineNo">155</span>        return false;<a name="line.155"></a>
 <span class="sourceLineNo">156</span>      }<a name="line.156"></a>
-<span class="sourceLineNo">157</span>      chore.setChoreServicer(this);<a name="line.157"></a>
-<span class="sourceLineNo">158</span>      ScheduledFuture&lt;?&gt; future =<a name="line.158"></a>
-<span class="sourceLineNo">159</span>          scheduler.scheduleAtFixedRate(chore, chore.getInitialDelay(), chore.getPeriod(),<a name="line.159"></a>
-<span class="sourceLineNo">160</span>            chore.getTimeUnit());<a name="line.160"></a>
-<span class="sourceLineNo">161</span>      scheduledChores.put(chore, future);<a name="line.161"></a>
-<span class="sourceLineNo">162</span>      return true;<a name="line.162"></a>
-<span class="sourceLineNo">163</span>    } catch (Exception exception) {<a name="line.163"></a>
-<span class="sourceLineNo">164</span>      if (LOG.isInfoEnabled()) {<a name="line.164"></a>
-<span class="sourceLineNo">165</span>        LOG.info("Could not successfully schedule chore: " + chore.getName());<a name="line.165"></a>
-<span class="sourceLineNo">166</span>      }<a name="line.166"></a>
-<span class="sourceLineNo">167</span>      return false;<a name="line.167"></a>
-<span class="sourceLineNo">168</span>    }<a name="line.168"></a>
-<span class="sourceLineNo">169</span>  }<a name="line.169"></a>
-<span class="sourceLineNo">170</span><a name="line.170"></a>
-<span class="sourceLineNo">171</span>  /**<a name="line.171"></a>
-<span class="sourceLineNo">172</span>   * @param chore The Chore to be rescheduled. If the chore is not scheduled with this ChoreService<a name="line.172"></a>
-<span class="sourceLineNo">173</span>   *          yet then this call is equivalent to a call to scheduleChore.<a name="line.173"></a>
-<span class="sourceLineNo">174</span>   */<a name="line.174"></a>
-<span class="sourceLineNo">175</span>  private synchronized void rescheduleChore(ScheduledChore chore) {<a name="line.175"></a>
-<span class="sourceLineNo">176</span>    if (chore == null) return;<a name="line.176"></a>
-<span class="sourceLineNo">177</span><a name="line.177"></a>
-<span class="sourceLineNo">178</span>    if (scheduledChores.containsKey(chore)) {<a name="line.178"></a>
-<span class="sourceLineNo">179</span>      ScheduledFuture&lt;?&gt; future = scheduledChores.get(chore);<a name="line.179"></a>
-<span class="sourceLineNo">180</span>      future.cancel(false);<a name="line.180"></a>
-<span class="sourceLineNo">181</span>    }<a name="line.181"></a>
-<span class="sourceLineNo">182</span>    scheduleChore(chore);<a name="line.182"></a>
-<span class="sourceLineNo">183</span>  }<a name="line.183"></a>
-<span class="sourceLineNo">184</span><a name="line.184"></a>
-<span class="sourceLineNo">185</span>  @InterfaceAudience.Private<a name="line.185"></a>
-<span class="sourceLineNo">186</span>  @Override<a name="line.186"></a>
-<span class="sourceLineNo">187</span>  public synchronized void cancelChore(ScheduledChore chore) {<a name="line.187"></a>
-<span class="sourceLineNo">188</span>    cancelChore(chore, true);<a name="line.188"></a>
-<span class="sourceLineNo">189</span>  }<a name="line.189"></a>
-<span class="sourceLineNo">190</span><a name="line.190"></a>
-<span class="sourceLineNo">191</span>  @InterfaceAudience.Private<a name="line.191"></a>
-<span class="sourceLineNo">192</span>  @Override<a name="line.192"></a>
-<span class="sourceLineNo">193</span>  public synchronized void cancelChore(ScheduledChore chore, boolean mayInterruptIfRunning) {<a name="line.193"></a>
-<span class="sourceLineNo">194</span>    if (chore != null &amp;&amp; scheduledChores.containsKey(chore)) {<a name="line.194"></a>
-<span class="sourceLineNo">195</span>      ScheduledFuture&lt;?&gt; future = scheduledChores.get(chore);<a name="line.195"></a>
-<span class="sourceLineNo">196</span>      future.cancel(mayInterruptIfRunning);<a name="line.196"></a>
-<span class="sourceLineNo">197</span>      scheduledChores.remove(chore);<a name="line.197"></a>
-<span class="sourceLineNo">198</span><a name="line.198"></a>
-<span class="sourceLineNo">199</span>      // Removing a chore that was missing its start time means it may be possible<a name="line.199"></a>
-<span class="sourceLineNo">200</span>      // to reduce the number of threads<a name="line.200"></a>
-<span class="sourceLineNo">201</span>      if (choresMissingStartTime.containsKey(chore)) {<a name="line.201"></a>
-<span class="sourceLineNo">202</span>        choresMissingStartTime.remove(chore);<a name="line.202"></a>
-<span class="sourceLineNo">203</span>        requestCorePoolDecrease();<a name="line.203"></a>
-<span class="sourceLineNo">204</span>      }<a name="line.204"></a>
-<span class="sourceLineNo">205</span>    }<a name="line.205"></a>
-<span class="sourceLineNo">206</span>  }<a name="line.206"></a>
-<span class="sourceLineNo">207</span><a name="line.207"></a>
-<span class="sourceLineNo">208</span>  @InterfaceAudience.Private<a name="line.208"></a>
-<span class="sourceLineNo">209</span>  @Override<a name="line.209"></a>
-<span class="sourceLineNo">210</span>  public synchronized boolean isChoreScheduled(ScheduledChore chore) {<a name="line.210"></a>
-<span class="sourceLineNo">211</span>    return chore != null &amp;&amp; scheduledChores.containsKey(chore)<a name="line.211"></a>
-<span class="sourceLineNo">212</span>        &amp;&amp; !scheduledChores.get(chore).isDone();<a name="line.212"></a>
-<span class="sourceLineNo">213</span>  }<a name="line.213"></a>
-<span class="sourceLineNo">214</span><a name="line.214"></a>
-<span class="sourceLineNo">215</span>  @InterfaceAudience.Private<a name="line.215"></a>
-<span class="sourceLineNo">216</span>  @Override<a name="line.216"></a>
-<span class="sourceLineNo">217</span>  public synchronized boolean triggerNow(ScheduledChore chore) {<a name="line.217"></a>
-<span class="sourceLineNo">218</span>    if (chore == null) {<a name="line.218"></a>
-<span class="sourceLineNo">219</span>      return false;<a name="line.219"></a>
-<span class="sourceLineNo">220</span>    } else {<a name="line.220"></a>
-<span class="sourceLineNo">221</span>      rescheduleChore(chore);<a name="line.221"></a>
-<span class="sourceLineNo">222</span>      return true;<a name="line.222"></a>
-<span class="sourceLineNo">223</span>    }<a name="line.223"></a>
-<span class="sourceLineNo">224</span>  }<a name="line.224"></a>
-<span class="sourceLineNo">225</span><a name="line.225"></a>
-<span class="sourceLineNo">226</span>  /**<a name="line.226"></a>
-<span class="sourceLineNo">227</span>   * @return number of chores that this service currently has scheduled<a name="line.227"></a>
-<span class="sourceLineNo">228</span>   */<a name="line.228"></a>
-<span class="sourceLineNo">229</span>  int getNumberOfScheduledChores() {<a name="line.229"></a>
-<span class="sourceLineNo">230</span>    return scheduledChores.size();<a name="line.230"></a>
-<span class="sourceLineNo">231</span>  }<a name="line.231"></a>
-<span class="sourceLineNo">232</span><a name="line.232"></a>
-<span class="sourceLineNo">233</span>  /**<a name="line.233"></a>
-<span class="sourceLineNo">234</span>   * @return number of chores that this service currently has scheduled that are missing their<a name="line.234"></a>
-<span class="sourceLineNo">235</span>   *         scheduled start time<a name="line.235"></a>
-<span class="sourceLineNo">236</span>   */<a name="line.236"></a>
-<span class="sourceLineNo">237</span>  int getNumberOfChoresMissingStartTime() {<a name="line.237"></a>
-<span class="sourceLineNo">238</span>    return choresMissingStartTime.size();<a name="line.238"></a>
-<span class="sourceLineNo">239</span>  }<a name="line.239"></a>
-<span class="sourceLineNo">240</span><a name="line.240"></a>
-<span class="sourceLineNo">241</span>  /**<a name="line.241"></a>
-<span class="sourceLineNo">242</span>   * @return number of threads in the core pool of the underlying ScheduledThreadPoolExecutor<a name="line.242"></a>
-<span class="sourceLineNo">243</span>   */<a name="line.243"></a>
-<span class="sourceLineNo">244</span>  int getCorePoolSize() {<a name="line.244"></a>
-<span class="sourceLineNo">245</span>    return scheduler.getCorePoolSize();<a name="line.245"></a>
-<span class="sourceLineNo">246</span>  }<a name="line.246"></a>
-<span class="sourceLineNo">247</span><a name="line.247"></a>
-<span class="sourceLineNo">248</span>  /**<a name="line.248"></a>
-<span class="sourceLineNo">249</span>   * Custom ThreadFactory used with the ScheduledThreadPoolExecutor so that all the threads are<a name="line.249"></a>
-<span class="sourceLineNo">250</span>   * daemon threads, and thus, don't prevent the JVM from shutting down<a name="line.250"></a>
-<span class="sourceLineNo">251</span>   */<a name="line.251"></a>
-<span class="sourceLineNo">252</span>  static class ChoreServiceThreadFactory implements ThreadFactory {<a name="line.252"></a>
-<span class="sourceLineNo">253</span>    private final String threadPrefix;<a name="line.253"></a>
-<span class="sourceLineNo">254</span>    private final static String THREAD_NAME_SUFFIX = ".Chore.";<a name="line.254"></a>
-<span class="sourceLineNo">255</span>    private AtomicInteger threadNumber = new AtomicInteger(1);<a name="line.255"></a>
-<span class="sourceLineNo">256</span><a name="line.256"></a>
-<span class="sourceLineNo">257</span>    /**<a name="line.257"></a>
-<span class="sourceLineNo">258</span>     * @param threadPrefix The prefix given to all threads created by this factory<a name="line.258"></a>
-<span class="sourceLineNo">259</span>     */<a name="line.259"></a>
-<span class="sourceLineNo">260</span>    public ChoreServiceThreadFactory(final String threadPrefix) {<a name="line.260"></a>
-<span class="sourceLineNo">261</span>      this.threadPrefix = threadPrefix;<a name="line.261"></a>
-<span class="sourceLineNo">262</span>    }<a name="line.262"></a>
-<span class="sourceLineNo">263</span><a name="line.263"></a>
-<span class="sourceLineNo">264</span>    @Override<a name="line.264"></a>
-<span class="sourceLineNo">265</span>    public Thread newThread(Runnable r) {<a name="line.265"></a>
-<span class="sourceLineNo">266</span>      Thread thread =<a name="line.266"></a>
-<span class="sourceLineNo">267</span>          new Thread(r, threadPrefix + THREAD_NAME_SUFFIX + threadNumber.getAndIncrement());<a name="line.267"></a>
-<span class="sourceLineNo">268</span>      thread.setDaemon(true);<a name="line.268"></a>
-<span class="sourceLineNo">269</span>      return thread;<a name="line.269"></a>
-<span class="sourceLineNo">270</span>    }<a name="line.270"></a>
-<span class="sourceLineNo">271</span>  }<a name="line.271"></a>
-<span class="sourceLineNo">272</span><a name="line.272"></a>
-<span class="sourceLineNo">273</span>  /**<a name="line.273"></a>
-<span class="sourceLineNo">274</span>   * Represents a request to increase the number of core pool threads. Typically a request<a name="line.274"></a>
-<span class="sourceLineNo">275</span>   * originates from the fact that the current core pool size is not sufficient to service all of<a name="line.275"></a>
-<span class="sourceLineNo">276</span>   * the currently running Chores<a name="line.276"></a>
-<span class="sourceLineNo">277</span>   * @return true when the request to increase the core pool size succeeds<a name="line.277"></a>
-<span class="sourceLineNo">278</span>   */<a name="line.278"></a>
-<span class="sourceLineNo">279</span>  private synchronized boolean requestCorePoolIncrease() {<a name="line.279"></a>
-<span class="sourceLineNo">280</span>    // There is no point in creating more threads than scheduledChores.size since scheduled runs<a name="line.280"></a>
-<span class="sourceLineNo">281</span>    // of the same chore cannot run concurrently (i.e. happen-before behavior is enforced<a name="line.281"></a>
-<span class="sourceLineNo">282</span>    // amongst occurrences of the same chore).<a name="line.282"></a>
-<span class="sourceLineNo">283</span>    if (scheduler.getCorePoolSize() &lt; scheduledChores.size()) {<a name="line.283"></a>
-<span class="sourceLineNo">284</span>      scheduler.setCorePoolSize(scheduler.getCorePoolSize() + 1);<a name="line.284"></a>
-<span class="sourceLineNo">285</span>      printChoreServiceDetails("requestCorePoolIncrease");<a name="line.285"></a>
-<span class="sourceLineNo">286</span>      return true;<a name="line.286"></a>
-<span class="sourceLineNo">287</span>    }<a name="line.287"></a>
-<span class="sourceLineNo">288</span>    return false;<a name="line.288"></a>
-<span class="sourceLineNo">289</span>  }<a name="line.289"></a>
-<span class="sourceLineNo">290</span><a name="line.290"></a>
-<span class="sourceLineNo">291</span>  /**<a name="line.291"></a>
-<span class="sourceLineNo">292</span>   * Represents a request to decrease the number of core pool threads. Typically a request<a name="line.292"></a>
-<span class="sourceLineNo">293</span>   * originates from the fact that the current core pool size is more than sufficient to service the<a name="line.293"></a>
-<span class="sourceLineNo">294</span>   * running Chores.<a name="line.294"></a>
-<span class="sourceLineNo">295</span>   */<a name="line.295"></a>
-<span class="sourceLineNo">296</span>  private synchronized void requestCorePoolDecrease() {<a name="line.296"></a>
-<span class="sourceLineNo">297</span>    if (scheduler.getCorePoolSize() &gt; MIN_CORE_POOL_SIZE) {<a name="line.297"></a>
-<span class="sourceLineNo">298</span>      scheduler.setCorePoolSize(scheduler.getCorePoolSize() - 1);<a name="line.298"></a>
-<span class="sourceLineNo">299</span>      printChoreServiceDetails("requestCorePoolDecrease");<a name="line.299"></a>
-<span class="sourceLineNo">300</span>    }<a name="line.300"></a>
-<span class="sourceLineNo">301</span>  }<a name="line.301"></a>
-<span class="sourceLineNo">302</span><a name="line.302"></a>
-<span class="sourceLineNo">303</span>  @InterfaceAudience.Private<a name="line.303"></a>
-<span class="sourceLineNo">304</span>  @Override<a name="line.304"></a>
-<span class="sourceLineNo">305</span>  public synchronized void onChoreMissedStartTime(ScheduledChore chore) {<a name="line.305"></a>
-<span class="sourceLineNo">306</span>    if (chore == null || !scheduledChores.containsKey(chore)) return;<a name="line.306"></a>
-<span class="sourceLineNo">307</span><a name="line.307"></a>
-<span class="sourceLineNo">308</span>    // If the chore has not caused an increase in the size of the core thread pool then request an<a name="line.308"></a>
-<span class="sourceLineNo">309</span>    // increase. This allows each chore missing its start time to increase the core pool size by<a name="line.309"></a>
-<span class="sourceLineNo">310</span>    // at most 1.<a name="line.310"></a>
-<span class="sourceLineNo">311</span>    if (!choresMissingStartTime.containsKey(chore) || !choresMissingStartTime.get(chore)) {<a name="line.311"></a>
-<span class="sourceLineNo">312</span>      choresMissingStartTime.put(chore, requestCorePoolIncrease());<a name="line.312"></a>
-<span class="sourceLineNo">313</span>    }<a name="line.313"></a>
-<span class="sourceLineNo">314</span><a name="line.314"></a>
-<span class="sourceLineNo">315</span>    // Must reschedule the chore to prevent unnecessary delays of chores in the scheduler. If<a name="line.315"></a>
-<span class="sourceLineNo">316</span>    // the chore is NOT rescheduled, future executions of this chore will be delayed more and<a name="line.316"></a>
-<span class="sourceLineNo">317</span>    // more on each iteration. This hurts us because the ScheduledThreadPoolExecutor allocates<a name="line.317"></a>
-<span class="sourceLineNo">318</span>    // idle threads to chores based on how delayed they are.<a name="line.318"></a>
-<span class="sourceLineNo">319</span>    rescheduleChore(chore);<a name="line.319"></a>
-<span class="sourceLineNo">320</span>    printChoreDetails("onChoreMissedStartTime", chore);<a name="line.320"></a>
-<span class="sourceLineNo">321</span>  }<a name="line.321"></a>
-<span class="sourceLineNo">322</span><a name="line.322"></a>
-<span class="sourceLineNo">323</span>  /**<a name="line.323"></a>
-<span class="sourceLineNo">324</span>   * shutdown the service. Any chores that are scheduled for execution will be cancelled. Any chores<a name="line.324"></a>
-<span class="sourceLineNo">325</span>   * in the middle of execution will be interrupted and shutdown. This service will be unusable<a name="line.325"></a>
-<span class="sourceLineNo">326</span>   * after this method has been called (i.e. future scheduling attempts will fail).<a name="line.326"></a>
-<span class="sourceLineNo">327</span>   */<a name="line.327"></a>
-<span class="sourceLineNo">328</span>  public synchronized void shutdown() {<a name="line.328"></a>
-<span class="sourceLineNo">329</span>    scheduler.shutdownNow();<a name="line.329"></a>
-<span class="sourceLineNo">330</span>    if (LOG.isInfoEnabled()) {<a name="line.330"></a>
-<span class="sourceLineNo">331</span>      LOG.info("Chore service for: " + coreThreadPoolPrefix + " had " + scheduledChores.keySet()<a name="line.331"></a>
-<span class="sourceLineNo">332</span>          + " on shutdown");<a name="line.332"></a>
-<span class="sourceLineNo">333</span>    }<a name="line.333"></a>
-<span class="sourceLineNo">334</span>    cancelAllChores(true);<a name="line.334"></a>
-<span class="sourceLineNo">335</span>    scheduledChores.clear();<a name="line.335"></a>
-<span class="sourceLineNo">336</span>    choresMissingStartTime.clear();<a name="line.336"></a>
-<span class="sourceLineNo">337</span>  }<a name="line.337"></a>
-<span class="sourceLineNo">338</span><a name="line.338"></a>
-<span class="sourceLineNo">339</span>  /**<a name="line.339"></a>
-<span class="sourceLineNo">340</span>   * @return true when the service is shutdown and thus cannot be used anymore<a name="line.340"></a>
-<span class="sourceLineNo">341</span>   */<a name="line.341"></a>
-<span class="sourceLineNo">342</span>  public boolean isShutdown() {<a name="line.342"></a>
-<span class="sourceLineNo">343</span>    return scheduler.isShutdown();<a name="line.343"></a>
-<span class="sourceLineNo">344</span>  }<a name="line.344"></a>
-<span class="sourceLineNo">345</span><a name="line.345"></a>
-<span class="sourceLineNo">346</span>  /**<a name="line.346"></a>
-<span class="sourceLineNo">347</span>   * @return true when the service is shutdown and all threads have terminated<a name="line.347"></a>
-<span class="sourceLineNo">348</span>   */<a name="line.348"></a>
-<span class="sourceLineNo">349</span>  public boolean isTerminated() {<a name="line.349"></a>
-<span class="sourceLineNo">350</span>    return scheduler.isTerminated();<a name="line.350"></a>
-<span class="sourceLineNo">351</span>  }<a name="line.351"></a>
-<span class="sourceLineNo">352</span><a name="line.352"></a>
-<span class="sourceLineNo">353</span>  private void cancelAllChores(final boolean mayInterruptIfRunning) {<a name="line.353"></a>
-<span class="sourceLineNo">354</span>    ArrayList&lt;ScheduledChore&gt; choresToCancel = new ArrayList&lt;&gt;(scheduledChores.keySet().size());<a name="line.354"></a>
-<span class="sourceLineNo">355</span>    // Build list of chores to cancel so we can iterate through a set that won't change<a name="line.355"></a>
-<span class="sourceLineNo">356</span>    // as chores are cancelled. If we tried to cancel each chore while iterating through<a name="line.356"></a>
-<span class="sourceLineNo">357</span>    // keySet the results would be undefined because the keySet would be changing<a name="line.357"></a>
-<span class="sourceLineNo">358</span>    for (ScheduledChore chore : scheduledChores.keySet()) {<a name="line.358"></a>
-<span class="sourceLineNo">359</span>      choresToCancel.add(chore);<a name="line.359"></a>
-<span class="sourceLineNo">360</span>    }<a name="line.360"></a>
-<span class="sourceLineNo">361</span>    for (ScheduledChore chore : choresToCancel) {<a name="line.361"></a>
-<span class="sourceLineNo">362</span>      cancelChore(chore, mayInterruptIfRunning);<a name="line.362"></a>
-<span class="sourceLineNo">363</span>    }<a name="line.363"></a>
-<span class="sourceLineNo">364</span>    choresToCancel.clear();<a name="line.364"></a>
-<span class="sourceLineNo">365</span>  }<a name="line.365"></a>
-<span class="sourceLineNo">366</span><a name="line.366"></a>
-<span class="sourceLineNo">367</span>  /**<a name="line.367"></a>
-<span class="sourceLineNo">368</span>   * Prints a summary of important details about the chore. Used for debugging purposes<a name="line.368"></a>
-<span class="sourceLineNo">369</span>   */<a name="line.369"></a>
-<span class="sourceLineNo">370</span>  private void printChoreDetails(final String header, ScheduledChore chore) {<a name="line.370"></a>
-<span class="sourceLineNo">371</span>    LinkedHashMap&lt;String, String&gt; output = new LinkedHashMap&lt;&gt;();<a name="line.371"></a>
-<span class="sourceLineNo">372</span>    output.put(header, "");<a name="line.372"></a>
-<span class="sourceLineNo">373</span>    output.put("Chore name: ", chore.getName());<a name="line.373"></a>
-<span class="sourceLineNo">374</span>    output.put("Chore period: ", Integer.toString(chore.getPeriod()));<a name="line.374"></a>
-<span class="sourceLineNo">375</span>    output.put("Chore timeBetweenRuns: ", Long.toString(chore.getTimeBetweenRuns()));<a name="line.375"></a>
-<span class="sourceLineNo">376</span><a name="line.376"></a>
-<span class="sourceLineNo">377</span>    for (Entry&lt;String, String&gt; entry : output.entrySet()) {<a name="line.377"></a>
-<span class="sourceLineNo">378</span>      if (LOG.isTraceEnabled()) LOG.trace(entry.getKey() + entry.getValue());<a name="line.378"></a>
-<span class="sourceLineNo">379</span>    }<a name="line.379"></a>
-<span class="sourceLineNo">380</span>  }<a name="line.380"></a>
-<span class="sourceLineNo">381</span><a name="line.381"></a>
-<span class="sourceLineNo">382</span>  /**<a name="line.382"></a>
-<span class="sourceLineNo">383</span>   * Prints a summary of important details about the service. Used for debugging purposes<a name="line.383"></a>
-<span class="sourceLineNo">384</span>   */<a name="line.384"></a>
-<span class="sourceLineNo">385</span>  private void printChoreServiceDetails(final String header) {<a name="line.385"></a>
-<span class="sourceLineNo">386</span>    LinkedHashMap&lt;String, String&gt; output = new LinkedHashMap&lt;&gt;();<a name="line.386"></a>
-<span class="sourceLineNo">387</span>    output.put(header, "");<a name="line.387"></a>
-<span class="sourceLineNo">388</span>    output.put("ChoreService corePoolSize: ", Integer.toString(getCorePoolSize()));<a name="line.388"></a>
-<span class="sourceLineNo">389</span>    output.put("ChoreService scheduledChores: ", Integer.toString(getNumberOfScheduledChores()));<a name="line.389"></a>
-<span class="sourceLineNo">390</span>    output.put("ChoreService missingStartTimeCount: ",<a name="line.390"></a>
-<span class="sourceLineNo">391</span>      Integer.toString(getNumberOfChoresMissingStartTime()));<a name="line.391"></a>
-<span class="sourceLineNo">392</span><a name="line.392"></a>
-<span class="sourceLineNo">393</span>    for (Entry&lt;String, String&gt; entry : output.entrySet()) {<a name="line.393"></a>
-<span class="sourceLineNo">394</span>      if (LOG.isTraceEnabled()) LOG.trace(entry.getKey() + entry.getValue());<a name="line.394"></a>
-<span class="sourceLineNo">395</span>    }<a name="line.395"></a>
-<span class="sourceLineNo">396</span>  }<a name="line.396"></a>
-<span class="sourceLineNo">397</span>}<a name="line.397"></a>
+<span class="sourceLineNo">157</span>      LOG.info("Chore {} is enabled.", chore);<a name="line.157"></a>
+<span class="sourceLineNo">158</span>      chore.setChoreServicer(this);<a name="line.158"></a>
+<span class="sourceLineNo">159</span>      ScheduledFuture&lt;?&gt; future =<a name="line.159"></a>
+<span class="sourceLineNo">160</span>          scheduler.scheduleAtFixedRate(chore, chore.getInitialDelay(), chore.getPeriod(),<a name="line.160"></a>
+<span class="sourceLineNo">161</span>            chore.getTimeUnit());<a name="line.161"></a>
+<span class="sourceLineNo">162</span>      scheduledChores.put(chore, future);<a name="line.162"></a>
+<span class="sourceLineNo">163</span>      return true;<a name="line.163"></a>
+<span class="sourceLineNo">164</span>    } catch (Exception exception) {<a name="line.164"></a>
+<span class="sourceLineNo">165</span>      if (LOG.isInfoEnabled()) {<a name="line.165"></a>
+<span class="sourceLineNo">166</span>        LOG.info("Could not successfully schedule chore: " + chore.getName());<a name="line.166"></a>
+<span class="sourceLineNo">167</span>      }<a name="line.167"></a>
+<span class="sourceLineNo">168</span>      return false;<a name="line.168"></a>
+<span class="sourceLineNo">169</span>    }<a name="line.169"></a>
+<span class="sourceLineNo">170</span>  }<a name="line.170"></a>
+<span class="sourceLineNo">171</span><a name="line.171"></a>
+<span class="sourceLineNo">172</span>  /**<a name="line.172"></a>
+<span class="sourceLineNo">173</span>   * @param chore The Chore to be rescheduled. If the chore is not scheduled with this ChoreService<a name="line.173"></a>
+<span class="sourceLineNo">174</span>   *          yet then this call is equivalent to a call to scheduleChore.<a name="line.174"></a>
+<span class="sourceLineNo">175</span>   */<a name="line.175"></a>
+<span class="sourceLineNo">176</span>  private synchronized void rescheduleChore(ScheduledChore chore) {<a name="line.176"></a>
+<span class="sourceLineNo">177</span>    if (chore == null) return;<a name="line.177"></a>
+<span class="sourceLineNo">178</span><a name="line.178"></a>
+<span class="sourceLineNo">179</span>    if (scheduledChores.containsKey(chore)) {<a name="line.179"></a>
+<span class="sourceLineNo">180</span>      ScheduledFuture&lt;?&gt; future = scheduledChores.get(chore);<a name="line.180"></a>
+<span class="sourceLineNo">181</span>      future.cancel(false);<a name="line.181"></a>
+<span class="sourceLineNo">182</span>    }<a name="line.182"></a>
+<span class="sourceLineNo">183</span>    scheduleChore(chore);<a name="line.183"></a>
+<span class="sourceLineNo">184</span>  }<a name="line.184"></a>
+<span class="sourceLineNo">185</span><a name="line.185"></a>
+<span class="sourceLineNo">186</span>  @InterfaceAudience.Private<a name="line.186"></a>
+<span class="sourceLineNo">187</span>  @Override<a name="line.187"></a>
+<span class="sourceLineNo">188</span>  public synchronized void cancelChore(ScheduledChore chore) {<a name="line.188"></a>
+<span class="sourceLineNo">189</span>    cancelChore(chore, true);<a name="line.189"></a>
+<span class="sourceLineNo">190</span>  }<a name="line.190"></a>
+<span class="sourceLineNo">191</span><a name="line.191"></a>
+<span class="sourceLineNo">192</span>  @InterfaceAudience.Private<a name="line.192"></a>
+<span class="sourceLineNo">193</span>  @Override<a name="line.193"></a>
+<span class="sourceLineNo">194</span>  public synchronized void cancelChore(ScheduledChore chore, boolean mayInterruptIfRunning) {<a name="line.194"></a>
+<span class="sourceLineNo">195</span>    if (chore != null &amp;&amp; scheduledChores.containsKey(chore)) {<a name="line.195"></a>
+<span class="sourceLineNo">196</span>      ScheduledFuture&lt;?&gt; future = scheduledChores.get(chore);<a name="line.196"></a>
+<span class="sourceLineNo">197</span>      future.cancel(mayInterruptIfRunning);<a name="line.197"></a>
+<span class="sourceLineNo">198</span>      scheduledChores.remove(chore);<a name="line.198"></a>
+<span class="sourceLineNo">199</span><a name="line.199"></a>
+<span class="sourceLineNo">200</span>      // Removing a chore that was missing its start time means it may be possible<a name="line.200"></a>
+<span class="sourceLineNo">201</span>      // to reduce the number of threads<a name="line.201"></a>
+<span class="sourceLineNo">202</span>      if (choresMissingStartTime.containsKey(chore)) {<a name="line.202"></a>
+<span class="sourceLineNo">203</span>        choresMissingStartTime.remove(chore);<a name="line.203"></a>
+<span class="sourceLineNo">204</span>        requestCorePoolDecrease();<a name="line.204"></a>
+<span class="sourceLineNo">205</span>      }<a name="line.205"></a>
+<span class="sourceLineNo">206</span>    }<a name="line.206"></a>
+<span class="sourceLineNo">207</span>  }<a name="line.207"></a>
+<span class="sourceLineNo">208</span><a name="line.208"></a>
+<span class="sourceLineNo">209</span>  @InterfaceAudience.Private<a name="line.209"></a>
+<span class="sourceLineNo">210</span>  @Override<a name="line.210"></a>
+<span class="sourceLineNo">211</span>  public synchronized boolean isChoreScheduled(ScheduledChore chore) {<a name="line.211"></a>
+<span class="sourceLineNo">212</span>    return chore != null &amp;&amp; scheduledChores.containsKey(chore)<a name="line.212"></a>
+<span class="sourceLineNo">213</span>        &amp;&amp; !scheduledChores.get(chore).isDone();<a name="line.213"></a>
+<span class="sourceLineNo">214</span>  }<a name="line.214"></a>
+<span class="sourceLineNo">215</span><a name="line.215"></a>
+<span class="sourceLineNo">216</span>  @InterfaceAudience.Private<a name="line.216"></a>
+<span class="sourceLineNo">217</span>  @Override<a name="line.217"></a>
+<span class="sourceLineNo">218</span>  public synchronized boolean triggerNow(ScheduledChore chore) {<a name="line.218"></a>
+<span class="sourceLineNo">219</span>    if (chore == null) {<a name="line.219"></a>
+<span class="sourceLineNo">220</span>      return false;<a name="line.220"></a>
+<span class="sourceLineNo">221</span>    } else {<a name="line.221"></a>
+<span class="sourceLineNo">222</span>      rescheduleChore(chore);<a name="line.222"></a>
+<span class="sourceLineNo">223</span>      return true;<a name="line.223"></a>
+<span class="sourceLineNo">224</span>    }<a name="line.224"></a>
+<span class="sourceLineNo">225</span>  }<a name="line.225"></a>
+<span class="sourceLineNo">226</span><a name="line.226"></a>
+<span class="sourceLineNo">227</span>  /**<a name="line.227"></a>
+<span class="sourceLineNo">228</span>   * @return number of chores that this service currently has scheduled<a name="line.228"></a>
+<span class="sourceLineNo">229</span>   */<a name="line.229"></a>
+<span class="sourceLineNo">230</span>  int getNumberOfScheduledChores() {<a name="line.230"></a>
+<span class="sourceLineNo">231</span>    return scheduledChores.size();<a name="line.231"></a>
+<span class="sourceLineNo">232</span>  }<a name="line.232"></a>
+<span class="sourceLineNo">233</span><a name="line.233"></a>
+<span class="sourceLineNo">234</span>  /**<a name="line.234"></a>
+<span class="sourceLineNo">235</span>   * @return number of chores that this service currently has scheduled that are missing their<a name="line.235"></a>
+<span class="sourceLineNo">236</span>   *         scheduled start time<a name="line.236"></a>
+<span class="sourceLineNo">237</span>   */<a name="line.237"></a>
+<span class="sourceLineNo">238</span>  int getNumberOfChoresMissingStartTime() {<a name="line.238"></a>
+<span class="sourceLineNo">239</span>    return choresMissingStartTime.size();<a name="line.239"></a>
+<span class="sourceLineNo">240</span>  }<a name="line.240"></a>
+<span class="sourceLineNo">241</span><a name="line.241"></a>
+<span class="sourceLineNo">242</span>  /**<a name="line.242"></a>
+<span class="sourceLineNo">243</span>   * @return number of threads in the core pool of the underlying ScheduledThreadPoolExecutor<a name="line.243"></a>
+<span class="sourceLineNo">244</span>   */<a name="line.244"></a>
+<span class="sourceLineNo">245</span>  int getCorePoolSize() {<a name="line.245"></a>
+<span class="sourceLineNo">246</span>    return scheduler.getCorePoolSize();<a name="line.246"></a>
+<span class="sourceLineNo">247</span>  }<a name="line.247"></a>
+<span class="sourceLineNo">248</span><a name="line.248"></a>
+<span class="sourceLineNo">249</span>  /**<a name="line.249"></a>
+<span class="sourceLineNo">250</span>   * Custom ThreadFactory used with the ScheduledThreadPoolExecutor so that all the threads are<a name="line.250"></a>
+<span class="sourceLineNo">251</span>   * daemon threads, and thus, don't prevent the JVM from shutting down<a name="line.251"></a>
+<span class="sourceLineNo">252</span>   */<a name="line.252"></a>
+<span class="sourceLineNo">253</span>  static class ChoreServiceThreadFactory implements ThreadFactory {<a name="line.253"></a>
+<span class="sourceLineNo">254</span>    private final String threadPrefix;<a name="line.254"></a>
+<span class="sourceLineNo">255</span>    private final static String THREAD_NAME_SUFFIX = ".Chore.";<a name="line.255"></a>
+<span class="sourceLineNo">256</span>    private AtomicInteger threadNumber = new AtomicInteger(1);<a name="line.256"></a>
+<span class="sourceLineNo">257</span><a name="line.257"></a>
+<span class="sourceLineNo">258</span>    /**<a name="line.258"></a>
+<span class="sourceLineNo">259</span>     * @param threadPrefix The prefix given to all threads created by this factory<a name="line.259"></a>
+<span class="sourceLineNo">260</span>     */<a name="line.260"></a>
+<span class="sourceLineNo">261</span>    public ChoreServiceThreadFactory(final String threadPrefix) {<a name="line.261"></a>
+<span class="sourceLineNo">262</span>      this.threadPrefix = threadPrefix;<a name="line.262"></a>
+<span class="sourceLineNo">263</span>    }<a name="line.263"></a>
+<span class="sourceLineNo">264</span><a name="line.264"></a>
+<span class="sourceLineNo">265</span>    @Override<a name="line.265"></a>
+<span class="sourceLineNo">266</span>    public Thread newThread(Runnable r) {<a name="line.266"></a>
+<span class="sourceLineNo">267</span>      Thread thread =<a name="line.267"></a>
+<span class="sourceLineNo">268</span>          new Thread(r, threadPrefix + THREAD_NAME_SUFFIX + threadNumber.getAndIncrement());<a name="line.268"></a>
+<span class="sourceLineNo">269</span>      thread.setDaemon(true);<a name="line.269"></a>
+<span class="sourceLineNo">270</span>      return thread;<a name="line.270"></a>
+<span class="sourceLineNo">271</span>    }<a name="line.271"></a>
+<span class="sourceLineNo">272</span>  }<a name="line.272"></a>
+<span class="sourceLineNo">273</span><a name="line.273"></a>
+<span class="sourceLineNo">274</span>  /**<a name="line.274"></a>
+<span class="sourceLineNo">275</span>   * Represents a request to increase the number of core pool threads. Typically a request<a name="line.275"></a>
+<span class="sourceLineNo">276</span>   * originates from the fact that the current core pool size is not sufficient to service all of<a name="line.276"></a>
+<span class="sourceLineNo">277</span>   * the currently running Chores<a name="line.277"></a>
+<span class="sourceLineNo">278</span>   * @return true when the request to increase the core pool size succeeds<a name="line.278"></a>
+<span class="sourceLineNo">279</span>   */<a name="line.279"></a>
+<span class="sourceLineNo">280</span>  private synchronized boolean requestCorePoolIncrease() {<a name="line.280"></a>
+<span class="sourceLineNo">281</span>    // There is no point in creating more threads than scheduledChores.size since scheduled runs<a name="line.281"></a>
+<span class="sourceLineNo">282</span>    // of the same chore cannot run concurrently (i.e. happen-before behavior is enforced<a name="line.282"></a>
+<span class="sourceLineNo">283</span>    // amongst occurrences of the same chore).<a name="line.283"></a>
+<span class="sourceLineNo">284</span>    if (scheduler.getCorePoolSize() &lt; scheduledChores.size()) {<a name="line.284"></a>
+<span class="sourceLineNo">285</span>      scheduler.setCorePoolSize(scheduler.getCorePoolSize() + 1);<a name="line.285"></a>
+<span class="sourceLineNo">286</span>      printChoreServiceDetails("requestCorePoolIncrease");<a name="line.286"></a>
+<span class="sourceLineNo">287</span>      return true;<a name="line.287"></a>
+<span class="sourceLineNo">288</span>    }<a name="line.288"></a>
+<span class="sourceLineNo">289</span>    return false;<a name="line.289"></a>
+<span class="sourceLineNo">290</span>  }<a name="line.290"></a>
+<span class="sourceLineNo">291</span><a name="line.291"></a>
+<span class="sourceLineNo">292</span>  /**<a name="line.292"></a>
+<span class="sourceLineNo">293</span>   * Represents a request to decrease the number of core pool threads. Typically a request<a name="line.293"></a>
+<span class="sourceLineNo">294</span>   * originates from the fact that the current core pool size is more than sufficient to service the<a name="line.294"></a>
+<span class="sourceLineNo">295</span>   * running Chores.<a name="line.295"></a>
+<span class="sourceLineNo">296</span>   */<a name="line.296"></a>
+<span class="sourceLineNo">297</span>  private synchronized void requestCorePoolDecrease() {<a name="line.297"></a>
+<span class="sourceLineNo">298</span>    if (scheduler.getCorePoolSize() &gt; MIN_CORE_POOL_SIZE) {<a name="line.298"></a>
+<span class="sourceLineNo">299</span>      scheduler.setCorePoolSize(scheduler.getCorePoolSize() - 1);<a name="line.299"></a>
+<span class="sourceLineNo">300</span>      printChoreServiceDetails("requestCorePoolDecrease");<a name="line.300"></a>
+<span class="sourceLineNo">301</span>    }<a name="line.301"></a>
+<span class="sourceLineNo">302</span>  }<a name="line.302"></a>
+<span class="sourceLineNo">303</span><a name="line.303"></a>
+<span class="sourceLineNo">304</span>  @InterfaceAudience.Private<a name="line.304"></a>
+<span class="sourceLineNo">305</span>  @Override<a name="line.305"></a>
+<span class="sourceLineNo">306</span>  public synchronized void onChoreMissedStartTime(ScheduledChore chore) {<a name="line.306"></a>
+<span class="sourceLineNo">307</span>    if (chore == null || !scheduledChores.containsKey(chore)) return;<a name="line.307"></a>
+<span class="sourceLineNo">308</span><a name="line.308"></a>
+<span class="sourceLineNo">309</span>    // If the chore has not caused an increase in the size of the core thread pool then request an<a name="line.309"></a>
+<span class="sourceLineNo">310</span>    // increase. This allows each chore missing its start time to increase the core pool size by<a name="line.310"></a>
+<span class="sourceLineNo">311</span>    // at most 1.<a name="line.311"></a>
+<span class="sourceLineNo">312</span>    if (!choresMissingStartTime.containsKey(chore) || !choresMissingStartTime.get(chore)) {<a name="line.312"></a>
+<span class="sourceLineNo">313</span>      choresMissingStartTime.put(chore, requestCorePoolIncrease());<a name="line.313"></a>
+<span class="sourceLineNo">314</span>    }<a name="line.314"></a>
+<span class="sourceLineNo">315</span><a name="line.315"></a>
+<span class="sourceLineNo">316</span>    // Must reschedule the chore to prevent unnecessary delays of chores in the scheduler. If<a name="line.316"></a>
+<span class="sourceLineNo">317</span>    // the chore is NOT rescheduled, future executions of this chore will be delayed more and<a name="line.317"></a>
+<span class="sourceLineNo">318</span>    // more on each iteration. This hurts us because the ScheduledThreadPoolExecutor allocates<a name="line.318"></a>
+<span class="sourceLineNo">319</span>    // idle threads to chores based on how delayed they are.<a name="line.319"></a>
+<span class="sourceLineNo">320</span>    rescheduleChore(chore);<a name="line.320"></a>
+<span class="sourceLineNo">321</span>    printChoreDetails("onChoreMissedStartTime", chore);<a name="line.321"></a>
+<span class="sourceLineNo">322</span>  }<a name="line.322"></a>
+<span class="sourceLineNo">323</span><a name="line.323"></a>
+<span class="sourceLineNo">324</span>  /**<a name="line.324"></a>
+<span class="sourceLineNo">325</span>   * shutdown the service. Any chores that are scheduled for execution will be cancelled. Any chores<a name="line.325"></a>
+<span class="sourceLineNo">326</span>   * in the middle of execution will be interrupted and shutdown. This service will be unusable<a name="line.326"></a>
+<span class="sourceLineNo">327</span>   * after this method has been called (i.e. future scheduling attempts will fail).<a name="line.327"></a>
+<span class="sourceLineNo">328</span>   */<a name="line.328"></a>
+<span class="sourceLineNo">329</span>  public synchronized void shutdown() {<a name="line.329"></a>
+<span class="sourceLineNo">330</span>    scheduler.shutdownNow();<a name="line.330"></a>
+<span class="sourceLineNo">331</span>    if (LOG.isInfoEnabled()) {<a name="line.331"></a>
+<span class="sourceLineNo">332</span>      LOG.info("Chore service for: " + coreThreadPoolPrefix + " had " + scheduledChores.keySet()<a name="line.332"></a>
+<span class="sourceLineNo">333</span>          + " on shutdown");<a name="line.333"></a>
+<span class="sourceLineNo">334</span>    }<a name="line.334"></a>
+<span class="sourceLineNo">335</span>    cancelAllChores(true);<a name="line.335"></a>
+<span class="sourceLineNo">336</span>    scheduledChores.clear();<a name="line.336"></a>
+<span class="sourceLineNo">337</span>    choresMissingStartTime.clear();<a name="line.337"></a>
+<span class="sourceLineNo">338</span>  }<a name="line.338"></a>
+<span class="sourceLineNo">339</span><a name="line.339"></a>
+<span class="sourceLineNo">340</span>  /**<a name="line.340"></a>
+<span class="sourceLineNo">341</span>   * @return true when the service is shutdown and thus cannot be used anymore<a name="line.341"></a>
+<span class="sourceLineNo">342</span>   */<a name="line.342"></a>
+<span class="sourceLineNo">343</span>  public boolean isShutdown() {<a name="line.343"></a>
+<span class="sourceLineNo">344</span>    return scheduler.isShutdown();<a name="line.344"></a>
+<span class="sourceLineNo">345</span>  }<a name="line.345"></a>
+<span class="sourceLineNo">346</span><a name="line.346"></a>
+<span class="sourceLineNo">347</span>  /**<a name="line.347"></a>
+<span class="sourceLineNo">348</span>   * @return true when the service is shutdown and all threads have terminated<a name="line.348"></a>
+<span class="sourceLineNo">349</span>   */<a name="line.349"></a>
+<span class="sourceLineNo">350</span>  public boolean isTerminated() {<a name="line.350"></a>
+<span class="sourceLineNo">351</span>    return scheduler.isTerminated();<a name="line.351"></a>
+<span class="sourceLineNo">352</span>  }<a name="line.352"></a>
+<span class="sourceLineNo">353</span><a name="line.353"></a>
+<span class="sourceLineNo">354</span>  private void cancelAllChores(final boolean mayInterruptIfRunning) {<a name="line.354"></a>
+<span class="sourceLineNo">355</span>    ArrayList&lt;ScheduledChore&gt; choresToCancel = new ArrayList&lt;&gt;(scheduledChores.keySet().size());<a name="line.355"></a>
+<span class="sourceLineNo">356</span>    // Build list of chores to cancel so we can iterate through a set that won't change<a name="line.356"></a>
+<span class="sourceLineNo">357</span>    // as chores are cancelled. If we tried to cancel each chore while iterating through<a name="line.357"></a>
+<span class="sourceLineNo">358</span>    // keySet the results would be undefined because the keySet would be changing<a name="line.358"></a>
+<span class="sourceLineNo">359</span>    for (ScheduledChore chore : scheduledChores.keySet()) {<a name="line.359"></a>
+<span class="sourceLineNo">360</span>      choresToCancel.add(chore);<a name="line.360"></a>
+<span class="sourceLineNo">361</span>    }<a name="line.361"></a>
+<span class="sourceLineNo">362</span>    for (ScheduledChore chore : choresToCancel) {<a name="line.362"></a>
+<span class="sourceLineNo">363</span>      cancelChore(chore, mayInterruptIfRunning);<a name="line.363"></a>
+<span class="sourceLineNo">364</span>    }<a name="line.364"></a>
+<span class="sourceLineNo">365</span>    choresToCancel.clear();<a name="line.365"></a>
+<span class="sourceLineNo">366</span>  }<a name="line.366"></a>
+<span class="sourceLineNo">367</span><a name="line.367"></a>
+<span class="sourceLineNo">368</span>  /**<a name="line.368"></a>
+<span class="sourceLineNo">369</span>   * Prints a summary of important details about the chore. Used for debugging purposes<a name="line.369"></a>
+<span class="sourceLineNo">370</span>   */<a name="line.370"></a>
+<span class="sourceLineNo">371</span>  private void printChoreDetails(final String header, ScheduledChore chore) {<a name="line.371"></a>
+<span class="sourceLineNo">372</span>    LinkedHashMap&lt;String, String&gt; output = new LinkedHashMap&lt;&gt;();<a name="line.372"></a>
+<span class="sourceLineNo">373</span>    output.put(header, "");<a name="line.373"></a>
+<span class="sourceLineNo">374</span>    output.put("Chore name: ", chore.getName());<a name="line.374"></a>
+<span class="sourceLineNo">375</span>    output.put("Chore period: ", Integer.toString(chore.getPeriod()));<a name="line.375"></a>
+<span class="sourceLineNo">376</span>    output.put("Chore timeBetweenRuns: ", Long.toString(chore.getTimeBetweenRuns()));<a name="line.376"></a>
+<span class="sourceLineNo">377</span><a name="line.377"></a>
+<span class="sourceLineNo">378</span>    for (Entry&lt;String, String&gt; entry : output.entrySet()) {<a name="line.378"></a>
+<span class="sourceLineNo">379</span>      if (LOG.isTraceEnabled()) LOG.trace(entry.getKey() + entry.getValue());<a name="line.379"></a>
+<span class="sourceLineNo">380</span>    }<a name="line.380"></a>
+<span class="sourceLineNo">381</span>  }<a name="line.381"></a>
+<span class="sourceLineNo">382</span><a name="line.382"></a>
+<span class="sourceLineNo">383</span>  /**<a name="line.383"></a>
+<span class="sourceLineNo">384</span>   * Prints a summary of important details about the service. Used for debugging purposes<a name="line.384"></a>
+<span class="sourceLineNo">385</span>   */<a name="line.385"></a>
+<span class="sourceLineNo">386</span>  private void printChoreServiceDetails(final String header) {<a name="line.386"></a>
+<span class="sourceLineNo">387</span>    LinkedHashMap&lt;String, String&gt; output = new LinkedHashMap&lt;&gt;();<a name="line.387"></a>
+<span class="sourceLineNo">388</span>    output.put(header, "");<a name="line.388"></a>
+<span class="sourceLineNo">389</span>    output.put("ChoreService corePoolSize: ", Integer.toString(getCorePoolSize()));<a name="line.389"></a>
+<span class="sourceLineNo">390</span>    output.put("ChoreService scheduledChores: ", Integer.toString(getNumberOfScheduledChores()));<a name="line.390"></a>
+<span class="sourceLineNo">391</span>    output.put("ChoreService missingStartTimeCount: ",<a name="line.391"></a>
+<span class="sourceLineNo">392</span>      Integer.toString(getNumberOfChoresMissingStartTime()));<a name="line.392"></a>
+<span class="sourceLineNo">393</span><a name="line.393"></a>
+<span class="sourceLineNo">394</span>    for (Entry&lt;String, String&gt; entry : output.entrySet()) {<a name="line.394"></a>
+<span class="sourceLineNo">395</span>      if (LOG.isTraceEnabled()) LOG.trace(entry.getKey() + entry.getValue());<a name="line.395"></a>
+<span class="sourceLineNo">396</span>    }<a name="line.396"></a>
+<span class="sourceLineNo">397</span>  }<a name="line.397"></a>
+<span class="sourceLineNo">398</span>}<a name="line.398"></a>
 
 
 
diff --git a/apidocs/src-html/org/apache/hadoop/hbase/ScheduledChore.html b/apidocs/src-html/org/apache/hadoop/hbase/ScheduledChore.html
index 317bf83..deb2db7 100644
--- a/apidocs/src-html/org/apache/hadoop/hbase/ScheduledChore.html
+++ b/apidocs/src-html/org/apache/hadoop/hbase/ScheduledChore.html
@@ -29,351 +29,360 @@
 <span class="sourceLineNo">021</span>import java.util.concurrent.ScheduledThreadPoolExecutor;<a name="line.21"></a>
 <span class="sourceLineNo">022</span>import java.util.concurrent.TimeUnit;<a name="line.22"></a>
 <span class="sourceLineNo">023</span><a name="line.23"></a>
-<span class="sourceLineNo">024</span>import org.apache.yetus.audience.InterfaceAudience;<a name="line.24"></a>
-<span class="sourceLineNo">025</span>import org.slf4j.Logger;<a name="line.25"></a>
-<span class="sourceLineNo">026</span>import org.slf4j.LoggerFactory;<a name="line.26"></a>
-<span class="sourceLineNo">027</span>import org.apache.hbase.thirdparty.com.google.common.annotations.VisibleForTesting;<a name="line.27"></a>
-<span class="sourceLineNo">028</span><a name="line.28"></a>
-<span class="sourceLineNo">029</span>/**<a name="line.29"></a>
-<span class="sourceLineNo">030</span> * ScheduledChore is a task performed on a period in hbase. ScheduledChores become active once<a name="line.30"></a>
-<span class="sourceLineNo">031</span> * scheduled with a {@link ChoreService} via {@link ChoreService#scheduleChore(ScheduledChore)}. The<a name="line.31"></a>
-<span class="sourceLineNo">032</span> * chore is run in a {@link ScheduledThreadPoolExecutor} and competes with other ScheduledChores for<a name="line.32"></a>
-<span class="sourceLineNo">033</span> * access to the threads in the core thread pool. If an unhandled exception occurs, the chore<a name="line.33"></a>
-<span class="sourceLineNo">034</span> * cancellation is logged. Implementers should consider whether or not the Chore will be able to<a name="line.34"></a>
-<span class="sourceLineNo">035</span> * execute within the defined period. It is bad practice to define a ScheduledChore whose execution<a name="line.35"></a>
-<span class="sourceLineNo">036</span> * time exceeds its period since it will try to hog one of the threads in the {@link ChoreService}'s<a name="line.36"></a>
-<span class="sourceLineNo">037</span> * thread pool.<a name="line.37"></a>
-<span class="sourceLineNo">038</span> * &lt;p&gt;<a name="line.38"></a>
-<span class="sourceLineNo">039</span> * Don't subclass ScheduledChore if the task relies on being woken up for something to do, such as<a name="line.39"></a>
-<span class="sourceLineNo">040</span> * an entry being added to a queue, etc.<a name="line.40"></a>
-<span class="sourceLineNo">041</span> */<a name="line.41"></a>
-<span class="sourceLineNo">042</span>@InterfaceAudience.Public<a name="line.42"></a>
-<span class="sourceLineNo">043</span>public abstract class ScheduledChore implements Runnable {<a name="line.43"></a>
-<span class="sourceLineNo">044</span>  private static final Logger LOG = LoggerFactory.getLogger(ScheduledChore.class);<a name="line.44"></a>
-<span class="sourceLineNo">045</span><a name="line.45"></a>
-<span class="sourceLineNo">046</span>  private final String name;<a name="line.46"></a>
+<span class="sourceLineNo">024</span>import org.apache.hadoop.hbase.util.MovingAverage;<a name="line.24"></a>
+<span class="sourceLineNo">025</span>import org.apache.hadoop.hbase.util.WindowMovingAverage;<a name="line.25"></a>
+<span class="sourceLineNo">026</span>import org.apache.yetus.audience.InterfaceAudience;<a name="line.26"></a>
+<span class="sourceLineNo">027</span>import org.slf4j.Logger;<a name="line.27"></a>
+<span class="sourceLineNo">028</span>import org.slf4j.LoggerFactory;<a name="line.28"></a>
+<span class="sourceLineNo">029</span>import org.apache.hbase.thirdparty.com.google.common.annotations.VisibleForTesting;<a name="line.29"></a>
+<span class="sourceLineNo">030</span><a name="line.30"></a>
+<span class="sourceLineNo">031</span>/**<a name="line.31"></a>
+<span class="sourceLineNo">032</span> * ScheduledChore is a task performed on a period in hbase. ScheduledChores become active once<a name="line.32"></a>
+<span class="sourceLineNo">033</span> * scheduled with a {@link ChoreService} via {@link ChoreService#scheduleChore(ScheduledChore)}. The<a name="line.33"></a>
+<span class="sourceLineNo">034</span> * chore is run in a {@link ScheduledThreadPoolExecutor} and competes with other ScheduledChores for<a name="line.34"></a>
+<span class="sourceLineNo">035</span> * access to the threads in the core thread pool. If an unhandled exception occurs, the chore<a name="line.35"></a>
+<span class="sourceLineNo">036</span> * cancellation is logged. Implementers should consider whether or not the Chore will be able to<a name="line.36"></a>
+<span class="sourceLineNo">037</span> * execute within the defined period. It is bad practice to define a ScheduledChore whose execution<a name="line.37"></a>
+<span class="sourceLineNo">038</span> * time exceeds its period since it will try to hog one of the threads in the {@link ChoreService}'s<a name="line.38"></a>
+<span class="sourceLineNo">039</span> * thread pool.<a name="line.39"></a>
+<span class="sourceLineNo">040</span> * &lt;p&gt;<a name="line.40"></a>
+<span class="sourceLineNo">041</span> * Don't subclass ScheduledChore if the task relies on being woken up for something to do, such as<a name="line.41"></a>
+<span class="sourceLineNo">042</span> * an entry being added to a queue, etc.<a name="line.42"></a>
+<span class="sourceLineNo">043</span> */<a name="line.43"></a>
+<span class="sourceLineNo">044</span>@InterfaceAudience.Public<a name="line.44"></a>
+<span class="sourceLineNo">045</span>public abstract class ScheduledChore implements Runnable {<a name="line.45"></a>
+<span class="sourceLineNo">046</span>  private static final Logger LOG = LoggerFactory.getLogger(ScheduledChore.class);<a name="line.46"></a>
 <span class="sourceLineNo">047</span><a name="line.47"></a>
-<span class="sourceLineNo">048</span>  /**<a name="line.48"></a>
-<span class="sourceLineNo">049</span>   * Default values for scheduling parameters should they be excluded during construction<a name="line.49"></a>
-<span class="sourceLineNo">050</span>   */<a name="line.50"></a>
-<span class="sourceLineNo">051</span>  private final static TimeUnit DEFAULT_TIME_UNIT = TimeUnit.MILLISECONDS;<a name="line.51"></a>
-<span class="sourceLineNo">052</span>  private final static long DEFAULT_INITIAL_DELAY = 0;<a name="line.52"></a>
-<span class="sourceLineNo">053</span><a name="line.53"></a>
-<span class="sourceLineNo">054</span>  /**<a name="line.54"></a>
-<span class="sourceLineNo">055</span>   * Scheduling parameters. Used by ChoreService when scheduling the chore to run periodically<a name="line.55"></a>
-<span class="sourceLineNo">056</span>   */<a name="line.56"></a>
-<span class="sourceLineNo">057</span>  private final int period; // in TimeUnit units<a name="line.57"></a>
-<span class="sourceLineNo">058</span>  private final TimeUnit timeUnit;<a name="line.58"></a>
-<span class="sourceLineNo">059</span>  private final long initialDelay; // in TimeUnit units<a name="line.59"></a>
-<span class="sourceLineNo">060</span><a name="line.60"></a>
-<span class="sourceLineNo">061</span>  /**<a name="line.61"></a>
-<span class="sourceLineNo">062</span>   * Interface to the ChoreService that this ScheduledChore is scheduled with. null if the chore is<a name="line.62"></a>
-<span class="sourceLineNo">063</span>   * not scheduled.<a name="line.63"></a>
-<span class="sourceLineNo">064</span>   */<a name="line.64"></a>
-<span class="sourceLineNo">065</span>  private ChoreServicer choreServicer;<a name="line.65"></a>
-<span class="sourceLineNo">066</span><a name="line.66"></a>
-<span class="sourceLineNo">067</span>  /**<a name="line.67"></a>
-<span class="sourceLineNo">068</span>   * Variables that encapsulate the meaningful state information<a name="line.68"></a>
-<span class="sourceLineNo">069</span>   */<a name="line.69"></a>
-<span class="sourceLineNo">070</span>  private long timeOfLastRun = -1; // system time millis<a name="line.70"></a>
-<span class="sourceLineNo">071</span>  private long timeOfThisRun = -1; // system time millis<a name="line.71"></a>
-<span class="sourceLineNo">072</span>  private boolean initialChoreComplete = false;<a name="line.72"></a>
-<span class="sourceLineNo">073</span><a name="line.73"></a>
-<span class="sourceLineNo">074</span>  /**<a name="line.74"></a>
-<span class="sourceLineNo">075</span>   * A means by which a ScheduledChore can be stopped. Once a chore recognizes that it has been<a name="line.75"></a>
-<span class="sourceLineNo">076</span>   * stopped, it will cancel itself. This is particularly useful in the case where a single stopper<a name="line.76"></a>
-<span class="sourceLineNo">077</span>   * instance is given to multiple chores. In such a case, a single {@link Stoppable#stop(String)}<a name="line.77"></a>
-<span class="sourceLineNo">078</span>   * command can cause many chores to stop together.<a name="line.78"></a>
-<span class="sourceLineNo">079</span>   */<a name="line.79"></a>
-<span class="sourceLineNo">080</span>  private final Stoppable stopper;<a name="line.80"></a>
-<span class="sourceLineNo">081</span><a name="line.81"></a>
-<span class="sourceLineNo">082</span>  interface ChoreServicer {<a name="line.82"></a>
-<span class="sourceLineNo">083</span>    /**<a name="line.83"></a>
-<span class="sourceLineNo">084</span>     * Cancel any ongoing schedules that this chore has with the implementer of this interface.<a name="line.84"></a>
-<span class="sourceLineNo">085</span>     */<a name="line.85"></a>
-<span class="sourceLineNo">086</span>    public void cancelChore(ScheduledChore chore);<a name="line.86"></a>
-<span class="sourceLineNo">087</span>    public void cancelChore(ScheduledChore chore, boolean mayInterruptIfRunning);<a name="line.87"></a>
-<span class="sourceLineNo">088</span><a name="line.88"></a>
-<span class="sourceLineNo">089</span>    /**<a name="line.89"></a>
-<span class="sourceLineNo">090</span>     * @return true when the chore is scheduled with the implementer of this interface<a name="line.90"></a>
-<span class="sourceLineNo">091</span>     */<a name="line.91"></a>
-<span class="sourceLineNo">092</span>    public boolean isChoreScheduled(ScheduledChore chore);<a name="line.92"></a>
-<span class="sourceLineNo">093</span><a name="line.93"></a>
-<span class="sourceLineNo">094</span>    /**<a name="line.94"></a>
-<span class="sourceLineNo">095</span>     * This method tries to execute the chore immediately. If the chore is executing at the time of<a name="line.95"></a>
-<span class="sourceLineNo">096</span>     * this call, the chore will begin another execution as soon as the current execution finishes<a name="line.96"></a>
-<span class="sourceLineNo">097</span>     * &lt;p&gt;<a name="line.97"></a>
-<span class="sourceLineNo">098</span>     * If the chore is not scheduled with a ChoreService, this call will fail.<a name="line.98"></a>
-<span class="sourceLineNo">099</span>     * @return false when the chore could not be triggered immediately<a name="line.99"></a>
-<span class="sourceLineNo">100</span>     */<a name="line.100"></a>
-<span class="sourceLineNo">101</span>    public boolean triggerNow(ScheduledChore chore);<a name="line.101"></a>
-<span class="sourceLineNo">102</span><a name="line.102"></a>
-<span class="sourceLineNo">103</span>    /**<a name="line.103"></a>
-<span class="sourceLineNo">104</span>     * A callback that tells the implementer of this interface that one of the scheduled chores is<a name="line.104"></a>
-<span class="sourceLineNo">105</span>     * missing its start time. The implication of a chore missing its start time is that the<a name="line.105"></a>
-<span class="sourceLineNo">106</span>     * service's current means of scheduling may not be sufficient to handle the number of ongoing<a name="line.106"></a>
-<span class="sourceLineNo">107</span>     * chores (the other explanation is that the chore's execution time is greater than its<a name="line.107"></a>
-<span class="sourceLineNo">108</span>     * scheduled period). The service should try to increase its concurrency when this callback is<a name="line.108"></a>
-<span class="sourceLineNo">109</span>     * received.<a name="line.109"></a>
-<span class="sourceLineNo">110</span>     * @param chore The chore that missed its start time<a name="line.110"></a>
-<span class="sourceLineNo">111</span>     */<a name="line.111"></a>
-<span class="sourceLineNo">112</span>    public void onChoreMissedStartTime(ScheduledChore chore);<a name="line.112"></a>
-<span class="sourceLineNo">113</span>  }<a name="line.113"></a>
-<span class="sourceLineNo">114</span><a name="line.114"></a>
-<span class="sourceLineNo">115</span>  /**<a name="line.115"></a>
-<span class="sourceLineNo">116</span>   * This constructor is for test only. It allows us to create an object and to call chore() on it.<a name="line.116"></a>
-<span class="sourceLineNo">117</span>   */<a name="line.117"></a>
-<span class="sourceLineNo">118</span>  @InterfaceAudience.Private<a name="line.118"></a>
-<span class="sourceLineNo">119</span>  @VisibleForTesting<a name="line.119"></a>
-<span class="sourceLineNo">120</span>  protected ScheduledChore() {<a name="line.120"></a>
-<span class="sourceLineNo">121</span>    this.name = null;<a name="line.121"></a>
-<span class="sourceLineNo">122</span>    this.stopper = null;<a name="line.122"></a>
-<span class="sourceLineNo">123</span>    this.period = 0;<a name="line.123"></a>
-<span class="sourceLineNo">124</span>    this.initialDelay = DEFAULT_INITIAL_DELAY;<a name="line.124"></a>
-<span class="sourceLineNo">125</span>    this.timeUnit = DEFAULT_TIME_UNIT;<a name="line.125"></a>
-<span class="sourceLineNo">126</span>  }<a name="line.126"></a>
-<span class="sourceLineNo">127</span><a name="line.127"></a>
-<span class="sourceLineNo">128</span>  /**<a name="line.128"></a>
-<span class="sourceLineNo">129</span>   * @param name Name assigned to Chore. Useful for identification amongst chores of the same type<a name="line.129"></a>
-<span class="sourceLineNo">130</span>   * @param stopper When {@link Stoppable#isStopped()} is true, this chore will cancel and cleanup<a name="line.130"></a>
-<span class="sourceLineNo">131</span>   * @param period Period in millis with which this Chore repeats execution when scheduled.<a name="line.131"></a>
-<span class="sourceLineNo">132</span>   */<a name="line.132"></a>
-<span class="sourceLineNo">133</span>  public ScheduledChore(final String name, Stoppable stopper, final int period) {<a name="line.133"></a>
-<span class="sourceLineNo">134</span>    this(name, stopper, period, DEFAULT_INITIAL_DELAY);<a name="line.134"></a>
-<span class="sourceLineNo">135</span>  }<a name="line.135"></a>
-<span class="sourceLineNo">136</span><a name="line.136"></a>
-<span class="sourceLineNo">137</span>  /**<a name="line.137"></a>
-<span class="sourceLineNo">138</span>   * @param name Name assigned to Chore. Useful for identification amongst chores of the same type<a name="line.138"></a>
-<span class="sourceLineNo">139</span>   * @param stopper When {@link Stoppable#isStopped()} is true, this chore will cancel and cleanup<a name="line.139"></a>
-<span class="sourceLineNo">140</span>   * @param period Period in millis with which this Chore repeats execution when scheduled.<a name="line.140"></a>
-<span class="sourceLineNo">141</span>   * @param initialDelay Delay before this Chore begins to execute once it has been scheduled. A<a name="line.141"></a>
-<span class="sourceLineNo">142</span>   *          value of 0 means the chore will begin to execute immediately. Negative delays are<a name="line.142"></a>
-<span class="sourceLineNo">143</span>   *          invalid and will be corrected to a value of 0.<a name="line.143"></a>
-<span class="sourceLineNo">144</span>   */<a name="line.144"></a>
-<span class="sourceLineNo">145</span>  public ScheduledChore(final String name, Stoppable stopper, final int period,<a name="line.145"></a>
-<span class="sourceLineNo">146</span>      final long initialDelay) {<a name="line.146"></a>
-<span class="sourceLineNo">147</span>    this(name, stopper, period, initialDelay, DEFAULT_TIME_UNIT);<a name="line.147"></a>
-<span class="sourceLineNo">148</span>  }<a name="line.148"></a>
-<span class="sourceLineNo">149</span><a name="line.149"></a>
-<span class="sourceLineNo">150</span>  /**<a name="line.150"></a>
-<span class="sourceLineNo">151</span>   * @param name Name assigned to Chore. Useful for identification amongst chores of the same type<a name="line.151"></a>
-<span class="sourceLineNo">152</span>   * @param stopper When {@link Stoppable#isStopped()} is true, this chore will cancel and cleanup<a name="line.152"></a>
-<span class="sourceLineNo">153</span>   * @param period Period in Timeunit unit with which this Chore repeats execution when scheduled.<a name="line.153"></a>
-<span class="sourceLineNo">154</span>   * @param initialDelay Delay in Timeunit unit before this Chore begins to execute once it has been<a name="line.154"></a>
-<span class="sourceLineNo">155</span>   *          scheduled. A value of 0 means the chore will begin to execute immediately. Negative<a name="line.155"></a>
-<span class="sourceLineNo">156</span>   *          delays are invalid and will be corrected to a value of 0.<a name="line.156"></a>
-<span class="sourceLineNo">157</span>   * @param unit The unit that is used to measure period and initialDelay<a name="line.157"></a>
-<span class="sourceLineNo">158</span>   */<a name="line.158"></a>
-<span class="sourceLineNo">159</span>  public ScheduledChore(final String name, Stoppable stopper, final int period,<a name="line.159"></a>
-<span class="sourceLineNo">160</span>      final long initialDelay, final TimeUnit unit) {<a name="line.160"></a>
-<span class="sourceLineNo">161</span>    this.name = name;<a name="line.161"></a>
-<span class="sourceLineNo">162</span>    this.stopper = stopper;<a name="line.162"></a>
-<span class="sourceLineNo">163</span>    this.period = period;<a name="line.163"></a>
-<span class="sourceLineNo">164</span>    this.initialDelay = initialDelay &lt; 0 ? 0 : initialDelay;<a name="line.164"></a>
-<span class="sourceLineNo">165</span>    this.timeUnit = unit;<a name="line.165"></a>
-<span class="sourceLineNo">166</span>  }<a name="line.166"></a>
-<span class="sourceLineNo">167</span><a name="line.167"></a>
-<span class="sourceLineNo">168</span>  /**<a name="line.168"></a>
-<span class="sourceLineNo">169</span>   * @see java.lang.Runnable#run()<a name="line.169"></a>
-<span class="sourceLineNo">170</span>   */<a name="line.170"></a>
-<span class="sourceLineNo">171</span>  @Override<a name="line.171"></a>
-<span class="sourceLineNo">172</span>  public void run() {<a name="line.172"></a>
-<span class="sourceLineNo">173</span>    updateTimeTrackingBeforeRun();<a name="line.173"></a>
-<span class="sourceLineNo">174</span>    if (missedStartTime() &amp;&amp; isScheduled()) {<a name="line.174"></a>
-<span class="sourceLineNo">175</span>      onChoreMissedStartTime();<a name="line.175"></a>
-<span class="sourceLineNo">176</span>      if (LOG.isInfoEnabled()) LOG.info("Chore: " + getName() + " missed its start time");<a name="line.176"></a>
-<span class="sourceLineNo">177</span>    } else if (stopper.isStopped() || !isScheduled()) {<a name="line.177"></a>
-<span class="sourceLineNo">178</span>      cancel(false);<a name="line.178"></a>
-<span class="sourceLineNo">179</span>      cleanup();<a name="line.179"></a>
-<span class="sourceLineNo">180</span>      if (LOG.isInfoEnabled()) LOG.info("Chore: " + getName() + " was stopped");<a name="line.180"></a>
-<span class="sourceLineNo">181</span>    } else {<a name="line.181"></a>
-<span class="sourceLineNo">182</span>      try {<a name="line.182"></a>
-<span class="sourceLineNo">183</span>        if (!initialChoreComplete) {<a name="line.183"></a>
-<span class="sourceLineNo">184</span>          initialChoreComplete = initialChore();<a name="line.184"></a>
-<span class="sourceLineNo">185</span>        } else {<a name="line.185"></a>
-<span class="sourceLineNo">186</span>          chore();<a name="line.186"></a>
-<span class="sourceLineNo">187</span>        }<a name="line.187"></a>
-<span class="sourceLineNo">188</span>      } catch (Throwable t) {<a name="line.188"></a>
-<span class="sourceLineNo">189</span>        if (LOG.isErrorEnabled()) LOG.error("Caught error", t);<a name="line.189"></a>
-<span class="sourceLineNo">190</span>        if (this.stopper.isStopped()) {<a name="line.190"></a>
-<span class="sourceLineNo">191</span>          cancel(false);<a name="line.191"></a>
-<span class="sourceLineNo">192</span>          cleanup();<a name="line.192"></a>
-<span class="sourceLineNo">193</span>        }<a name="line.193"></a>
-<span class="sourceLineNo">194</span>      }<a name="line.194"></a>
-<span class="sourceLineNo">195</span>    }<a name="line.195"></a>
-<span class="sourceLineNo">196</span>  }<a name="line.196"></a>
-<span class="sourceLineNo">197</span><a name="line.197"></a>
-<span class="sourceLineNo">198</span>  /**<a name="line.198"></a>
-<span class="sourceLineNo">199</span>   * Update our time tracking members. Called at the start of an execution of this chore's run()<a name="line.199"></a>
-<span class="sourceLineNo">200</span>   * method so that a correct decision can be made as to whether or not we missed the start time<a name="line.200"></a>
-<span class="sourceLineNo">201</span>   */<a name="line.201"></a>
-<span class="sourceLineNo">202</span>  private synchronized void updateTimeTrackingBeforeRun() {<a name="line.202"></a>
-<span class="sourceLineNo">203</span>    timeOfLastRun = timeOfThisRun;<a name="line.203"></a>
-<span class="sourceLineNo">204</span>    timeOfThisRun = System.currentTimeMillis();<a name="line.204"></a>
+<span class="sourceLineNo">048</span>  private final String name;<a name="line.48"></a>
+<span class="sourceLineNo">049</span><a name="line.49"></a>
+<span class="sourceLineNo">050</span>  /**<a name="line.50"></a>
+<span class="sourceLineNo">051</span>   * Default values for scheduling parameters should they be excluded during construction<a name="line.51"></a>
+<span class="sourceLineNo">052</span>   */<a name="line.52"></a>
+<span class="sourceLineNo">053</span>  private final static TimeUnit DEFAULT_TIME_UNIT = TimeUnit.MILLISECONDS;<a name="line.53"></a>
+<span class="sourceLineNo">054</span>  private final static long DEFAULT_INITIAL_DELAY = 0;<a name="line.54"></a>
+<span class="sourceLineNo">055</span><a name="line.55"></a>
+<span class="sourceLineNo">056</span>  /**<a name="line.56"></a>
+<span class="sourceLineNo">057</span>   * Scheduling parameters. Used by ChoreService when scheduling the chore to run periodically<a name="line.57"></a>
+<span class="sourceLineNo">058</span>   */<a name="line.58"></a>
+<span class="sourceLineNo">059</span>  private final int period; // in TimeUnit units<a name="line.59"></a>
+<span class="sourceLineNo">060</span>  private final TimeUnit timeUnit;<a name="line.60"></a>
+<span class="sourceLineNo">061</span>  private final long initialDelay; // in TimeUnit units<a name="line.61"></a>
+<span class="sourceLineNo">062</span><a name="line.62"></a>
+<span class="sourceLineNo">063</span>  /**<a name="line.63"></a>
+<span class="sourceLineNo">064</span>   * Interface to the ChoreService that this ScheduledChore is scheduled with. null if the chore is<a name="line.64"></a>
+<span class="sourceLineNo">065</span>   * not scheduled.<a name="line.65"></a>
+<span class="sourceLineNo">066</span>   */<a name="line.66"></a>
+<span class="sourceLineNo">067</span>  private ChoreServicer choreServicer;<a name="line.67"></a>
+<span class="sourceLineNo">068</span><a name="line.68"></a>
+<span class="sourceLineNo">069</span>  /**<a name="line.69"></a>
+<span class="sourceLineNo">070</span>   * Variables that encapsulate the meaningful state information<a name="line.70"></a>
+<span class="sourceLineNo">071</span>   */<a name="line.71"></a>
+<span class="sourceLineNo">072</span>  private long timeOfLastRun = -1; // system time millis<a name="line.72"></a>
+<span class="sourceLineNo">073</span>  private long timeOfThisRun = -1; // system time millis<a name="line.73"></a>
+<span class="sourceLineNo">074</span>  private boolean initialChoreComplete = false;<a name="line.74"></a>
+<span class="sourceLineNo">075</span><a name="line.75"></a>
+<span class="sourceLineNo">076</span>  /**<a name="line.76"></a>
+<span class="sourceLineNo">077</span>   * A means by which a ScheduledChore can be stopped. Once a chore recognizes that it has been<a name="line.77"></a>
+<span class="sourceLineNo">078</span>   * stopped, it will cancel itself. This is particularly useful in the case where a single stopper<a name="line.78"></a>
+<span class="sourceLineNo">079</span>   * instance is given to multiple chores. In such a case, a single {@link Stoppable#stop(String)}<a name="line.79"></a>
+<span class="sourceLineNo">080</span>   * command can cause many chores to stop together.<a name="line.80"></a>
+<span class="sourceLineNo">081</span>   */<a name="line.81"></a>
+<span class="sourceLineNo">082</span>  private final Stoppable stopper;<a name="line.82"></a>
+<span class="sourceLineNo">083</span><a name="line.83"></a>
+<span class="sourceLineNo">084</span>  private final MovingAverage&lt;Void&gt; timeMeasurement = new WindowMovingAverage();<a name="line.84"></a>
+<span class="sourceLineNo">085</span><a name="line.85"></a>
+<span class="sourceLineNo">086</span>  interface ChoreServicer {<a name="line.86"></a>
+<span class="sourceLineNo">087</span>    /**<a name="line.87"></a>
+<span class="sourceLineNo">088</span>     * Cancel any ongoing schedules that this chore has with the implementer of this interface.<a name="line.88"></a>
+<span class="sourceLineNo">089</span>     */<a name="line.89"></a>
+<span class="sourceLineNo">090</span>    public void cancelChore(ScheduledChore chore);<a name="line.90"></a>
+<span class="sourceLineNo">091</span>    public void cancelChore(ScheduledChore chore, boolean mayInterruptIfRunning);<a name="line.91"></a>
+<span class="sourceLineNo">092</span><a name="line.92"></a>
+<span class="sourceLineNo">093</span>    /**<a name="line.93"></a>
+<span class="sourceLineNo">094</span>     * @return true when the chore is scheduled with the implementer of this interface<a name="line.94"></a>
+<span class="sourceLineNo">095</span>     */<a name="line.95"></a>
+<span class="sourceLineNo">096</span>    public boolean isChoreScheduled(ScheduledChore chore);<a name="line.96"></a>
+<span class="sourceLineNo">097</span><a name="line.97"></a>
+<span class="sourceLineNo">098</span>    /**<a name="line.98"></a>
+<span class="sourceLineNo">099</span>     * This method tries to execute the chore immediately. If the chore is executing at the time of<a name="line.99"></a>
+<span class="sourceLineNo">100</span>     * this call, the chore will begin another execution as soon as the current execution finishes<a name="line.100"></a>
+<span class="sourceLineNo">101</span>     * &lt;p&gt;<a name="line.101"></a>
+<span class="sourceLineNo">102</span>     * If the chore is not scheduled with a ChoreService, this call will fail.<a name="line.102"></a>
+<span class="sourceLineNo">103</span>     * @return false when the chore could not be triggered immediately<a name="line.103"></a>
+<span class="sourceLineNo">104</span>     */<a name="line.104"></a>
+<span class="sourceLineNo">105</span>    public boolean triggerNow(ScheduledChore chore);<a name="line.105"></a>
+<span class="sourceLineNo">106</span><a name="line.106"></a>
+<span class="sourceLineNo">107</span>    /**<a name="line.107"></a>
+<span class="sourceLineNo">108</span>     * A callback that tells the implementer of this interface that one of the scheduled chores is<a name="line.108"></a>
+<span class="sourceLineNo">109</span>     * missing its start time. The implication of a chore missing its start time is that the<a name="line.109"></a>
+<span class="sourceLineNo">110</span>     * service's current means of scheduling may not be sufficient to handle the number of ongoing<a name="line.110"></a>
+<span class="sourceLineNo">111</span>     * chores (the other explanation is that the chore's execution time is greater than its<a name="line.111"></a>
+<span class="sourceLineNo">112</span>     * scheduled period). The service should try to increase its concurrency when this callback is<a name="line.112"></a>
+<span class="sourceLineNo">113</span>     * received.<a name="line.113"></a>
+<span class="sourceLineNo">114</span>     * @param chore The chore that missed its start time<a name="line.114"></a>
+<span class="sourceLineNo">115</span>     */<a name="line.115"></a>
+<span class="sourceLineNo">116</span>    public void onChoreMissedStartTime(ScheduledChore chore);<a name="line.116"></a>
+<span class="sourceLineNo">117</span>  }<a name="line.117"></a>
+<span class="sourceLineNo">118</span><a name="line.118"></a>
+<span class="sourceLineNo">119</span>  /**<a name="line.119"></a>
+<span class="sourceLineNo">120</span>   * This constructor is for test only. It allows us to create an object and to call chore() on it.<a name="line.120"></a>
+<span class="sourceLineNo">121</span>   */<a name="line.121"></a>
+<span class="sourceLineNo">122</span>  @InterfaceAudience.Private<a name="line.122"></a>
+<span class="sourceLineNo">123</span>  @VisibleForTesting<a name="line.123"></a>
+<span class="sourceLineNo">124</span>  protected ScheduledChore() {<a name="line.124"></a>
+<span class="sourceLineNo">125</span>    this.name = null;<a name="line.125"></a>
+<span class="sourceLineNo">126</span>    this.stopper = null;<a name="line.126"></a>
+<span class="sourceLineNo">127</span>    this.period = 0;<a name="line.127"></a>
+<span class="sourceLineNo">128</span>    this.initialDelay = DEFAULT_INITIAL_DELAY;<a name="line.128"></a>
+<span class="sourceLineNo">129</span>    this.timeUnit = DEFAULT_TIME_UNIT;<a name="line.129"></a>
+<span class="sourceLineNo">130</span>  }<a name="line.130"></a>
+<span class="sourceLineNo">131</span><a name="line.131"></a>
+<span class="sourceLineNo">132</span>  /**<a name="line.132"></a>
+<span class="sourceLineNo">133</span>   * @param name Name assigned to Chore. Useful for identification amongst chores of the same type<a name="line.133"></a>
+<span class="sourceLineNo">134</span>   * @param stopper When {@link Stoppable#isStopped()} is true, this chore will cancel and cleanup<a name="line.134"></a>
+<span class="sourceLineNo">135</span>   * @param period Period in millis with which this Chore repeats execution when scheduled.<a name="line.135"></a>
+<span class="sourceLineNo">136</span>   */<a name="line.136"></a>
+<span class="sourceLineNo">137</span>  public ScheduledChore(final String name, Stoppable stopper, final int period) {<a name="line.137"></a>
+<span class="sourceLineNo">138</span>    this(name, stopper, period, DEFAULT_INITIAL_DELAY);<a name="line.138"></a>
+<span class="sourceLineNo">139</span>  }<a name="line.139"></a>
+<span class="sourceLineNo">140</span><a name="line.140"></a>
+<span class="sourceLineNo">141</span>  /**<a name="line.141"></a>
+<span class="sourceLineNo">142</span>   * @param name Name assigned to Chore. Useful for identification amongst chores of the same type<a name="line.142"></a>
+<span class="sourceLineNo">143</span>   * @param stopper When {@link Stoppable#isStopped()} is true, this chore will cancel and cleanup<a name="line.143"></a>
+<span class="sourceLineNo">144</span>   * @param period Period in millis with which this Chore repeats execution when scheduled.<a name="line.144"></a>
+<span class="sourceLineNo">145</span>   * @param initialDelay Delay before this Chore begins to execute once it has been scheduled. A<a name="line.145"></a>
+<span class="sourceLineNo">146</span>   *          value of 0 means the chore will begin to execute immediately. Negative delays are<a name="line.146"></a>
+<span class="sourceLineNo">147</span>   *          invalid and will be corrected to a value of 0.<a name="line.147"></a>
+<span class="sourceLineNo">148</span>   */<a name="line.148"></a>
+<span class="sourceLineNo">149</span>  public ScheduledChore(final String name, Stoppable stopper, final int period,<a name="line.149"></a>
+<span class="sourceLineNo">150</span>      final long initialDelay) {<a name="line.150"></a>
+<span class="sourceLineNo">151</span>    this(name, stopper, period, initialDelay, DEFAULT_TIME_UNIT);<a name="line.151"></a>
+<span class="sourceLineNo">152</span>  }<a name="line.152"></a>
+<span class="sourceLineNo">153</span><a name="line.153"></a>
+<span class="sourceLineNo">154</span>  /**<a name="line.154"></a>
+<span class="sourceLineNo">155</span>   * @param name Name assigned to Chore. Useful for identification amongst chores of the same type<a name="line.155"></a>
+<span class="sourceLineNo">156</span>   * @param stopper When {@link Stoppable#isStopped()} is true, this chore will cancel and cleanup<a name="line.156"></a>
+<span class="sourceLineNo">157</span>   * @param period Period in Timeunit unit with which this Chore repeats execution when scheduled.<a name="line.157"></a>
+<span class="sourceLineNo">158</span>   * @param initialDelay Delay in Timeunit unit before this Chore begins to execute once it has been<a name="line.158"></a>
+<span class="sourceLineNo">159</span>   *          scheduled. A value of 0 means the chore will begin to execute immediately. Negative<a name="line.159"></a>
+<span class="sourceLineNo">160</span>   *          delays are invalid and will be corrected to a value of 0.<a name="line.160"></a>
+<span class="sourceLineNo">161</span>   * @param unit The unit that is used to measure period and initialDelay<a name="line.161"></a>
+<span class="sourceLineNo">162</span>   */<a name="line.162"></a>
+<span class="sourceLineNo">163</span>  public ScheduledChore(final String name, Stoppable stopper, final int period,<a name="line.163"></a>
+<span class="sourceLineNo">164</span>      final long initialDelay, final TimeUnit unit) {<a name="line.164"></a>
+<span class="sourceLineNo">165</span>    this.name = name;<a name="line.165"></a>
+<span class="sourceLineNo">166</span>    this.stopper = stopper;<a name="line.166"></a>
+<span class="sourceLineNo">167</span>    this.period = period;<a name="line.167"></a>
+<span class="sourceLineNo">168</span>    this.initialDelay = initialDelay &lt; 0 ? 0 : initialDelay;<a name="line.168"></a>
+<span class="sourceLineNo">169</span>    this.timeUnit = unit;<a name="line.169"></a>
+<span class="sourceLineNo">170</span>  }<a name="line.170"></a>
+<span class="sourceLineNo">171</span><a name="line.171"></a>
+<span class="sourceLineNo">172</span>  /**<a name="line.172"></a>
+<span class="sourceLineNo">173</span>   * @see java.lang.Runnable#run()<a name="line.173"></a>
+<span class="sourceLineNo">174</span>   */<a name="line.174"></a>
+<span class="sourceLineNo">175</span>  @Override<a name="line.175"></a>
+<span class="sourceLineNo">176</span>  public void run() {<a name="line.176"></a>
+<span class="sourceLineNo">177</span>    updateTimeTrackingBeforeRun();<a name="line.177"></a>
+<span class="sourceLineNo">178</span>    if (missedStartTime() &amp;&amp; isScheduled()) {<a name="line.178"></a>
+<span class="sourceLineNo">179</span>      onChoreMissedStartTime();<a name="line.179"></a>
+<span class="sourceLineNo">180</span>      if (LOG.isInfoEnabled()) LOG.info("Chore: " + getName() + " missed its start time");<a name="line.180"></a>
+<span class="sourceLineNo">181</span>    } else if (stopper.isStopped() || !isScheduled()) {<a name="line.181"></a>
+<span class="sourceLineNo">182</span>      cancel(false);<a name="line.182"></a>
+<span class="sourceLineNo">183</span>      cleanup();<a name="line.183"></a>
+<span class="sourceLineNo">184</span>      if (LOG.isInfoEnabled()) LOG.info("Chore: " + getName() + " was stopped");<a name="line.184"></a>
+<span class="sourceLineNo">185</span>    } else {<a name="line.185"></a>
+<span class="sourceLineNo">186</span>      try {<a name="line.186"></a>
+<span class="sourceLineNo">187</span>        if (!initialChoreComplete) {<a name="line.187"></a>
+<span class="sourceLineNo">188</span>          initialChoreComplete = initialChore();<a name="line.188"></a>
+<span class="sourceLineNo">189</span>        } else {<a name="line.189"></a>
+<span class="sourceLineNo">190</span>          timeMeasurement.measure(() -&gt; {<a name="line.190"></a>
+<span class="sourceLineNo">191</span>            chore();<a name="line.191"></a>
+<span class="sourceLineNo">192</span>            return null;<a name="line.192"></a>
+<span class="sourceLineNo">193</span>          });<a name="line.193"></a>
+<span class="sourceLineNo">194</span>          LOG.info(String.format("%s average execution time: %.2f ns.", getName(),<a name="line.194"></a>
+<span class="sourceLineNo">195</span>            timeMeasurement.getAverageTime()));<a name="line.195"></a>
+<span class="sourceLineNo">196</span>        }<a name="line.196"></a>
+<span class="sourceLineNo">197</span>      } catch (Throwable t) {<a name="line.197"></a>
+<span class="sourceLineNo">198</span>        if (LOG.isErrorEnabled()) LOG.error("Caught error", t);<a name="line.198"></a>
+<span class="sourceLineNo">199</span>        if (this.stopper.isStopped()) {<a name="line.199"></a>
+<span class="sourceLineNo">200</span>          cancel(false);<a name="line.200"></a>
+<span class="sourceLineNo">201</span>          cleanup();<a name="line.201"></a>
+<span class="sourceLineNo">202</span>        }<a name="line.202"></a>
+<span class="sourceLineNo">203</span>      }<a name="line.203"></a>
+<span class="sourceLineNo">204</span>    }<a name="line.204"></a>
 <span class="sourceLineNo">205</span>  }<a name="line.205"></a>
 <span class="sourceLineNo">206</span><a name="line.206"></a>
 <span class="sourceLineNo">207</span>  /**<a name="line.207"></a>
-<span class="sourceLineNo">208</span>   * Notify the ChoreService that this chore has missed its start time. Allows the ChoreService to<a name="line.208"></a>
-<span class="sourceLineNo">209</span>   * make the decision as to whether or not it would be worthwhile to increase the number of core<a name="line.209"></a>
-<span class="sourceLineNo">210</span>   * pool threads<a name="line.210"></a>
-<span class="sourceLineNo">211</span>   */<a name="line.211"></a>
-<span class="sourceLineNo">212</span>  private synchronized void onChoreMissedStartTime() {<a name="line.212"></a>
-<span class="sourceLineNo">213</span>    if (choreServicer != null) choreServicer.onChoreMissedStartTime(this);<a name="line.213"></a>
+<span class="sourceLineNo">208</span>   * Update our time tracking members. Called at the start of an execution of this chore's run()<a name="line.208"></a>
+<span class="sourceLineNo">209</span>   * method so that a correct decision can be made as to whether or not we missed the start time<a name="line.209"></a>
+<span class="sourceLineNo">210</span>   */<a name="line.210"></a>
+<span class="sourceLineNo">211</span>  private synchronized void updateTimeTrackingBeforeRun() {<a name="line.211"></a>
+<span class="sourceLineNo">212</span>    timeOfLastRun = timeOfThisRun;<a name="line.212"></a>
+<span class="sourceLineNo">213</span>    timeOfThisRun = System.currentTimeMillis();<a name="line.213"></a>
 <span class="sourceLineNo">214</span>  }<a name="line.214"></a>
 <span class="sourceLineNo">215</span><a name="line.215"></a>
 <span class="sourceLineNo">216</span>  /**<a name="line.216"></a>
-<span class="sourceLineNo">217</span>   * @return How long in millis has it been since this chore last run. Useful for checking if the<a name="line.217"></a>
-<span class="sourceLineNo">218</span>   *         chore has missed its scheduled start time by too large of a margin<a name="line.218"></a>
-<span class="sourceLineNo">219</span>   */<a name="line.219"></a>
-<span class="sourceLineNo">220</span>  synchronized long getTimeBetweenRuns() {<a name="line.220"></a>
-<span class="sourceLineNo">221</span>    return timeOfThisRun - timeOfLastRun;<a name="line.221"></a>
-<span class="sourceLineNo">222</span>  }<a name="line.222"></a>
-<span class="sourceLineNo">223</span><a name="line.223"></a>
-<span class="sourceLineNo">224</span>  /**<a name="line.224"></a>
-<span class="sourceLineNo">225</span>   * @return true when the time between runs exceeds the acceptable threshold<a name="line.225"></a>
-<span class="sourceLineNo">226</span>   */<a name="line.226"></a>
-<span class="sourceLineNo">227</span>  private synchronized boolean missedStartTime() {<a name="line.227"></a>
-<span class="sourceLineNo">228</span>    return isValidTime(timeOfLastRun) &amp;&amp; isValidTime(timeOfThisRun)<a name="line.228"></a>
-<span class="sourceLineNo">229</span>        &amp;&amp; getTimeBetweenRuns() &gt; getMaximumAllowedTimeBetweenRuns();<a name="line.229"></a>
-<span class="sourceLineNo">230</span>  }<a name="line.230"></a>
-<span class="sourceLineNo">231</span><a name="line.231"></a>
-<span class="sourceLineNo">232</span>  /**<a name="line.232"></a>
-<span class="sourceLineNo">233</span>   * @return max allowed time in millis between runs.<a name="line.233"></a>
-<span class="sourceLineNo">234</span>   */<a name="line.234"></a>
-<span class="sourceLineNo">235</span>  private double getMaximumAllowedTimeBetweenRuns() {<a name="line.235"></a>
-<span class="sourceLineNo">236</span>    // Threshold used to determine if the Chore's current run started too late<a name="line.236"></a>
-<span class="sourceLineNo">237</span>    return 1.5 * timeUnit.toMillis(period);<a name="line.237"></a>
-<span class="sourceLineNo">238</span>  }<a name="line.238"></a>
-<span class="sourceLineNo">239</span><a name="line.239"></a>
-<span class="sourceLineNo">240</span>  /**<a name="line.240"></a>
-<span class="sourceLineNo">241</span>   * @param time in system millis<a name="line.241"></a>
-<span class="sourceLineNo">242</span>   * @return true if time is earlier or equal to current milli time<a name="line.242"></a>
+<span class="sourceLineNo">217</span>   * Notify the ChoreService that this chore has missed its start time. Allows the ChoreService to<a name="line.217"></a>
+<span class="sourceLineNo">218</span>   * make the decision as to whether or not it would be worthwhile to increase the number of core<a name="line.218"></a>
+<span class="sourceLineNo">219</span>   * pool threads<a name="line.219"></a>
+<span class="sourceLineNo">220</span>   */<a name="line.220"></a>
+<span class="sourceLineNo">221</span>  private synchronized void onChoreMissedStartTime() {<a name="line.221"></a>
+<span class="sourceLineNo">222</span>    if (choreServicer != null) choreServicer.onChoreMissedStartTime(this);<a name="line.222"></a>
+<span class="sourceLineNo">223</span>  }<a name="line.223"></a>
+<span class="sourceLineNo">224</span><a name="line.224"></a>
+<span class="sourceLineNo">225</span>  /**<a name="line.225"></a>
+<span class="sourceLineNo">226</span>   * @return How long in millis has it been since this chore last run. Useful for checking if the<a name="line.226"></a>
+<span class="sourceLineNo">227</span>   *         chore has missed its scheduled start time by too large of a margin<a name="line.227"></a>
+<span class="sourceLineNo">228</span>   */<a name="line.228"></a>
+<span class="sourceLineNo">229</span>  synchronized long getTimeBetweenRuns() {<a name="line.229"></a>
+<span class="sourceLineNo">230</span>    return timeOfThisRun - timeOfLastRun;<a name="line.230"></a>
+<span class="sourceLineNo">231</span>  }<a name="line.231"></a>
+<span class="sourceLineNo">232</span><a name="line.232"></a>
+<span class="sourceLineNo">233</span>  /**<a name="line.233"></a>
+<span class="sourceLineNo">234</span>   * @return true when the time between runs exceeds the acceptable threshold<a name="line.234"></a>
+<span class="sourceLineNo">235</span>   */<a name="line.235"></a>
+<span class="sourceLineNo">236</span>  private synchronized boolean missedStartTime() {<a name="line.236"></a>
+<span class="sourceLineNo">237</span>    return isValidTime(timeOfLastRun) &amp;&amp; isValidTime(timeOfThisRun)<a name="line.237"></a>
+<span class="sourceLineNo">238</span>        &amp;&amp; getTimeBetweenRuns() &gt; getMaximumAllowedTimeBetweenRuns();<a name="line.238"></a>
+<span class="sourceLineNo">239</span>  }<a name="line.239"></a>
+<span class="sourceLineNo">240</span><a name="line.240"></a>
+<span class="sourceLineNo">241</span>  /**<a name="line.241"></a>
+<span class="sourceLineNo">242</span>   * @return max allowed time in millis between runs.<a name="line.242"></a>
 <span class="sourceLineNo">243</span>   */<a name="line.243"></a>
-<span class="sourceLineNo">244</span>  private synchronized boolean isValidTime(final long time) {<a name="line.244"></a>
-<span class="sourceLineNo">245</span>    return time &gt; 0 &amp;&amp; time &lt;= System.currentTimeMillis();<a name="line.245"></a>
-<span class="sourceLineNo">246</span>  }<a name="line.246"></a>
-<span class="sourceLineNo">247</span><a name="line.247"></a>
-<span class="sourceLineNo">248</span>  /**<a name="line.248"></a>
-<span class="sourceLineNo">249</span>   * @return false when the Chore is not currently scheduled with a ChoreService<a name="line.249"></a>
-<span class="sourceLineNo">250</span>   */<a name="line.250"></a>
-<span class="sourceLineNo">251</span>  public synchronized boolean triggerNow() {<a name="line.251"></a>
-<span class="sourceLineNo">252</span>    if (choreServicer != null) {<a name="line.252"></a>
-<span class="sourceLineNo">253</span>      return choreServicer.triggerNow(this);<a name="line.253"></a>
-<span class="sourceLineNo">254</span>    } else {<a name="line.254"></a>
-<span class="sourceLineNo">255</span>      return false;<a name="line.255"></a>
-<span class="sourceLineNo">256</span>    }<a name="line.256"></a>
-<span class="sourceLineNo">257</span>  }<a name="line.257"></a>
-<span class="sourceLineNo">258</span><a name="line.258"></a>
-<span class="sourceLineNo">259</span>  synchronized void setChoreServicer(ChoreServicer service) {<a name="line.259"></a>
-<span class="sourceLineNo">260</span>    // Chores should only ever be scheduled with a single ChoreService. If the choreServicer<a name="line.260"></a>
-<span class="sourceLineNo">261</span>    // is changing, cancel any existing schedules of this chore.<a name="line.261"></a>
-<span class="sourceLineNo">262</span>    if (choreServicer != null &amp;&amp; choreServicer != service) {<a name="line.262"></a>
-<span class="sourceLineNo">263</span>      choreServicer.cancelChore(this, false);<a name="line.263"></a>
-<span class="sourceLineNo">264</span>    }<a name="line.264"></a>
-<span class="sourceLineNo">265</span>    choreServicer = service;<a name="line.265"></a>
-<span class="sourceLineNo">266</span>    timeOfThisRun = System.currentTimeMillis();<a name="line.266"></a>
-<span class="sourceLineNo">267</span>  }<a name="line.267"></a>
-<span class="sourceLineNo">268</span><a name="line.268"></a>
-<span class="sourceLineNo">269</span>  public synchronized void cancel() {<a name="line.269"></a>
-<span class="sourceLineNo">270</span>    cancel(true);<a name="line.270"></a>
-<span class="sourceLineNo">271</span>  }<a name="line.271"></a>
-<span class="sourceLineNo">272</span><a name="line.272"></a>
-<span class="sourceLineNo">273</span>  public synchronized void cancel(boolean mayInterruptIfRunning) {<a name="line.273"></a>
-<span class="sourceLineNo">274</span>    if (isScheduled()) choreServicer.cancelChore(this, mayInterruptIfRunning);<a name="line.274"></a>
-<span class="sourceLineNo">275</span><a name="line.275"></a>
-<span class="sourceLineNo">276</span>    choreServicer = null;<a name="line.276"></a>
-<span class="sourceLineNo">277</span>  }<a name="line.277"></a>
-<span class="sourceLineNo">278</span><a name="line.278"></a>
-<span class="sourceLineNo">279</span>  public String getName() {<a name="line.279"></a>
-<span class="sourceLineNo">280</span>    return name;<a name="line.280"></a>
-<span class="sourceLineNo">281</span>  }<a name="line.281"></a>
-<span class="sourceLineNo">282</span><a name="line.282"></a>
-<span class="sourceLineNo">283</span>  public Stoppable getStopper() {<a name="line.283"></a>
-<span class="sourceLineNo">284</span>    return stopper;<a name="line.284"></a>
-<span class="sourceLineNo">285</span>  }<a name="line.285"></a>
-<span class="sourceLineNo">286</span><a name="line.286"></a>
-<span class="sourceLineNo">287</span>  /**<a name="line.287"></a>
-<span class="sourceLineNo">288</span>   * @return period to execute chore in getTimeUnit() units<a name="line.288"></a>
-<span class="sourceLineNo">289</span>   */<a name="line.289"></a>
-<span class="sourceLineNo">290</span>  public int getPeriod() {<a name="line.290"></a>
-<span class="sourceLineNo">291</span>    return period;<a name="line.291"></a>
-<span class="sourceLineNo">292</span>  }<a name="line.292"></a>
-<span class="sourceLineNo">293</span><a name="line.293"></a>
-<span class="sourceLineNo">294</span>  /**<a name="line.294"></a>
-<span class="sourceLineNo">295</span>   * @return initial delay before executing chore in getTimeUnit() units<a name="line.295"></a>
-<span class="sourceLineNo">296</span>   */<a name="line.296"></a>
-<span class="sourceLineNo">297</span>  public long getInitialDelay() {<a name="line.297"></a>
-<span class="sourceLineNo">298</span>    return initialDelay;<a name="line.298"></a>
-<span class="sourceLineNo">299</span>  }<a name="line.299"></a>
-<span class="sourceLineNo">300</span><a name="line.300"></a>
-<span class="sourceLineNo">301</span>  public TimeUnit getTimeUnit() {<a name="line.301"></a>
-<span class="sourceLineNo">302</span>    return timeUnit;<a name="line.302"></a>
-<span class="sourceLineNo">303</span>  }<a name="line.303"></a>
-<span class="sourceLineNo">304</span><a name="line.304"></a>
-<span class="sourceLineNo">305</span>  public synchronized boolean isInitialChoreComplete() {<a name="line.305"></a>
-<span class="sourceLineNo">306</span>    return initialChoreComplete;<a name="line.306"></a>
-<span class="sourceLineNo">307</span>  }<a name="line.307"></a>
-<span class="sourceLineNo">308</span><a name="line.308"></a>
-<span class="sourceLineNo">309</span>  @VisibleForTesting<a name="line.309"></a>
-<span class="sourceLineNo">310</span>  synchronized ChoreServicer getChoreServicer() {<a name="line.310"></a>
-<span class="sourceLineNo">311</span>    return choreServicer;<a name="line.311"></a>
+<span class="sourceLineNo">244</span>  private double getMaximumAllowedTimeBetweenRuns() {<a name="line.244"></a>
+<span class="sourceLineNo">245</span>    // Threshold used to determine if the Chore's current run started too late<a name="line.245"></a>
+<span class="sourceLineNo">246</span>    return 1.5 * timeUnit.toMillis(period);<a name="line.246"></a>
+<span class="sourceLineNo">247</span>  }<a name="line.247"></a>
+<span class="sourceLineNo">248</span><a name="line.248"></a>
+<span class="sourceLineNo">249</span>  /**<a name="line.249"></a>
+<span class="sourceLineNo">250</span>   * @param time in system millis<a name="line.250"></a>
+<span class="sourceLineNo">251</span>   * @return true if time is earlier or equal to current milli time<a name="line.251"></a>
+<span class="sourceLineNo">252</span>   */<a name="line.252"></a>
+<span class="sourceLineNo">253</span>  private synchronized boolean isValidTime(final long time) {<a name="line.253"></a>
+<span class="sourceLineNo">254</span>    return time &gt; 0 &amp;&amp; time &lt;= System.currentTimeMillis();<a name="line.254"></a>
+<span class="sourceLineNo">255</span>  }<a name="line.255"></a>
+<span class="sourceLineNo">256</span><a name="line.256"></a>
+<span class="sourceLineNo">257</span>  /**<a name="line.257"></a>
+<span class="sourceLineNo">258</span>   * @return false when the Chore is not currently scheduled with a ChoreService<a name="line.258"></a>
+<span class="sourceLineNo">259</span>   */<a name="line.259"></a>
+<span class="sourceLineNo">260</span>  public synchronized boolean triggerNow() {<a name="line.260"></a>
+<span class="sourceLineNo">261</span>    if (choreServicer != null) {<a name="line.261"></a>
+<span class="sourceLineNo">262</span>      return choreServicer.triggerNow(this);<a name="line.262"></a>
+<span class="sourceLineNo">263</span>    } else {<a name="line.263"></a>
+<span class="sourceLineNo">264</span>      return false;<a name="line.264"></a>
+<span class="sourceLineNo">265</span>    }<a name="line.265"></a>
+<span class="sourceLineNo">266</span>  }<a name="line.266"></a>
+<span class="sourceLineNo">267</span><a name="line.267"></a>
+<span class="sourceLineNo">268</span>  synchronized void setChoreServicer(ChoreServicer service) {<a name="line.268"></a>
+<span class="sourceLineNo">269</span>    // Chores should only ever be scheduled with a single ChoreService. If the choreServicer<a name="line.269"></a>
+<span class="sourceLineNo">270</span>    // is changing, cancel any existing schedules of this chore.<a name="line.270"></a>
+<span class="sourceLineNo">271</span>    if (choreServicer != null &amp;&amp; choreServicer != service) {<a name="line.271"></a>
+<span class="sourceLineNo">272</span>      choreServicer.cancelChore(this, false);<a name="line.272"></a>
+<span class="sourceLineNo">273</span>    }<a name="line.273"></a>
+<span class="sourceLineNo">274</span>    choreServicer = service;<a name="line.274"></a>
+<span class="sourceLineNo">275</span>    timeOfThisRun = System.currentTimeMillis();<a name="line.275"></a>
+<span class="sourceLineNo">276</span>  }<a name="line.276"></a>
+<span class="sourceLineNo">277</span><a name="line.277"></a>
+<span class="sourceLineNo">278</span>  public synchronized void cancel() {<a name="line.278"></a>
+<span class="sourceLineNo">279</span>    cancel(true);<a name="line.279"></a>
+<span class="sourceLineNo">280</span>  }<a name="line.280"></a>
+<span class="sourceLineNo">281</span><a name="line.281"></a>
+<span class="sourceLineNo">282</span>  public synchronized void cancel(boolean mayInterruptIfRunning) {<a name="line.282"></a>
+<span class="sourceLineNo">283</span>    if (isScheduled()) choreServicer.cancelChore(this, mayInterruptIfRunning);<a name="line.283"></a>
+<span class="sourceLineNo">284</span><a name="line.284"></a>
+<span class="sourceLineNo">285</span>    choreServicer = null;<a name="line.285"></a>
+<span class="sourceLineNo">286</span>  }<a name="line.286"></a>
+<span class="sourceLineNo">287</span><a name="line.287"></a>
+<span class="sourceLineNo">288</span>  public String getName() {<a name="line.288"></a>
+<span class="sourceLineNo">289</span>    return name;<a name="line.289"></a>
+<span class="sourceLineNo">290</span>  }<a name="line.290"></a>
+<span class="sourceLineNo">291</span><a name="line.291"></a>
+<span class="sourceLineNo">292</span>  public Stoppable getStopper() {<a name="line.292"></a>
+<span class="sourceLineNo">293</span>    return stopper;<a name="line.293"></a>
+<span class="sourceLineNo">294</span>  }<a name="line.294"></a>
+<span class="sourceLineNo">295</span><a name="line.295"></a>
+<span class="sourceLineNo">296</span>  /**<a name="line.296"></a>
+<span class="sourceLineNo">297</span>   * @return period to execute chore in getTimeUnit() units<a name="line.297"></a>
+<span class="sourceLineNo">298</span>   */<a name="line.298"></a>
+<span class="sourceLineNo">299</span>  public int getPeriod() {<a name="line.299"></a>
+<span class="sourceLineNo">300</span>    return period;<a name="line.300"></a>
+<span class="sourceLineNo">301</span>  }<a name="line.301"></a>
+<span class="sourceLineNo">302</span><a name="line.302"></a>
+<span class="sourceLineNo">303</span>  /**<a name="line.303"></a>
+<span class="sourceLineNo">304</span>   * @return initial delay before executing chore in getTimeUnit() units<a name="line.304"></a>
+<span class="sourceLineNo">305</span>   */<a name="line.305"></a>
+<span class="sourceLineNo">306</span>  public long getInitialDelay() {<a name="line.306"></a>
+<span class="sourceLineNo">307</span>    return initialDelay;<a name="line.307"></a>
+<span class="sourceLineNo">308</span>  }<a name="line.308"></a>
+<span class="sourceLineNo">309</span><a name="line.309"></a>
+<span class="sourceLineNo">310</span>  public TimeUnit getTimeUnit() {<a name="line.310"></a>
+<span class="sourceLineNo">311</span>    return timeUnit;<a name="line.311"></a>
 <span class="sourceLineNo">312</span>  }<a name="line.312"></a>
 <span class="sourceLineNo">313</span><a name="line.313"></a>
-<span class="sourceLineNo">314</span>  @VisibleForTesting<a name="line.314"></a>
-<span class="sourceLineNo">315</span>  synchronized long getTimeOfLastRun() {<a name="line.315"></a>
-<span class="sourceLineNo">316</span>    return timeOfLastRun;<a name="line.316"></a>
-<span class="sourceLineNo">317</span>  }<a name="line.317"></a>
-<span class="sourceLineNo">318</span><a name="line.318"></a>
-<span class="sourceLineNo">319</span>  @VisibleForTesting<a name="line.319"></a>
-<span class="sourceLineNo">320</span>  synchronized long getTimeOfThisRun() {<a name="line.320"></a>
-<span class="sourceLineNo">321</span>    return timeOfThisRun;<a name="line.321"></a>
-<span class="sourceLineNo">322</span>  }<a name="line.322"></a>
-<span class="sourceLineNo">323</span><a name="line.323"></a>
-<span class="sourceLineNo">324</span>  /**<a name="line.324"></a>
-<span class="sourceLineNo">325</span>   * @return true when this Chore is scheduled with a ChoreService<a name="line.325"></a>
-<span class="sourceLineNo">326</span>   */<a name="line.326"></a>
-<span class="sourceLineNo">327</span>  public synchronized boolean isScheduled() {<a name="line.327"></a>
-<span class="sourceLineNo">328</span>    return choreServicer != null &amp;&amp; choreServicer.isChoreScheduled(this);<a name="line.328"></a>
-<span class="sourceLineNo">329</span>  }<a name="line.329"></a>
-<span class="sourceLineNo">330</span><a name="line.330"></a>
-<span class="sourceLineNo">331</span>  @InterfaceAudience.Private<a name="line.331"></a>
-<span class="sourceLineNo">332</span>  @VisibleForTesting<a name="line.332"></a>
-<span class="sourceLineNo">333</span>  public synchronized void choreForTesting() {<a name="line.333"></a>
-<span class="sourceLineNo">334</span>    chore();<a name="line.334"></a>
-<span class="sourceLineNo">335</span>  }<a name="line.335"></a>
-<span class="sourceLineNo">336</span><a name="line.336"></a>
-<span class="sourceLineNo">337</span>  /**<a name="line.337"></a>
-<span class="sourceLineNo">338</span>   * The task to execute on each scheduled execution of the Chore<a name="line.338"></a>
-<span class="sourceLineNo">339</span>   */<a name="line.339"></a>
-<span class="sourceLineNo">340</span>  protected abstract void chore();<a name="line.340"></a>
-<span class="sourceLineNo">341</span><a name="line.341"></a>
-<span class="sourceLineNo">342</span>  /**<a name="line.342"></a>
-<span class="sourceLineNo">343</span>   * Override to run a task before we start looping.<a name="line.343"></a>
-<span class="sourceLineNo">344</span>   * @return true if initial chore was successful<a name="line.344"></a>
-<span class="sourceLineNo">345</span>   */<a name="line.345"></a>
-<span class="sourceLineNo">346</span>  protected boolean initialChore() {<a name="line.346"></a>
-<span class="sourceLineNo">347</span>    // Default does nothing<a name="line.347"></a>
-<span class="sourceLineNo">348</span>    return true;<a name="line.348"></a>
-<span class="sourceLineNo">349</span>  }<a name="line.349"></a>
+<span class="sourceLineNo">314</span>  public synchronized boolean isInitialChoreComplete() {<a name="line.314"></a>
+<span class="sourceLineNo">315</span>    return initialChoreComplete;<a name="line.315"></a>
+<span class="sourceLineNo">316</span>  }<a name="line.316"></a>
+<span class="sourceLineNo">317</span><a name="line.317"></a>
+<span class="sourceLineNo">318</span>  @VisibleForTesting<a name="line.318"></a>
+<span class="sourceLineNo">319</span>  synchronized ChoreServicer getChoreServicer() {<a name="line.319"></a>
+<span class="sourceLineNo">320</span>    return choreServicer;<a name="line.320"></a>
+<span class="sourceLineNo">321</span>  }<a name="line.321"></a>
+<span class="sourceLineNo">322</span><a name="line.322"></a>
+<span class="sourceLineNo">323</span>  @VisibleForTesting<a name="line.323"></a>
+<span class="sourceLineNo">324</span>  synchronized long getTimeOfLastRun() {<a name="line.324"></a>
+<span class="sourceLineNo">325</span>    return timeOfLastRun;<a name="line.325"></a>
+<span class="sourceLineNo">326</span>  }<a name="line.326"></a>
+<span class="sourceLineNo">327</span><a name="line.327"></a>
+<span class="sourceLineNo">328</span>  @VisibleForTesting<a name="line.328"></a>
+<span class="sourceLineNo">329</span>  synchronized long getTimeOfThisRun() {<a name="line.329"></a>
+<span class="sourceLineNo">330</span>    return timeOfThisRun;<a name="line.330"></a>
+<span class="sourceLineNo">331</span>  }<a name="line.331"></a>
+<span class="sourceLineNo">332</span><a name="line.332"></a>
+<span class="sourceLineNo">333</span>  /**<a name="line.333"></a>
+<span class="sourceLineNo">334</span>   * @return true when this Chore is scheduled with a ChoreService<a name="line.334"></a>
+<span class="sourceLineNo">335</span>   */<a name="line.335"></a>
+<span class="sourceLineNo">336</span>  public synchronized boolean isScheduled() {<a name="line.336"></a>
+<span class="sourceLineNo">337</span>    return choreServicer != null &amp;&amp; choreServicer.isChoreScheduled(this);<a name="line.337"></a>
+<span class="sourceLineNo">338</span>  }<a name="line.338"></a>
+<span class="sourceLineNo">339</span><a name="line.339"></a>
+<span class="sourceLineNo">340</span>  @InterfaceAudience.Private<a name="line.340"></a>
+<span class="sourceLineNo">341</span>  @VisibleForTesting<a name="line.341"></a>
+<span class="sourceLineNo">342</span>  public synchronized void choreForTesting() {<a name="line.342"></a>
+<span class="sourceLineNo">343</span>    chore();<a name="line.343"></a>
+<span class="sourceLineNo">344</span>  }<a name="line.344"></a>
+<span class="sourceLineNo">345</span><a name="line.345"></a>
+<span class="sourceLineNo">346</span>  /**<a name="line.346"></a>
+<span class="sourceLineNo">347</span>   * The task to execute on each scheduled execution of the Chore<a name="line.347"></a>
+<span class="sourceLineNo">348</span>   */<a name="line.348"></a>
+<span class="sourceLineNo">349</span>  protected abstract void chore();<a name="line.349"></a>
 <span class="sourceLineNo">350</span><a name="line.350"></a>
 <span class="sourceLineNo">351</span>  /**<a name="line.351"></a>
-<span class="sourceLineNo">352</span>   * Override to run cleanup tasks when the Chore encounters an error and must stop running<a name="line.352"></a>
-<span class="sourceLineNo">353</span>   */<a name="line.353"></a>
-<span class="sourceLineNo">354</span>  protected synchronized void cleanup() {<a name="line.354"></a>
-<span class="sourceLineNo">355</span>  }<a name="line.355"></a>
-<span class="sourceLineNo">356</span><a name="line.356"></a>
-<span class="sourceLineNo">357</span>  /**<a name="line.357"></a>
-<span class="sourceLineNo">358</span>   * A summation of this chore in human readable format. Downstream users should not presume<a name="line.358"></a>
-<span class="sourceLineNo">359</span>   * parsing of this string can relaibly be done between versions. Instead, they should rely<a name="line.359"></a>
-<span class="sourceLineNo">360</span>   * on the public accessor methods to get the information they desire.<a name="line.360"></a>
-<span class="sourceLineNo">361</span>   */<a name="line.361"></a>
-<span class="sourceLineNo">362</span>  @InterfaceAudience.Private<a name="line.362"></a>
-<span class="sourceLineNo">363</span>  @Override<a name="line.363"></a>
-<span class="sourceLineNo">364</span>  public String toString() {<a name="line.364"></a>
-<span class="sourceLineNo">365</span>    return "[ScheduledChore: Name: " + getName() + " Period: " + getPeriod() + " Unit: "<a name="line.365"></a>
-<span class="sourceLineNo">366</span>        + getTimeUnit() + "]";<a name="line.366"></a>
-<span class="sourceLineNo">367</span>  }<a name="line.367"></a>
-<span class="sourceLineNo">368</span>}<a name="line.368"></a>
+<span class="sourceLineNo">352</span>   * Override to run a task before we start looping.<a name="line.352"></a>
+<span class="sourceLineNo">353</span>   * @return true if initial chore was successful<a name="line.353"></a>
+<span class="sourceLineNo">354</span>   */<a name="line.354"></a>
+<span class="sourceLineNo">355</span>  protected boolean initialChore() {<a name="line.355"></a>
+<span class="sourceLineNo">356</span>    // Default does nothing<a name="line.356"></a>
+<span class="sourceLineNo">357</span>    return true;<a name="line.357"></a>
+<span class="sourceLineNo">358</span>  }<a name="line.358"></a>
+<span class="sourceLineNo">359</span><a name="line.359"></a>
+<span class="sourceLineNo">360</span>  /**<a name="line.360"></a>
+<span class="sourceLineNo">361</span>   * Override to run cleanup tasks when the Chore encounters an error and must stop running<a name="line.361"></a>
+<span class="sourceLineNo">362</span>   */<a name="line.362"></a>
+<span class="sourceLineNo">363</span>  protected synchronized void cleanup() {<a name="line.363"></a>
+<span class="sourceLineNo">364</span>  }<a name="line.364"></a>
+<span class="sourceLineNo">365</span><a name="line.365"></a>
+<span class="sourceLineNo">366</span>  /**<a name="line.366"></a>
+<span class="sourceLineNo">367</span>   * A summation of this chore in human readable format. Downstream users should not presume<a name="line.367"></a>
+<span class="sourceLineNo">368</span>   * parsing of this string can relaibly be done between versions. Instead, they should rely<a name="line.368"></a>
+<span class="sourceLineNo">369</span>   * on the public accessor methods to get the information they desire.<a name="line.369"></a>
+<span class="sourceLineNo">370</span>   */<a name="line.370"></a>
+<span class="sourceLineNo">371</span>  @InterfaceAudience.Private<a name="line.371"></a>
+<span class="sourceLineNo">372</span>  @Override<a name="line.372"></a>
+<span class="sourceLineNo">373</span>  public String toString() {<a name="line.373"></a>
+<span class="sourceLineNo">374</span>    return "[ScheduledChore: Name: " + getName() + " Period: " + getPeriod() + " Unit: "<a name="line.374"></a>
+<span class="sourceLineNo">375</span>        + getTimeUnit() + "]";<a name="line.375"></a>
+<span class="sourceLineNo">376</span>  }<a name="line.376"></a>
+<span class="sourceLineNo">377</span>}<a name="line.377"></a>
 
 
 
diff --git a/apidocs/src-html/org/apache/hadoop/hbase/util/ExponentialMovingAverage.html b/apidocs/src-html/org/apache/hadoop/hbase/util/ExponentialMovingAverage.html
new file mode 100644
index 0000000..1bc672b
--- /dev/null
+++ b/apidocs/src-html/org/apache/hadoop/hbase/util/ExponentialMovingAverage.html
@@ -0,0 +1,151 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+<title>Source code</title>
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<div class="sourceContainer">
+<pre><span class="sourceLineNo">001</span>/*<a name="line.1"></a>
+<span class="sourceLineNo">002</span> * Licensed to the Apache Software Foundation (ASF) under one<a name="line.2"></a>
+<span class="sourceLineNo">003</span> * or more contributor license agreements.  See the NOTICE file<a name="line.3"></a>
+<span class="sourceLineNo">004</span> * distributed with this work for additional information<a name="line.4"></a>
+<span class="sourceLineNo">005</span> * regarding copyright ownership.  The ASF licenses this file<a name="line.5"></a>
+<span class="sourceLineNo">006</span> * to you under the Apache License, Version 2.0 (the<a name="line.6"></a>
+<span class="sourceLineNo">007</span> * "License"); you may not use this file except in compliance<a name="line.7"></a>
+<span class="sourceLineNo">008</span> * with the License.  You may obtain a copy of the License at<a name="line.8"></a>
+<span class="sourceLineNo">009</span> *<a name="line.9"></a>
+<span class="sourceLineNo">010</span> *     http://www.apache.org/licenses/LICENSE-2.0<a name="line.10"></a>
+<span class="sourceLineNo">011</span> *<a name="line.11"></a>
+<span class="sourceLineNo">012</span> * Unless required by applicable law or agreed to in writing, software<a name="line.12"></a>
+<span class="sourceLineNo">013</span> * distributed under the License is distributed on an "AS IS" BASIS,<a name="line.13"></a>
+<span class="sourceLineNo">014</span> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.<a name="line.14"></a>
+<span class="sourceLineNo">015</span> * See the License for the specific language governing permissions and<a name="line.15"></a>
+<span class="sourceLineNo">016</span> * limitations under the License.<a name="line.16"></a>
+<span class="sourceLineNo">017</span> */<a name="line.17"></a>
+<span class="sourceLineNo">018</span><a name="line.18"></a>
+<span class="sourceLineNo">019</span>package org.apache.hadoop.hbase.util;<a name="line.19"></a>
+<span class="sourceLineNo">020</span><a name="line.20"></a>
+<span class="sourceLineNo">021</span>import org.apache.yetus.audience.InterfaceAudience;<a name="line.21"></a>
+<span class="sourceLineNo">022</span><a name="line.22"></a>
+<span class="sourceLineNo">023</span>/**<a name="line.23"></a>
+<span class="sourceLineNo">024</span> * EMA is similar to {@link WeightedMovingAverage} in weighted, but the weighting factor decrease<a name="line.24"></a>
+<span class="sourceLineNo">025</span> * exponentially. It brings benefits that it is more sensitive, and can see the trends easily.<a name="line.25"></a>
+<span class="sourceLineNo">026</span> */<a name="line.26"></a>
+<span class="sourceLineNo">027</span>@InterfaceAudience.Public<a name="line.27"></a>
+<span class="sourceLineNo">028</span>public class ExponentialMovingAverage extends WindowMovingAverage {<a name="line.28"></a>
+<span class="sourceLineNo">029</span>  private double alpha;<a name="line.29"></a>
+<span class="sourceLineNo">030</span>  private double previousAverage;<a name="line.30"></a>
+<span class="sourceLineNo">031</span>  private double currentAverage;<a name="line.31"></a>
+<span class="sourceLineNo">032</span><a name="line.32"></a>
+<span class="sourceLineNo">033</span>  public ExponentialMovingAverage() {<a name="line.33"></a>
+<span class="sourceLineNo">034</span>    this(DEFAULT_SIZE);<a name="line.34"></a>
+<span class="sourceLineNo">035</span>  }<a name="line.35"></a>
+<span class="sourceLineNo">036</span><a name="line.36"></a>
+<span class="sourceLineNo">037</span>  public ExponentialMovingAverage(double alpha) {<a name="line.37"></a>
+<span class="sourceLineNo">038</span>    this(DEFAULT_SIZE, alpha);<a name="line.38"></a>
+<span class="sourceLineNo">039</span>  }<a name="line.39"></a>
+<span class="sourceLineNo">040</span><a name="line.40"></a>
+<span class="sourceLineNo">041</span>  public ExponentialMovingAverage(int size) {<a name="line.41"></a>
+<span class="sourceLineNo">042</span>    this(size, (double) 2 / (1 + size));<a name="line.42"></a>
+<span class="sourceLineNo">043</span>  }<a name="line.43"></a>
+<span class="sourceLineNo">044</span><a name="line.44"></a>
+<span class="sourceLineNo">045</span>  public ExponentialMovingAverage(int size, double alpha) {<a name="line.45"></a>
+<span class="sourceLineNo">046</span>    super(size);<a name="line.46"></a>
+<span class="sourceLineNo">047</span>    this.previousAverage = -1.0;<a name="line.47"></a>
+<span class="sourceLineNo">048</span>    this.currentAverage = 0.0;<a name="line.48"></a>
+<span class="sourceLineNo">049</span>    this.alpha = alpha;<a name="line.49"></a>
+<span class="sourceLineNo">050</span>  }<a name="line.50"></a>
+<span class="sourceLineNo">051</span><a name="line.51"></a>
+<span class="sourceLineNo">052</span>  @Override<a name="line.52"></a>
+<span class="sourceLineNo">053</span>  public void updateMostRecentTime(long elapsed) {<a name="line.53"></a>
+<span class="sourceLineNo">054</span>    if (!enoughStatistics()) {<a name="line.54"></a>
+<span class="sourceLineNo">055</span>      previousAverage = super.getAverageTime();<a name="line.55"></a>
+<span class="sourceLineNo">056</span>      super.updateMostRecentTime(elapsed);<a name="line.56"></a>
+<span class="sourceLineNo">057</span>      if (!enoughStatistics()) {<a name="line.57"></a>
+<span class="sourceLineNo">058</span>        return;<a name="line.58"></a>
+<span class="sourceLineNo">059</span>      }<a name="line.59"></a>
+<span class="sourceLineNo">060</span>    }<a name="line.60"></a>
+<span class="sourceLineNo">061</span>    // CurrentEMA = α * currentValue + (1 - α) * previousEMA =&gt;<a name="line.61"></a>
+<span class="sourceLineNo">062</span>    // CurrentEMA = (currentValue - previousEMA) * α + previousEMA<a name="line.62"></a>
+<span class="sourceLineNo">063</span>    // This will reduce multiplication.<a name="line.63"></a>
+<span class="sourceLineNo">064</span>    currentAverage = (elapsed - previousAverage) * alpha + previousAverage;<a name="line.64"></a>
+<span class="sourceLineNo">065</span>    previousAverage = currentAverage;<a name="line.65"></a>
+<span class="sourceLineNo">066</span>  }<a name="line.66"></a>
+<span class="sourceLineNo">067</span><a name="line.67"></a>
+<span class="sourceLineNo">068</span>  @Override<a name="line.68"></a>
+<span class="sourceLineNo">069</span>  public double getAverageTime() {<a name="line.69"></a>
+<span class="sourceLineNo">070</span>    if (!enoughStatistics()) {<a name="line.70"></a>
+<span class="sourceLineNo">071</span>      return super.getAverageTime();<a name="line.71"></a>
+<span class="sourceLineNo">072</span>    }<a name="line.72"></a>
+<span class="sourceLineNo">073</span>    return currentAverage;<a name="line.73"></a>
+<span class="sourceLineNo">074</span>  }<a name="line.74"></a>
+<span class="sourceLineNo">075</span><a name="line.75"></a>
+<span class="sourceLineNo">076</span>  double getPrevious() {<a name="line.76"></a>
+<span class="sourceLineNo">077</span>    return previousAverage;<a name="line.77"></a>
+<span class="sourceLineNo">078</span>  }<a name="line.78"></a>
+<span class="sourceLineNo">079</span>}<a name="line.79"></a>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/src-html/org/apache/hadoop/hbase/util/MovingAverage.html b/apidocs/src-html/org/apache/hadoop/hbase/util/MovingAverage.html
new file mode 100644
index 0000000..964085f
--- /dev/null
+++ b/apidocs/src-html/org/apache/hadoop/hbase/util/MovingAverage.html
@@ -0,0 +1,153 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+<title>Source code</title>
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<div class="sourceContainer">
+<pre><span class="sourceLineNo">001</span>/*<a name="line.1"></a>
+<span class="sourceLineNo">002</span> * Licensed to the Apache Software Foundation (ASF) under one<a name="line.2"></a>
+<span class="sourceLineNo">003</span> * or more contributor license agreements.  See the NOTICE file<a name="line.3"></a>
+<span class="sourceLineNo">004</span> * distributed with this work for additional information<a name="line.4"></a>
+<span class="sourceLineNo">005</span> * regarding copyright ownership.  The ASF licenses this file<a name="line.5"></a>
+<span class="sourceLineNo">006</span> * to you under the Apache License, Version 2.0 (the<a name="line.6"></a>
+<span class="sourceLineNo">007</span> * "License"); you may not use this file except in compliance<a name="line.7"></a>
+<span class="sourceLineNo">008</span> * with the License.  You may obtain a copy of the License at<a name="line.8"></a>
+<span class="sourceLineNo">009</span> *<a name="line.9"></a>
+<span class="sourceLineNo">010</span> *     http://www.apache.org/licenses/LICENSE-2.0<a name="line.10"></a>
+<span class="sourceLineNo">011</span> *<a name="line.11"></a>
+<span class="sourceLineNo">012</span> * Unless required by applicable law or agreed to in writing, software<a name="line.12"></a>
+<span class="sourceLineNo">013</span> * distributed under the License is distributed on an "AS IS" BASIS,<a name="line.13"></a>
+<span class="sourceLineNo">014</span> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.<a name="line.14"></a>
+<span class="sourceLineNo">015</span> * See the License for the specific language governing permissions and<a name="line.15"></a>
+<span class="sourceLineNo">016</span> * limitations under the License.<a name="line.16"></a>
+<span class="sourceLineNo">017</span> */<a name="line.17"></a>
+<span class="sourceLineNo">018</span><a name="line.18"></a>
+<span class="sourceLineNo">019</span>package org.apache.hadoop.hbase.util;<a name="line.19"></a>
+<span class="sourceLineNo">020</span><a name="line.20"></a>
+<span class="sourceLineNo">021</span>import org.apache.yetus.audience.InterfaceAudience;<a name="line.21"></a>
+<span class="sourceLineNo">022</span>import org.slf4j.Logger;<a name="line.22"></a>
+<span class="sourceLineNo">023</span>import org.slf4j.LoggerFactory;<a name="line.23"></a>
+<span class="sourceLineNo">024</span><a name="line.24"></a>
+<span class="sourceLineNo">025</span>/**<a name="line.25"></a>
+<span class="sourceLineNo">026</span> * The purpose of introduction of {@link MovingAverage} mainly is to measure execution time of a<a name="line.26"></a>
+<span class="sourceLineNo">027</span> * specific method, which can help us to know its performance fluctuation in response to different<a name="line.27"></a>
+<span class="sourceLineNo">028</span> * machine states or situations, better case, then to act accordingly.<a name="line.28"></a>
+<span class="sourceLineNo">029</span> * &lt;br&gt;<a name="line.29"></a>
+<span class="sourceLineNo">030</span> * In different situation, different {@link MovingAverage} algorithm can be used based on needs.<a name="line.30"></a>
+<span class="sourceLineNo">031</span> */<a name="line.31"></a>
+<span class="sourceLineNo">032</span>@InterfaceAudience.Public<a name="line.32"></a>
+<span class="sourceLineNo">033</span>public abstract class MovingAverage&lt;T&gt; {<a name="line.33"></a>
+<span class="sourceLineNo">034</span>  private final static Logger LOG = LoggerFactory.getLogger(MovingAverage.class);<a name="line.34"></a>
+<span class="sourceLineNo">035</span><a name="line.35"></a>
+<span class="sourceLineNo">036</span>  /**<a name="line.36"></a>
+<span class="sourceLineNo">037</span>   * Mark start time of an execution.<a name="line.37"></a>
+<span class="sourceLineNo">038</span>   * @return time in ns.<a name="line.38"></a>
+<span class="sourceLineNo">039</span>   */<a name="line.39"></a>
+<span class="sourceLineNo">040</span>  protected long start() {<a name="line.40"></a>
+<span class="sourceLineNo">041</span>    return System.nanoTime();<a name="line.41"></a>
+<span class="sourceLineNo">042</span>  }<a name="line.42"></a>
+<span class="sourceLineNo">043</span><a name="line.43"></a>
+<span class="sourceLineNo">044</span>  /**<a name="line.44"></a>
+<span class="sourceLineNo">045</span>   * Mark end time of an execution, and return its interval.<a name="line.45"></a>
+<span class="sourceLineNo">046</span>   * @param startTime start time of an execution<a name="line.46"></a>
+<span class="sourceLineNo">047</span>   * @return elapsed time<a name="line.47"></a>
+<span class="sourceLineNo">048</span>   */<a name="line.48"></a>
+<span class="sourceLineNo">049</span>  protected long stop(long startTime) {<a name="line.49"></a>
+<span class="sourceLineNo">050</span>    return System.nanoTime() - startTime;<a name="line.50"></a>
+<span class="sourceLineNo">051</span>  }<a name="line.51"></a>
+<span class="sourceLineNo">052</span><a name="line.52"></a>
+<span class="sourceLineNo">053</span>  /**<a name="line.53"></a>
+<span class="sourceLineNo">054</span>   * Measure elapsed time of a measurable method.<a name="line.54"></a>
+<span class="sourceLineNo">055</span>   * @param measurable method implements {@link TimeMeasurable}<a name="line.55"></a>
+<span class="sourceLineNo">056</span>   * @return T it refers to the original return type of the measurable method<a name="line.56"></a>
+<span class="sourceLineNo">057</span>   */<a name="line.57"></a>
+<span class="sourceLineNo">058</span>  public T measure(TimeMeasurable&lt;T&gt; measurable) {<a name="line.58"></a>
+<span class="sourceLineNo">059</span>    long startTime = start();<a name="line.59"></a>
+<span class="sourceLineNo">060</span>    LOG.debug("Start to measure at: {} ns.", startTime);<a name="line.60"></a>
+<span class="sourceLineNo">061</span>    // Here may throw exceptions which should be taken care by caller, not here.<a name="line.61"></a>
+<span class="sourceLineNo">062</span>    // If exception occurs, this time wouldn't count.<a name="line.62"></a>
+<span class="sourceLineNo">063</span>    T result = measurable.measure();<a name="line.63"></a>
+<span class="sourceLineNo">064</span>    long elapsed = stop(startTime);<a name="line.64"></a>
+<span class="sourceLineNo">065</span>    LOG.debug("Elapse: {} ns.", elapsed);<a name="line.65"></a>
+<span class="sourceLineNo">066</span>    updateMostRecentTime(elapsed);<a name="line.66"></a>
+<span class="sourceLineNo">067</span>    return result;<a name="line.67"></a>
+<span class="sourceLineNo">068</span>  }<a name="line.68"></a>
+<span class="sourceLineNo">069</span><a name="line.69"></a>
+<span class="sourceLineNo">070</span>  /**<a name="line.70"></a>
+<span class="sourceLineNo">071</span>   * Update the most recent data.<a name="line.71"></a>
+<span class="sourceLineNo">072</span>   * @param elapsed elapsed time of the most recent measurement<a name="line.72"></a>
+<span class="sourceLineNo">073</span>   */<a name="line.73"></a>
+<span class="sourceLineNo">074</span>  protected abstract void updateMostRecentTime(long elapsed);<a name="line.74"></a>
+<span class="sourceLineNo">075</span><a name="line.75"></a>
+<span class="sourceLineNo">076</span>  /**<a name="line.76"></a>
+<span class="sourceLineNo">077</span>   * Get average execution time of the measured method.<a name="line.77"></a>
+<span class="sourceLineNo">078</span>   * @return average time in ns<a name="line.78"></a>
+<span class="sourceLineNo">079</span>   */<a name="line.79"></a>
+<span class="sourceLineNo">080</span>  public abstract double getAverageTime();<a name="line.80"></a>
+<span class="sourceLineNo">081</span>}<a name="line.81"></a>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/src-html/org/apache/hadoop/hbase/util/SimpleMovingAverage.html b/apidocs/src-html/org/apache/hadoop/hbase/util/SimpleMovingAverage.html
new file mode 100644
index 0000000..bbffc36
--- /dev/null
+++ b/apidocs/src-html/org/apache/hadoop/hbase/util/SimpleMovingAverage.html
@@ -0,0 +1,117 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+<title>Source code</title>
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<div class="sourceContainer">
+<pre><span class="sourceLineNo">001</span>/*<a name="line.1"></a>
+<span class="sourceLineNo">002</span> * Licensed to the Apache Software Foundation (ASF) under one<a name="line.2"></a>
+<span class="sourceLineNo">003</span> * or more contributor license agreements.  See the NOTICE file<a name="line.3"></a>
+<span class="sourceLineNo">004</span> * distributed with this work for additional information<a name="line.4"></a>
+<span class="sourceLineNo">005</span> * regarding copyright ownership.  The ASF licenses this file<a name="line.5"></a>
+<span class="sourceLineNo">006</span> * to you under the Apache License, Version 2.0 (the<a name="line.6"></a>
+<span class="sourceLineNo">007</span> * "License"); you may not use this file except in compliance<a name="line.7"></a>
+<span class="sourceLineNo">008</span> * with the License.  You may obtain a copy of the License at<a name="line.8"></a>
+<span class="sourceLineNo">009</span> *<a name="line.9"></a>
+<span class="sourceLineNo">010</span> *     http://www.apache.org/licenses/LICENSE-2.0<a name="line.10"></a>
+<span class="sourceLineNo">011</span> *<a name="line.11"></a>
+<span class="sourceLineNo">012</span> * Unless required by applicable law or agreed to in writing, software<a name="line.12"></a>
+<span class="sourceLineNo">013</span> * distributed under the License is distributed on an "AS IS" BASIS,<a name="line.13"></a>
+<span class="sourceLineNo">014</span> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.<a name="line.14"></a>
+<span class="sourceLineNo">015</span> * See the License for the specific language governing permissions and<a name="line.15"></a>
+<span class="sourceLineNo">016</span> * limitations under the License.<a name="line.16"></a>
+<span class="sourceLineNo">017</span> */<a name="line.17"></a>
+<span class="sourceLineNo">018</span><a name="line.18"></a>
+<span class="sourceLineNo">019</span>package org.apache.hadoop.hbase.util;<a name="line.19"></a>
+<span class="sourceLineNo">020</span><a name="line.20"></a>
+<span class="sourceLineNo">021</span>import org.apache.yetus.audience.InterfaceAudience;<a name="line.21"></a>
+<span class="sourceLineNo">022</span><a name="line.22"></a>
+<span class="sourceLineNo">023</span>/**<a name="line.23"></a>
+<span class="sourceLineNo">024</span> * SMA measure the overall average execution time of a specific method.<a name="line.24"></a>
+<span class="sourceLineNo">025</span> */<a name="line.25"></a>
+<span class="sourceLineNo">026</span>@InterfaceAudience.Public<a name="line.26"></a>
+<span class="sourceLineNo">027</span>public class SimpleMovingAverage extends MovingAverage {<a name="line.27"></a>
+<span class="sourceLineNo">028</span>  private double averageTime = 0.0;<a name="line.28"></a>
+<span class="sourceLineNo">029</span>  protected long count = 0;<a name="line.29"></a>
+<span class="sourceLineNo">030</span><a name="line.30"></a>
+<span class="sourceLineNo">031</span>  public SimpleMovingAverage() {<a name="line.31"></a>
+<span class="sourceLineNo">032</span>    this.averageTime = 0.0;<a name="line.32"></a>
+<span class="sourceLineNo">033</span>    this.count = 0;<a name="line.33"></a>
+<span class="sourceLineNo">034</span>  }<a name="line.34"></a>
+<span class="sourceLineNo">035</span><a name="line.35"></a>
+<span class="sourceLineNo">036</span>  @Override<a name="line.36"></a>
+<span class="sourceLineNo">037</span>  public void updateMostRecentTime(long elapsed) {<a name="line.37"></a>
+<span class="sourceLineNo">038</span>    averageTime += (elapsed - averageTime) / (++count);<a name="line.38"></a>
+<span class="sourceLineNo">039</span>  }<a name="line.39"></a>
+<span class="sourceLineNo">040</span><a name="line.40"></a>
+<span class="sourceLineNo">041</span>  @Override<a name="line.41"></a>
+<span class="sourceLineNo">042</span>  public double getAverageTime() {<a name="line.42"></a>
+<span class="sourceLineNo">043</span>    return averageTime;<a name="line.43"></a>
+<span class="sourceLineNo">044</span>  }<a name="line.44"></a>
+<span class="sourceLineNo">045</span>}<a name="line.45"></a>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/src-html/org/apache/hadoop/hbase/util/TimeMeasurable.html b/apidocs/src-html/org/apache/hadoop/hbase/util/TimeMeasurable.html
new file mode 100644
index 0000000..e5e7a85
--- /dev/null
+++ b/apidocs/src-html/org/apache/hadoop/hbase/util/TimeMeasurable.html
@@ -0,0 +1,107 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+<title>Source code</title>
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<div class="sourceContainer">
+<pre><span class="sourceLineNo">001</span>/*<a name="line.1"></a>
+<span class="sourceLineNo">002</span> * Licensed to the Apache Software Foundation (ASF) under one<a name="line.2"></a>
+<span class="sourceLineNo">003</span> * or more contributor license agreements.  See the NOTICE file<a name="line.3"></a>
+<span class="sourceLineNo">004</span> * distributed with this work for additional information<a name="line.4"></a>
+<span class="sourceLineNo">005</span> * regarding copyright ownership.  The ASF licenses this file<a name="line.5"></a>
+<span class="sourceLineNo">006</span> * to you under the Apache License, Version 2.0 (the<a name="line.6"></a>
+<span class="sourceLineNo">007</span> * "License"); you may not use this file except in compliance<a name="line.7"></a>
+<span class="sourceLineNo">008</span> * with the License.  You may obtain a copy of the License at<a name="line.8"></a>
+<span class="sourceLineNo">009</span> *<a name="line.9"></a>
+<span class="sourceLineNo">010</span> *     http://www.apache.org/licenses/LICENSE-2.0<a name="line.10"></a>
+<span class="sourceLineNo">011</span> *<a name="line.11"></a>
+<span class="sourceLineNo">012</span> * Unless required by applicable law or agreed to in writing, software<a name="line.12"></a>
+<span class="sourceLineNo">013</span> * distributed under the License is distributed on an "AS IS" BASIS,<a name="line.13"></a>
+<span class="sourceLineNo">014</span> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.<a name="line.14"></a>
+<span class="sourceLineNo">015</span> * See the License for the specific language governing permissions and<a name="line.15"></a>
+<span class="sourceLineNo">016</span> * limitations under the License.<a name="line.16"></a>
+<span class="sourceLineNo">017</span> */<a name="line.17"></a>
+<span class="sourceLineNo">018</span><a name="line.18"></a>
+<span class="sourceLineNo">019</span>package org.apache.hadoop.hbase.util;<a name="line.19"></a>
+<span class="sourceLineNo">020</span><a name="line.20"></a>
+<span class="sourceLineNo">021</span>import org.apache.yetus.audience.InterfaceAudience;<a name="line.21"></a>
+<span class="sourceLineNo">022</span><a name="line.22"></a>
+<span class="sourceLineNo">023</span>/**<a name="line.23"></a>
+<span class="sourceLineNo">024</span> * Methods that implement this interface can be measured elapsed time.<a name="line.24"></a>
+<span class="sourceLineNo">025</span> * It works together with {@link MovingAverage} to take effect.<a name="line.25"></a>
+<span class="sourceLineNo">026</span> */<a name="line.26"></a>
+<span class="sourceLineNo">027</span>@InterfaceAudience.Public<a name="line.27"></a>
+<span class="sourceLineNo">028</span>public interface TimeMeasurable&lt;T&gt; {<a name="line.28"></a>
+<span class="sourceLineNo">029</span><a name="line.29"></a>
+<span class="sourceLineNo">030</span>  /**<a name="line.30"></a>
+<span class="sourceLineNo">031</span>   * Measure elapsed time.<a name="line.31"></a>
+<span class="sourceLineNo">032</span>   * @return T<a name="line.32"></a>
+<span class="sourceLineNo">033</span>   */<a name="line.33"></a>
+<span class="sourceLineNo">034</span>  T measure();<a name="line.34"></a>
+<span class="sourceLineNo">035</span>}<a name="line.35"></a>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/src-html/org/apache/hadoop/hbase/util/WeightedMovingAverage.html b/apidocs/src-html/org/apache/hadoop/hbase/util/WeightedMovingAverage.html
new file mode 100644
index 0000000..0e83aed
--- /dev/null
+++ b/apidocs/src-html/org/apache/hadoop/hbase/util/WeightedMovingAverage.html
@@ -0,0 +1,137 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+<title>Source code</title>
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<div class="sourceContainer">
+<pre><span class="sourceLineNo">001</span>/*<a name="line.1"></a>
+<span class="sourceLineNo">002</span> * Licensed to the Apache Software Foundation (ASF) under one<a name="line.2"></a>
+<span class="sourceLineNo">003</span> * or more contributor license agreements.  See the NOTICE file<a name="line.3"></a>
+<span class="sourceLineNo">004</span> * distributed with this work for additional information<a name="line.4"></a>
+<span class="sourceLineNo">005</span> * regarding copyright ownership.  The ASF licenses this file<a name="line.5"></a>
+<span class="sourceLineNo">006</span> * to you under the Apache License, Version 2.0 (the<a name="line.6"></a>
+<span class="sourceLineNo">007</span> * "License"); you may not use this file except in compliance<a name="line.7"></a>
+<span class="sourceLineNo">008</span> * with the License.  You may obtain a copy of the License at<a name="line.8"></a>
+<span class="sourceLineNo">009</span> *<a name="line.9"></a>
+<span class="sourceLineNo">010</span> *     http://www.apache.org/licenses/LICENSE-2.0<a name="line.10"></a>
+<span class="sourceLineNo">011</span> *<a name="line.11"></a>
+<span class="sourceLineNo">012</span> * Unless required by applicable law or agreed to in writing, software<a name="line.12"></a>
+<span class="sourceLineNo">013</span> * distributed under the License is distributed on an "AS IS" BASIS,<a name="line.13"></a>
+<span class="sourceLineNo">014</span> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.<a name="line.14"></a>
+<span class="sourceLineNo">015</span> * See the License for the specific language governing permissions and<a name="line.15"></a>
+<span class="sourceLineNo">016</span> * limitations under the License.<a name="line.16"></a>
+<span class="sourceLineNo">017</span> */<a name="line.17"></a>
+<span class="sourceLineNo">018</span><a name="line.18"></a>
+<span class="sourceLineNo">019</span>package org.apache.hadoop.hbase.util;<a name="line.19"></a>
+<span class="sourceLineNo">020</span><a name="line.20"></a>
+<span class="sourceLineNo">021</span>import org.apache.yetus.audience.InterfaceAudience;<a name="line.21"></a>
+<span class="sourceLineNo">022</span><a name="line.22"></a>
+<span class="sourceLineNo">023</span>/**<a name="line.23"></a>
+<span class="sourceLineNo">024</span> * Different from SMA {@link SimpleMovingAverage}, WeightedMovingAverage gives each data different<a name="line.24"></a>
+<span class="sourceLineNo">025</span> * weight. And it is based on {@link WindowMovingAverage}, such that it only focus on the last N.<a name="line.25"></a>
+<span class="sourceLineNo">026</span> */<a name="line.26"></a>
+<span class="sourceLineNo">027</span>@InterfaceAudience.Public<a name="line.27"></a>
+<span class="sourceLineNo">028</span>public class WeightedMovingAverage extends WindowMovingAverage {<a name="line.28"></a>
+<span class="sourceLineNo">029</span>  private int[] coefficient;<a name="line.29"></a>
+<span class="sourceLineNo">030</span>  private int denominator;<a name="line.30"></a>
+<span class="sourceLineNo">031</span><a name="line.31"></a>
+<span class="sourceLineNo">032</span>  public WeightedMovingAverage() {<a name="line.32"></a>
+<span class="sourceLineNo">033</span>    this(DEFAULT_SIZE);<a name="line.33"></a>
+<span class="sourceLineNo">034</span>  }<a name="line.34"></a>
+<span class="sourceLineNo">035</span><a name="line.35"></a>
+<span class="sourceLineNo">036</span>  public WeightedMovingAverage(int size) {<a name="line.36"></a>
+<span class="sourceLineNo">037</span>    super(size);<a name="line.37"></a>
+<span class="sourceLineNo">038</span>    int length = getNumberOfStatistics();<a name="line.38"></a>
+<span class="sourceLineNo">039</span>    denominator = length * (length + 1) / 2;<a name="line.39"></a>
+<span class="sourceLineNo">040</span>    coefficient = new int[length];<a name="line.40"></a>
+<span class="sourceLineNo">041</span>    // E.g. default size is 5, coefficient should be [1, 2, 3, 4, 5]<a name="line.41"></a>
+<span class="sourceLineNo">042</span>    for (int i = 0; i &lt; length; i++) {<a name="line.42"></a>
+<span class="sourceLineNo">043</span>      coefficient[i] = i + 1;<a name="line.43"></a>
+<span class="sourceLineNo">044</span>    }<a name="line.44"></a>
+<span class="sourceLineNo">045</span>  }<a name="line.45"></a>
+<span class="sourceLineNo">046</span><a name="line.46"></a>
+<span class="sourceLineNo">047</span>  @Override<a name="line.47"></a>
+<span class="sourceLineNo">048</span>  public double getAverageTime() {<a name="line.48"></a>
+<span class="sourceLineNo">049</span>    if (!enoughStatistics()) {<a name="line.49"></a>
+<span class="sourceLineNo">050</span>      return super.getAverageTime();<a name="line.50"></a>
+<span class="sourceLineNo">051</span>    }<a name="line.51"></a>
+<span class="sourceLineNo">052</span>    // only we get enough statistics, then start WMA.<a name="line.52"></a>
+<span class="sourceLineNo">053</span>    double average = 0.0;<a name="line.53"></a>
+<span class="sourceLineNo">054</span>    int coIndex = 0;<a name="line.54"></a>
+<span class="sourceLineNo">055</span>    int length = getNumberOfStatistics();<a name="line.55"></a>
+<span class="sourceLineNo">056</span>    // tmIndex, it points to the oldest data.<a name="line.56"></a>
+<span class="sourceLineNo">057</span>    for (int tmIndex = (getMostRecentPosistion() + 1) % length;<a name="line.57"></a>
+<span class="sourceLineNo">058</span>         coIndex &lt; length;<a name="line.58"></a>
+<span class="sourceLineNo">059</span>         coIndex++, tmIndex = (++tmIndex) % length) {<a name="line.59"></a>
+<span class="sourceLineNo">060</span>      // start the multiplication from oldest to newest<a name="line.60"></a>
+<span class="sourceLineNo">061</span>      average += coefficient[coIndex] * getStatisticsAtIndex(tmIndex);<a name="line.61"></a>
+<span class="sourceLineNo">062</span>    }<a name="line.62"></a>
+<span class="sourceLineNo">063</span>    return average / denominator;<a name="line.63"></a>
+<span class="sourceLineNo">064</span>  }<a name="line.64"></a>
+<span class="sourceLineNo">065</span>}<a name="line.65"></a>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/apidocs/src-html/org/apache/hadoop/hbase/util/WindowMovingAverage.html b/apidocs/src-html/org/apache/hadoop/hbase/util/WindowMovingAverage.html
new file mode 100644
index 0000000..00f0820
--- /dev/null
+++ b/apidocs/src-html/org/apache/hadoop/hbase/util/WindowMovingAverage.html
@@ -0,0 +1,190 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+<title>Source code</title>
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<div class="sourceContainer">
+<pre><span class="sourceLineNo">001</span>/*<a name="line.1"></a>
+<span class="sourceLineNo">002</span> * Licensed to the Apache Software Foundation (ASF) under one<a name="line.2"></a>
+<span class="sourceLineNo">003</span> * or more contributor license agreements.  See the NOTICE file<a name="line.3"></a>
+<span class="sourceLineNo">004</span> * distributed with this work for additional information<a name="line.4"></a>
+<span class="sourceLineNo">005</span> * regarding copyright ownership.  The ASF licenses this file<a name="line.5"></a>
+<span class="sourceLineNo">006</span> * to you under the Apache License, Version 2.0 (the<a name="line.6"></a>
+<span class="sourceLineNo">007</span> * "License"); you may not use this file except in compliance<a name="line.7"></a>
+<span class="sourceLineNo">008</span> * with the License.  You may obtain a copy of the License at<a name="line.8"></a>
+<span class="sourceLineNo">009</span> *<a name="line.9"></a>
+<span class="sourceLineNo">010</span> *     http://www.apache.org/licenses/LICENSE-2.0<a name="line.10"></a>
+<span class="sourceLineNo">011</span> *<a name="line.11"></a>
+<span class="sourceLineNo">012</span> * Unless required by applicable law or agreed to in writing, software<a name="line.12"></a>
+<span class="sourceLineNo">013</span> * distributed under the License is distributed on an "AS IS" BASIS,<a name="line.13"></a>
+<span class="sourceLineNo">014</span> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.<a name="line.14"></a>
+<span class="sourceLineNo">015</span> * See the License for the specific language governing permissions and<a name="line.15"></a>
+<span class="sourceLineNo">016</span> * limitations under the License.<a name="line.16"></a>
+<span class="sourceLineNo">017</span> */<a name="line.17"></a>
+<span class="sourceLineNo">018</span><a name="line.18"></a>
+<span class="sourceLineNo">019</span>package org.apache.hadoop.hbase.util;<a name="line.19"></a>
+<span class="sourceLineNo">020</span><a name="line.20"></a>
+<span class="sourceLineNo">021</span>import org.apache.yetus.audience.InterfaceAudience;<a name="line.21"></a>
+<span class="sourceLineNo">022</span><a name="line.22"></a>
+<span class="sourceLineNo">023</span>/**<a name="line.23"></a>
+<span class="sourceLineNo">024</span> * Instead of calculate a whole time average, this class focus on the last N.<a name="line.24"></a>
+<span class="sourceLineNo">025</span> * The last N is stored in a circle array.<a name="line.25"></a>
+<span class="sourceLineNo">026</span> */<a name="line.26"></a>
+<span class="sourceLineNo">027</span>@InterfaceAudience.Public<a name="line.27"></a>
+<span class="sourceLineNo">028</span>public class WindowMovingAverage extends MovingAverage {<a name="line.28"></a>
+<span class="sourceLineNo">029</span>  protected final static int DEFAULT_SIZE = 5;<a name="line.29"></a>
+<span class="sourceLineNo">030</span><a name="line.30"></a>
+<span class="sourceLineNo">031</span>  // The last n statistics.<a name="line.31"></a>
+<span class="sourceLineNo">032</span>  protected long[] lastN;<a name="line.32"></a>
+<span class="sourceLineNo">033</span>  // The index of the most recent statistics.<a name="line.33"></a>
+<span class="sourceLineNo">034</span>  protected int mostRecent;<a name="line.34"></a>
+<span class="sourceLineNo">035</span>  // If it travels a round.<a name="line.35"></a>
+<span class="sourceLineNo">036</span>  protected boolean oneRound;<a name="line.36"></a>
+<span class="sourceLineNo">037</span><a name="line.37"></a>
+<span class="sourceLineNo">038</span>  public WindowMovingAverage() {<a name="line.38"></a>
+<span class="sourceLineNo">039</span>    this(DEFAULT_SIZE);<a name="line.39"></a>
+<span class="sourceLineNo">040</span>  }<a name="line.40"></a>
+<span class="sourceLineNo">041</span><a name="line.41"></a>
+<span class="sourceLineNo">042</span>  public WindowMovingAverage(int size) {<a name="line.42"></a>
+<span class="sourceLineNo">043</span>    this.lastN = new long[size &lt;= 0 ? DEFAULT_SIZE : size];<a name="line.43"></a>
+<span class="sourceLineNo">044</span>    this.mostRecent = -1;<a name="line.44"></a>
+<span class="sourceLineNo">045</span>    this.oneRound = false;<a name="line.45"></a>
+<span class="sourceLineNo">046</span>  }<a name="line.46"></a>
+<span class="sourceLineNo">047</span><a name="line.47"></a>
+<span class="sourceLineNo">048</span>  @Override<a name="line.48"></a>
+<span class="sourceLineNo">049</span>  protected void updateMostRecentTime(long elapsed) {<a name="line.49"></a>
+<span class="sourceLineNo">050</span>    int index = moveForwardMostRecentPosistion();<a name="line.50"></a>
+<span class="sourceLineNo">051</span>    lastN[index] = elapsed;<a name="line.51"></a>
+<span class="sourceLineNo">052</span>  }<a name="line.52"></a>
+<span class="sourceLineNo">053</span><a name="line.53"></a>
+<span class="sourceLineNo">054</span>  @Override<a name="line.54"></a>
+<span class="sourceLineNo">055</span>  public double getAverageTime() {<a name="line.55"></a>
+<span class="sourceLineNo">056</span>    return enoughStatistics() ?<a name="line.56"></a>
+<span class="sourceLineNo">057</span>      (double) sum(getNumberOfStatistics()) / getNumberOfStatistics() :<a name="line.57"></a>
+<span class="sourceLineNo">058</span>      (double) sum(getMostRecentPosistion() + 1) / (getMostRecentPosistion() + 1);<a name="line.58"></a>
+<span class="sourceLineNo">059</span>  }<a name="line.59"></a>
+<span class="sourceLineNo">060</span><a name="line.60"></a>
+<span class="sourceLineNo">061</span>  /**<a name="line.61"></a>
+<span class="sourceLineNo">062</span>   * Check if there are enough statistics.<a name="line.62"></a>
+<span class="sourceLineNo">063</span>   * @return true if lastN is full<a name="line.63"></a>
+<span class="sourceLineNo">064</span>   */<a name="line.64"></a>
+<span class="sourceLineNo">065</span>  protected boolean enoughStatistics() {<a name="line.65"></a>
+<span class="sourceLineNo">066</span>    return oneRound;<a name="line.66"></a>
+<span class="sourceLineNo">067</span>  }<a name="line.67"></a>
+<span class="sourceLineNo">068</span><a name="line.68"></a>
+<span class="sourceLineNo">069</span>  /**<a name="line.69"></a>
+<span class="sourceLineNo">070</span>   * @return number of statistics<a name="line.70"></a>
+<span class="sourceLineNo">071</span>   */<a name="line.71"></a>
+<span class="sourceLineNo">072</span>  protected int getNumberOfStatistics() {<a name="line.72"></a>
+<span class="sourceLineNo">073</span>    return lastN.length;<a name="line.73"></a>
+<span class="sourceLineNo">074</span>  }<a name="line.74"></a>
+<span class="sourceLineNo">075</span><a name="line.75"></a>
+<span class="sourceLineNo">076</span>  /**<a name="line.76"></a>
+<span class="sourceLineNo">077</span>   * Get statistics at index.<a name="line.77"></a>
+<span class="sourceLineNo">078</span>   * @param index index of bar<a name="line.78"></a>
+<span class="sourceLineNo">079</span>   * @return statistics<a name="line.79"></a>
+<span class="sourceLineNo">080</span>   */<a name="line.80"></a>
+<span class="sourceLineNo">081</span>  protected long getStatisticsAtIndex(int index) {<a name="line.81"></a>
+<span class="sourceLineNo">082</span>    if (index &lt; 0 || index &gt;= getNumberOfStatistics()) {<a name="line.82"></a>
+<span class="sourceLineNo">083</span>      // This case should not happen, but a prudent check.<a name="line.83"></a>
+<span class="sourceLineNo">084</span>      throw new IndexOutOfBoundsException();<a name="line.84"></a>
+<span class="sourceLineNo">085</span>    }<a name="line.85"></a>
+<span class="sourceLineNo">086</span>    return lastN[index];<a name="line.86"></a>
+<span class="sourceLineNo">087</span>  }<a name="line.87"></a>
+<span class="sourceLineNo">088</span><a name="line.88"></a>
+<span class="sourceLineNo">089</span>  /**<a name="line.89"></a>
+<span class="sourceLineNo">090</span>   * @return index of most recent<a name="line.90"></a>
+<span class="sourceLineNo">091</span>   */<a name="line.91"></a>
+<span class="sourceLineNo">092</span>  protected int getMostRecentPosistion() {<a name="line.92"></a>
+<span class="sourceLineNo">093</span>    return mostRecent;<a name="line.93"></a>
+<span class="sourceLineNo">094</span>  }<a name="line.94"></a>
+<span class="sourceLineNo">095</span><a name="line.95"></a>
+<span class="sourceLineNo">096</span>  /**<a name="line.96"></a>
+<span class="sourceLineNo">097</span>   * Move forward the most recent index.<a name="line.97"></a>
+<span class="sourceLineNo">098</span>   * @return the most recent index<a name="line.98"></a>
+<span class="sourceLineNo">099</span>   */<a name="line.99"></a>
+<span class="sourceLineNo">100</span>  protected int moveForwardMostRecentPosistion() {<a name="line.100"></a>
+<span class="sourceLineNo">101</span>    int index = ++mostRecent;<a name="line.101"></a>
+<span class="sourceLineNo">102</span>    if (!oneRound &amp;&amp; index == getNumberOfStatistics()) {<a name="line.102"></a>
+<span class="sourceLineNo">103</span>      // Back to the head of the lastN, from now on will<a name="line.103"></a>
+<span class="sourceLineNo">104</span>      // start to evict oldest value.<a name="line.104"></a>
+<span class="sourceLineNo">105</span>      oneRound = true;<a name="line.105"></a>
+<span class="sourceLineNo">106</span>    }<a name="line.106"></a>
+<span class="sourceLineNo">107</span>    mostRecent = index % getNumberOfStatistics();<a name="line.107"></a>
+<span class="sourceLineNo">108</span>    return mostRecent;<a name="line.108"></a>
+<span class="sourceLineNo">109</span>  }<a name="line.109"></a>
+<span class="sourceLineNo">110</span><a name="line.110"></a>
+<span class="sourceLineNo">111</span>  private long sum(int bound) {<a name="line.111"></a>
+<span class="sourceLineNo">112</span>    long sum = 0;<a name="line.112"></a>
+<span class="sourceLineNo">113</span>    for (int i = 0; i &lt; bound; i++) {<a name="line.113"></a>
+<span class="sourceLineNo">114</span>      sum += getStatisticsAtIndex(i);<a name="line.114"></a>
+<span class="sourceLineNo">115</span>    }<a name="line.115"></a>
+<span class="sourceLineNo">116</span>    return sum;<a name="line.116"></a>
+<span class="sourceLineNo">117</span>  }<a name="line.117"></a>
+<span class="sourceLineNo">118</span>}<a name="line.118"></a>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>
diff --git a/book.html b/book.html
index 3e401db..6d1aeda 100644
--- a/book.html
+++ b/book.html
@@ -43849,7 +43849,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-11-14 14:30:02 UTC
+Last updated 2019-11-15 14:30:01 UTC
 </div>
 </div>
 </body>
diff --git a/bulk-loads.html b/bulk-loads.html
index b71c0cd..2e809e7 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-11-14</li>
+All rights reserved.        <li id="publishDate" class="pull-right">Last Published: 2019-11-15</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 bd0a7c9..ee477cf 100644
--- a/checkstyle-aggregate.html
+++ b/checkstyle-aggregate.html
@@ -142,7 +142,7 @@
 <th><img src="images/icon_warning_sml.gif" alt="" />&#160;Warnings</th>
 <th><img src="images/icon_error_sml.gif" alt="" />&#160;Errors</th></tr>
 <tr class="b">
-<td>4073</td>
+<td>4080</td>
 <td>0</td>
 <td>0</td>
 <td>11502</td></tr></table></div>
@@ -8699,25 +8699,25 @@
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
-<td>176</td></tr>
+<td>177</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
-<td>306</td></tr>
+<td>307</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
-<td>378</td></tr>
+<td>379</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
-<td>394</td></tr></table></div>
+<td>395</td></tr></table></div>
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.ClassFinder.java">org/apache/hadoop/hbase/ClassFinder.java</h3>
 <table border="0" class="table table-striped">
@@ -14813,31 +14813,31 @@
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
-<td>176</td></tr>
+<td>180</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
-<td>180</td></tr>
+<td>184</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
-<td>189</td></tr>
+<td>198</td></tr>
 <tr class="b">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
-<td>213</td></tr>
+<td>222</td></tr>
 <tr class="a">
 <td><img src="images/icon_error_sml.gif" alt="" />&#160;Error</td>
 <td>blocks</td>
 <td>NeedBraces</td>
 <td>'if' construct must use '{}'s.</td>
-<td>274</td></tr></table></div>
+<td>283</td></tr></table></div>
 <div class="section">
 <h3 id="org.apache.hadoop.hbase.ServerName.java">org/apache/hadoop/hbase/ServerName.java</h3>
 <table border="0" class="table table-striped">
@@ -91442,7 +91442,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-11-14</li>
+All rights reserved.        <li id="publishDate" class="pull-right">Last Published: 2019-11-15</li>
 </p>
         </div>
         <p id="poweredBy" class="pull-right"><a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy"><img class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" /></a>
diff --git a/checkstyle.rss b/checkstyle.rss
index b5deb4e..d495fc9 100644
--- a/checkstyle.rss
+++ b/checkstyle.rss
@@ -25,7 +25,7 @@ under the License.
     <language>en-us</language>
     <copyright>&#169;2007 - 2019 The Apache Software Foundation</copyright>
     <item>
-      <title>File: 4073,
+      <title>File: 4080,
              Errors: 11502,
              Warnings: 0,
              Infos: 0
@@ -5856,6 +5856,20 @@ under the License.
               </tr>
                           <tr>
                 <td>
+                  <a href="https://hbase.apache.org/checkstyle.html#org.apache.hadoop.hbase.util.WeightedMovingAverage.java">org/apache/hadoop/hbase/util/WeightedMovingAverage.java</a>
+                </td>
+                <td>
+                  0
+                </td>
+                <td>
+                  0
+                </td>
+                <td>
+                  0
+                </td>
+              </tr>
+                          <tr>
+                <td>
                   <a href="https://hbase.apache.org/checkstyle.html#org.apache.hadoop.hbase.chaos.actions.FlushRandomRegionOfTableAction.java">org/apache/hadoop/hbase/chaos/actions/FlushRandomRegionOfTableAction.java</a>
                 </td>
                 <td>
@@ -7256,6 +7270,20 @@ under the License.
               </tr>
                           <tr>
                 <td>
+                  <a href="https://hbase.apache.org/checkstyle.html#org.apache.hadoop.hbase.util.WindowMovingAverage.java">org/apache/hadoop/hbase/util/WindowMovingAverage.java</a>
+                </td>
+                <td>
+                  0
+                </td>
+                <td>
+                  0
+                </td>
+                <td>
+                  0
+                </td>
+              </tr>
+                          <tr>
+                <td>
                   <a href="https://hbase.apache.org/checkstyle.html#org.apache.hadoop.hbase.filter.ColumnPaginationFilter.java">org/apache/hadoop/hbase/filter/ColumnPaginationFilter.java</a>
                 </td>
                 <td>
@@ -18022,6 +18050,20 @@ under the License.
               </tr>
                           <tr>
                 <td>
+                  <a href="https://hbase.apache.org/checkstyle.html#org.apache.hadoop.hbase.util.ExponentialMovingAverage.java">org/apache/hadoop/hbase/util/ExponentialMovingAverage.java</a>
+                </td>
+                <td>
+                  0
+                </td>
+                <td>
+                  0
+                </td>
+                <td>
+                  0
+                </td>
+              </tr>
+                          <tr>
+                <td>
                   <a href="https://hbase.apache.org/checkstyle.html#org.apache.hadoop.hbase.client.CoprocessorDescriptorBuilder.java">org/apache/hadoop/hbase/client/CoprocessorDescriptorBuilder.java</a>
                 </td>
                 <td>
@@ -22978,6 +23020,20 @@ under the License.
               </tr>
                           <tr>
                 <td>
+                  <a href="https://hbase.apache.org/checkstyle.html#org.apache.hadoop.hbase.util.TimeMeasurable.java">org/apache/hadoop/hbase/util/TimeMeasurable.java</a>
+                </td>
+                <td>
+                  0
+                </td>
+                <td>
+                  0
+                </td>
+                <td>
+                  0
+                </td>
+              </tr>
+                          <tr>
+                <td>
                   <a href="https://hbase.apache.org/checkstyle.html#org.apache.hadoop.hbase.http.TestPathFilter.java">org/apache/hadoop/hbase/http/TestPathFilter.java</a>
                 </td>
                 <td>
@@ -25554,6 +25610,20 @@ under the License.
               </tr>
                           <tr>
                 <td>
+                  <a href="https://hbase.apache.org/checkstyle.html#org.apache.hadoop.hbase.util.SimpleMovingAverage.java">org/apache/hadoop/hbase/util/SimpleMovingAverage.java</a>
+                </td>
+                <td>
+                  0
+                </td>
+                <td>
+                  0
+                </td>
+                <td>
+                  0
+                </td>
+              </tr>
+                          <tr>
+                <td>
                   <a href="https://hbase.apache.org/checkstyle.html#org.apache.hadoop.hbase.util.EnvironmentEdgeManager.java">org/apache/hadoop/hbase/util/EnvironmentEdgeManager.java</a>
                 </td>
                 <td>
@@ -29656,6 +29726,20 @@ under the License.
               </tr>
                           <tr>
                 <td>
+                  <a href="https://hbase.apache.org/checkstyle.html#org.apache.hadoop.hbase.util.TestMovingAverage.java">org/apache/hadoop/hbase/util/TestMovingAverage.java</a>
+                </td>
+                <td>
+                  0
+                </td>
+                <td>
+                  0
+                </td>
+                <td>
+                  0
+                </td>
+              </tr>
+                          <tr>
+                <td>
                   <a href="https://hbase.apache.org/checkstyle.html#org.apache.hadoop.hbase.procedure.ProcedureCoordinatorRpcs.java">org/apache/hadoop/hbase/procedure/ProcedureCoordinatorRpcs.java</a>
                 </td>
                 <td>
@@ -29810,6 +29894,20 @@ under the License.
               </tr>
                           <tr>
                 <td>
+                  <a href="https://hbase.apache.org/checkstyle.html#org.apache.hadoop.hbase.util.MovingAverage.java">org/apache/hadoop/hbase/util/MovingAverage.java</a>
+                </td>
+                <td>
+                  0
+                </td>
+                <td>
+                  0
+                </td>
+                <td>
+                  0
+                </td>
+              </tr>
+                          <tr>
+                <td>
                   <a href="https://hbase.apache.org/checkstyle.html#org.apache.hadoop.hbase.replication.ReplicationTrackerZKImpl.java">org/apache/hadoop/hbase/replication/ReplicationTrackerZKImpl.java</a>
                 </td>
                 <td>
diff --git a/coc.html b/coc.html
index 8447e78..f037e5d 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-11-14</li>
+All rights reserved.        <li id="publishDate" class="pull-right">Last Published: 2019-11-15</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 c0ffaf6..7dacf1b 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-11-14</li>
+All rights reserved.        <li id="publishDate" class="pull-right">Last Published: 2019-11-15</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 b4322ba..2e825b9 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-11-14</li>
+All rights reserved.        <li id="publishDate" class="pull-right">Last Published: 2019-11-15</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 5fae104..598850b 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-11-14</li>
+All rights reserved.        <li id="publishDate" class="pull-right">Last Published: 2019-11-15</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 13f18d3..e324bcd 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-11-14</li>
+All rights reserved.        <li id="publishDate" class="pull-right">Last Published: 2019-11-15</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/allclasses-frame.html b/devapidocs/allclasses-frame.html
index c491182..b5d66e1 100644
--- a/devapidocs/allclasses-frame.html
+++ b/devapidocs/allclasses-frame.html
@@ -849,6 +849,7 @@
 <li><a href="org/apache/hadoop/hbase/regionserver/compactions/ExploringCompactionPolicy.html" title="class in org.apache.hadoop.hbase.regionserver.compactions" target="classFrame">ExploringCompactionPolicy</a></li>
 <li><a href="org/apache/hadoop/hbase/client/backoff/ExponentialClientBackoffPolicy.html" title="class in org.apache.hadoop.hbase.client.backoff" target="classFrame">ExponentialClientBackoffPolicy</a></li>
 <li><a href="org/apache/hadoop/hbase/regionserver/compactions/ExponentialCompactionWindowFactory.html" title="class in org.apache.hadoop.hbase.regionserver.compactions" target="classFrame">ExponentialCompactionWindowFactory</a></li>
+<li><a href="org/apache/hadoop/hbase/util/ExponentialMovingAverage.html" title="class in org.apache.hadoop.hbase.util" target="classFrame">ExponentialMovingAverage</a></li>
 <li><a href="org/apache/hadoop/hbase/coprocessor/Export.html" title="class in org.apache.hadoop.hbase.coprocessor" target="classFrame">Export</a></li>
 <li><a href="org/apache/hadoop/hbase/mapreduce/Export.html" title="class in org.apache.hadoop.hbase.mapreduce" target="classFrame">Export</a></li>
 <li><a href="org/apache/hadoop/hbase/coprocessor/Export.PrivilegedWriter.html" title="class in org.apache.hadoop.hbase.coprocessor" target="classFrame">Export.PrivilegedWriter</a></li>
@@ -1702,6 +1703,7 @@
 <li><a href="org/apache/hadoop/hbase/monitoring/MonitoredTaskImpl.html" title="class in org.apache.hadoop.hbase.monitoring" target="classFrame">MonitoredTaskImpl</a></li>
 <li><a href="org/apache/hadoop/hbase/monitoring/MonitoredTaskImpl.StatusJournalEntryImpl.html" title="class in org.apache.hadoop.hbase.monitoring" target="classFrame">MonitoredTaskImpl.StatusJournalEntryImpl</a></li>
 <li><a href="org/apache/hadoop/hbase/master/assignment/MoveRegionProcedure.html" title="class in org.apache.hadoop.hbase.master.assignment" target="classFrame">MoveRegionProcedure</a></li>
+<li><a href="org/apache/hadoop/hbase/util/MovingAverage.html" title="class in org.apache.hadoop.hbase.util" target="classFrame">MovingAverage</a></li>
 <li><a href="org/apache/hadoop/hbase/client/MultiAction.html" title="class in org.apache.hadoop.hbase.client" target="classFrame">MultiAction</a></li>
 <li><a href="org/apache/hadoop/hbase/MultiActionResultTooLarge.html" title="class in org.apache.hadoop.hbase" target="classFrame">MultiActionResultTooLarge</a></li>
 <li><a href="org/apache/hadoop/hbase/nio/MultiByteBuff.html" title="class in org.apache.hadoop.hbase.nio" target="classFrame">MultiByteBuff</a></li>
@@ -2561,6 +2563,7 @@
 <li><a href="org/apache/hadoop/hbase/util/SimpleByteRange.html" title="class in org.apache.hadoop.hbase.util" target="classFrame">SimpleByteRange</a></li>
 <li><a href="org/apache/hadoop/hbase/master/balancer/SimpleLoadBalancer.html" title="class in org.apache.hadoop.hbase.master.balancer" target="classFrame">SimpleLoadBalancer</a></li>
 <li><a href="org/apache/hadoop/hbase/master/balancer/SimpleLoadBalancer.BalanceInfo.html" title="class in org.apache.hadoop.hbase.master.balancer" target="classFrame">SimpleLoadBalancer.BalanceInfo</a></li>
+<li><a href="org/apache/hadoop/hbase/util/SimpleMovingAverage.html" title="class in org.apache.hadoop.hbase.util" target="classFrame">SimpleMovingAverage</a></li>
 <li><a href="org/apache/hadoop/hbase/util/SimpleMutableByteRange.html" title="class in org.apache.hadoop.hbase.util" target="classFrame">SimpleMutableByteRange</a></li>
 <li><a href="org/apache/hadoop/hbase/util/SimplePositionedByteRange.html" title="class in org.apache.hadoop.hbase.util" target="classFrame">SimplePositionedByteRange</a></li>
 <li><a href="org/apache/hadoop/hbase/util/SimplePositionedMutableByteRange.html" title="class in org.apache.hadoop.hbase.util" target="classFrame">SimplePositionedMutableByteRange</a></li>
@@ -2931,6 +2934,7 @@
 <li><a href="org/apache/hadoop/hbase/regionserver/throttle/ThroughputController.html" title="interface in org.apache.hadoop.hbase.regionserver.throttle" target="classFrame"><span class="interfaceName">ThroughputController</span></a></li>
 <li><a href="org/apache/hadoop/hbase/regionserver/throttle/ThroughputControlUtil.html" title="class in org.apache.hadoop.hbase.regionserver.throttle" target="classFrame">ThroughputControlUtil</a></li>
 <li><a href="org/apache/hadoop/hbase/quotas/TimeBasedLimiter.html" title="class in org.apache.hadoop.hbase.quotas" target="classFrame">TimeBasedLimiter</a></li>
+<li><a href="org/apache/hadoop/hbase/util/TimeMeasurable.html" title="interface in org.apache.hadoop.hbase.util" target="classFrame"><span class="interfaceName">TimeMeasurable</span></a></li>
 <li><a href="org/apache/hadoop/hbase/errorhandling/TimeoutException.html" title="class in org.apache.hadoop.hbase.errorhandling" target="classFrame">TimeoutException</a></li>
 <li><a href="org/apache/hadoop/hbase/errorhandling/TimeoutExceptionInjector.html" title="class in org.apache.hadoop.hbase.errorhandling" target="classFrame">TimeoutExceptionInjector</a></li>
 <li><a href="org/apache/hadoop/hbase/procedure2/TimeoutExecutorThread.html" title="class in org.apache.hadoop.hbase.procedure2" target="classFrame">TimeoutExecutorThread</a></li>
@@ -3083,7 +3087,9 @@
 <li><a href="org/apache/hadoop/hbase/wal/WALSplitUtil.MutationReplay.html" title="class in org.apache.hadoop.hbase.wal" target="classFrame">WALSplitUtil.MutationReplay</a></li>
 <li><a href="org/apache/hadoop/hbase/regionserver/wal/WALUtil.html" title="class in org.apache.hadoop.hbase.regionserver.wal" target="classFrame">WALUtil</a></li>
 <li><a href="org/apache/hadoop/hbase/util/WeakObjectPool.html" title="class in org.apache.hadoop.hbase.util" target="classFrame">WeakObjectPool</a></li>
+<li><a href="org/apache/hadoop/hbase/util/WeightedMovingAverage.html" title="class in org.apache.hadoop.hbase.util" target="classFrame">WeightedMovingAverage</a></li>
 <li><a href="org/apache/hadoop/hbase/filter/WhileMatchFilter.html" title="class in org.apache.hadoop.hbase.filter" target="classFrame">WhileMatchFilter</a></li>
+<li><a href="org/apache/hadoop/hbase/util/WindowMovingAverage.html" title="class in org.apache.hadoop.hbase.util" target="classFrame">WindowMovingAverage</a></li>
 <li><a href="org/apache/hadoop/hbase/io/asyncfs/WrapperAsyncFSOutput.html" title="class in org.apache.hadoop.hbase.io.asyncfs" target="classFrame">WrapperAsyncFSOutput</a></li>
 <li><a href="org/apache/hadoop/hbase/util/Writables.html" title="class in org.apache.hadoop.hbase.util" target="classFrame">Writables</a></li>
 <li><a href="org/apache/hadoop/hbase/io/WritableWithSize.html" title="interface in org.apache.hadoop.hbase.io" target="classFrame"><span class="interfaceName">WritableWithSize</span></a></li>
diff --git a/devapidocs/allclasses-noframe.html b/devapidocs/allclasses-noframe.html
index 2fa909f..1c7c284 100644
--- a/devapidocs/allclasses-noframe.html
+++ b/devapidocs/allclasses-noframe.html
@@ -849,6 +849,7 @@
 <li><a href="org/apache/hadoop/hbase/regionserver/compactions/ExploringCompactionPolicy.html" title="class in org.apache.hadoop.hbase.regionserver.compactions">ExploringCompactionPolicy</a></li>
 <li><a href="org/apache/hadoop/hbase/client/backoff/ExponentialClientBackoffPolicy.html" title="class in org.apache.hadoop.hbase.client.backoff">ExponentialClientBackoffPolicy</a></li>
 <li><a href="org/apache/hadoop/hbase/regionserver/compactions/ExponentialCompactionWindowFactory.html" title="class in org.apache.hadoop.hbase.regionserver.compactions">ExponentialCompactionWindowFactory</a></li>
+<li><a href="org/apache/hadoop/hbase/util/ExponentialMovingAverage.html" title="class in org.apache.hadoop.hbase.util">ExponentialMovingAverage</a></li>
 <li><a href="org/apache/hadoop/hbase/coprocessor/Export.html" title="class in org.apache.hadoop.hbase.coprocessor">Export</a></li>
 <li><a href="org/apache/hadoop/hbase/mapreduce/Export.html" title="class in org.apache.hadoop.hbase.mapreduce">Export</a></li>
 <li><a href="org/apache/hadoop/hbase/coprocessor/Export.PrivilegedWriter.html" title="class in org.apache.hadoop.hbase.coprocessor">Export.PrivilegedWriter</a></li>
@@ -1702,6 +1703,7 @@
 <li><a href="org/apache/hadoop/hbase/monitoring/MonitoredTaskImpl.html" title="class in org.apache.hadoop.hbase.monitoring">MonitoredTaskImpl</a></li>
 <li><a href="org/apache/hadoop/hbase/monitoring/MonitoredTaskImpl.StatusJournalEntryImpl.html" title="class in org.apache.hadoop.hbase.monitoring">MonitoredTaskImpl.StatusJournalEntryImpl</a></li>
 <li><a href="org/apache/hadoop/hbase/master/assignment/MoveRegionProcedure.html" title="class in org.apache.hadoop.hbase.master.assignment">MoveRegionProcedure</a></li>
+<li><a href="org/apache/hadoop/hbase/util/MovingAverage.html" title="class in org.apache.hadoop.hbase.util">MovingAverage</a></li>
 <li><a href="org/apache/hadoop/hbase/client/MultiAction.html" title="class in org.apache.hadoop.hbase.client">MultiAction</a></li>
 <li><a href="org/apache/hadoop/hbase/MultiActionResultTooLarge.html" title="class in org.apache.hadoop.hbase">MultiActionResultTooLarge</a></li>
 <li><a href="org/apache/hadoop/hbase/nio/MultiByteBuff.html" title="class in org.apache.hadoop.hbase.nio">MultiByteBuff</a></li>
@@ -2561,6 +2563,7 @@
 <li><a href="org/apache/hadoop/hbase/util/SimpleByteRange.html" title="class in org.apache.hadoop.hbase.util">SimpleByteRange</a></li>
 <li><a href="org/apache/hadoop/hbase/master/balancer/SimpleLoadBalancer.html" title="class in org.apache.hadoop.hbase.master.balancer">SimpleLoadBalancer</a></li>
 <li><a href="org/apache/hadoop/hbase/master/balancer/SimpleLoadBalancer.BalanceInfo.html" title="class in org.apache.hadoop.hbase.master.balancer">SimpleLoadBalancer.BalanceInfo</a></li>
+<li><a href="org/apache/hadoop/hbase/util/SimpleMovingAverage.html" title="class in org.apache.hadoop.hbase.util">SimpleMovingAverage</a></li>
 <li><a href="org/apache/hadoop/hbase/util/SimpleMutableByteRange.html" title="class in org.apache.hadoop.hbase.util">SimpleMutableByteRange</a></li>
 <li><a href="org/apache/hadoop/hbase/util/SimplePositionedByteRange.html" title="class in org.apache.hadoop.hbase.util">SimplePositionedByteRange</a></li>
 <li><a href="org/apache/hadoop/hbase/util/SimplePositionedMutableByteRange.html" title="class in org.apache.hadoop.hbase.util">SimplePositionedMutableByteRange</a></li>
@@ -2931,6 +2934,7 @@
 <li><a href="org/apache/hadoop/hbase/regionserver/throttle/ThroughputController.html" title="interface in org.apache.hadoop.hbase.regionserver.throttle"><span class="interfaceName">ThroughputController</span></a></li>
 <li><a href="org/apache/hadoop/hbase/regionserver/throttle/ThroughputControlUtil.html" title="class in org.apache.hadoop.hbase.regionserver.throttle">ThroughputControlUtil</a></li>
 <li><a href="org/apache/hadoop/hbase/quotas/TimeBasedLimiter.html" title="class in org.apache.hadoop.hbase.quotas">TimeBasedLimiter</a></li>
+<li><a href="org/apache/hadoop/hbase/util/TimeMeasurable.html" title="interface in org.apache.hadoop.hbase.util"><span class="interfaceName">TimeMeasurable</span></a></li>
 <li><a href="org/apache/hadoop/hbase/errorhandling/TimeoutException.html" title="class in org.apache.hadoop.hbase.errorhandling">TimeoutException</a></li>
 <li><a href="org/apache/hadoop/hbase/errorhandling/TimeoutExceptionInjector.html" title="class in org.apache.hadoop.hbase.errorhandling">TimeoutExceptionInjector</a></li>
 <li><a href="org/apache/hadoop/hbase/procedure2/TimeoutExecutorThread.html" title="class in org.apache.hadoop.hbase.procedure2">TimeoutExecutorThread</a></li>
@@ -3083,7 +3087,9 @@
 <li><a href="org/apache/hadoop/hbase/wal/WALSplitUtil.MutationReplay.html" title="class in org.apache.hadoop.hbase.wal">WALSplitUtil.MutationReplay</a></li>
 <li><a href="org/apache/hadoop/hbase/regionserver/wal/WALUtil.html" title="class in org.apache.hadoop.hbase.regionserver.wal">WALUtil</a></li>
 <li><a href="org/apache/hadoop/hbase/util/WeakObjectPool.html" title="class in org.apache.hadoop.hbase.util">WeakObjectPool</a></li>
+<li><a href="org/apache/hadoop/hbase/util/WeightedMovingAverage.html" title="class in org.apache.hadoop.hbase.util">WeightedMovingAverage</a></li>
 <li><a href="org/apache/hadoop/hbase/filter/WhileMatchFilter.html" title="class in org.apache.hadoop.hbase.filter">WhileMatchFilter</a></li>
+<li><a href="org/apache/hadoop/hbase/util/WindowMovingAverage.html" title="class in org.apache.hadoop.hbase.util">WindowMovingAverage</a></li>
 <li><a href="org/apache/hadoop/hbase/io/asyncfs/WrapperAsyncFSOutput.html" title="class in org.apache.hadoop.hbase.io.asyncfs">WrapperAsyncFSOutput</a></li>
 <li><a href="org/apache/hadoop/hbase/util/Writables.html" title="class in org.apache.hadoop.hbase.util">Writables</a></li>
 <li><a href="org/apache/hadoop/hbase/io/WritableWithSize.html" title="interface in org.apache.hadoop.hbase.io"><span class="interfaceName">WritableWithSize</span></a></li>
diff --git a/devapidocs/constant-values.html b/devapidocs/constant-values.html
index 95f05e7..2732bfc 100644
--- a/devapidocs/constant-values.html
+++ b/devapidocs/constant-values.html
@@ -4067,14 +4067,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>"Thu Nov 14 14:38:39 UTC 2019"</code></td>
+<td class="colLast"><code>"Fri Nov 15 14:36:18 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>"1d6f50fd863ee0e9f541569880d0586779e10e5a"</code></td>
+<td class="colLast"><code>"e60764f5a197540d06efd42c5dc7e936afe0af74"</code></td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><a name="org.apache.hadoop.hbase.Version.srcChecksum">
@@ -30462,6 +30462,25 @@
 </tbody>
 </table>
 </li>
+<li class="blockList">
+<table class="constantsSummary" border="0" cellpadding="3" cellspacing="0" summary="Constant Field Values table, listing constant fields, and values">
+<caption><span>org.apache.hadoop.hbase.util.<a href="org/apache/hadoop/hbase/util/WindowMovingAverage.html" title="class in org.apache.hadoop.hbase.util">WindowMovingAverage</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th scope="col">Constant Field</th>
+<th class="colLast" scope="col">Value</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a name="org.apache.hadoop.hbase.util.WindowMovingAverage.DEFAULT_SIZE">
+<!--   -->
+</a><code>protected&nbsp;static&nbsp;final&nbsp;int</code></td>
+<td><code><a href="org/apache/hadoop/hbase/util/WindowMovingAverage.html#DEFAULT_SIZE">DEFAULT_SIZE</a></code></td>
+<td class="colLast"><code>5</code></td>
+</tr>
+</tbody>
+</table>
+</li>
 </ul>
 <ul class="blockList">
 <li class="blockList">
diff --git a/devapidocs/index-all.html b/devapidocs/index-all.html
index dc0fb36..3d739f2 100644
--- a/devapidocs/index-all.html
+++ b/devapidocs/index-all.html
@@ -3103,6 +3103,8 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/io/TimeRange.html#allTime--">allTime()</a></span> - Static method in class org.apache.hadoop.hbase.io.<a href="org/apache/hadoop/hbase/io/TimeRange.html" title="class in org.apache.hadoop.hbase.io">TimeRange</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/util/ExponentialMovingAverage.html#alpha">alpha</a></span> - Variable in class org.apache.hadoop.hbase.util.<a href="org/apache/hadoop/hbase/util/ExponentialMovingAverage.html" title="class in org.apache.hadoop.hbase.util">ExponentialMovingAverage</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/http/ProfileOutputServlet.html#ALPHA_NUMERIC">ALPHA_NUMERIC</a></span> - Static variable in class org.apache.hadoop.hbase.http.<a href="org/apache/hadoop/hbase/http/ProfileOutputServlet.html" title="class in org.apache.hadoop.hbase.http">ProfileOutputServlet</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/CatalogJanitor.html#alreadyRunning">alreadyRunning</a></span> - Variable in class org.apache.hadoop.hbase.master.<a href="org/apache/hadoop/hbase/master/CatalogJanitor.html" title="class in org.apache.hadoop.hbase.master">CatalogJanitor</a></dt>
@@ -4861,6 +4863,8 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.html#averageRegionSize">averageRegionSize</a></span> - Variable in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.html" title="class in org.apache.hadoop.hbase.regionserver">MetricsRegionServerWrapperImpl</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/util/SimpleMovingAverage.html#averageTime">averageTime</a></span> - Variable in class org.apache.hadoop.hbase.util.<a href="org/apache/hadoop/hbase/util/SimpleMovingAverage.html" title="class in org.apache.hadoop.hbase.util">SimpleMovingAverage</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/coprocessor/AggregationClient.html#avg-org.apache.hadoop.hbase.TableName-org.apache.hadoop.hbase.coprocessor.ColumnInterpreter-org.apache.hadoop.hbase.client.Scan-">avg(TableName, ColumnInterpreter&lt;R, S, P, Q, T&gt;, Scan)</a></span> - Method in class org.apache.hadoop.hbase.client.coprocessor.<a href="org/apache/hadoop/hbase/client/coprocessor/AggregationClient.html" title="class in org.apache.hadoop.hbase.clien [...]
 <dd>
 <div class="block">This is the client side interface/handle for calling the average method for
@@ -13928,6 +13932,8 @@
 <dd>
 <div class="block">Cannot rely on enum ordinals .</div>
 </dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/util/WeightedMovingAverage.html#coefficient">coefficient</a></span> - Variable in class org.apache.hadoop.hbase.util.<a href="org/apache/hadoop/hbase/util/WeightedMovingAverage.html" title="class in org.apache.hadoop.hbase.util">WeightedMovingAverage</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/util/MunkresAssignment.html#colAdjust">colAdjust</a></span> - Variable in class org.apache.hadoop.hbase.util.<a href="org/apache/hadoop/hbase/util/MunkresAssignment.html" title="class in org.apache.hadoop.hbase.util">MunkresAssignment</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/PrivateCellUtil.FirstOnRowColByteBufferExtendedCell.html#colBuff">colBuff</a></span> - Variable in class org.apache.hadoop.hbase.<a href="org/apache/hadoop/hbase/PrivateCellUtil.FirstOnRowColByteBufferExtendedCell.html" title="class in org.apache.hadoop.hbase">PrivateCellUtil.FirstOnRowColByteBufferExtendedCell</a></dt>
@@ -18827,6 +18833,8 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/querymatcher/UserScanQueryMatcher.html#count">count</a></span> - Variable in class org.apache.hadoop.hbase.regionserver.querymatcher.<a href="org/apache/hadoop/hbase/regionserver/querymatcher/UserScanQueryMatcher.html" title="class in org.apache.hadoop.hbase.regionserver.querymatcher">UserScanQueryMatcher</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/util/SimpleMovingAverage.html#count">count</a></span> - Variable in class org.apache.hadoop.hbase.util.<a href="org/apache/hadoop/hbase/util/SimpleMovingAverage.html" title="class in org.apache.hadoop.hbase.util">SimpleMovingAverage</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/metrics2/util/MetricSampleQuantiles.html#count">count</a></span> - Variable in class org.apache.hadoop.metrics2.util.<a href="org/apache/hadoop/metrics2/util/MetricSampleQuantiles.html" title="class in org.apache.hadoop.metrics2.util">MetricSampleQuantiles</a></dt>
 <dd>
 <div class="block">Total number of items in stream</div>
@@ -21845,6 +21853,8 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/ipc/RpcServer.html#CURRENT_VERSION">CURRENT_VERSION</a></span> - Static variable in class org.apache.hadoop.hbase.ipc.<a href="org/apache/hadoop/hbase/ipc/RpcServer.html" title="class in org.apache.hadoop.hbase.ipc">RpcServer</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/util/ExponentialMovingAverage.html#currentAverage">currentAverage</a></span> - Variable in class org.apache.hadoop.hbase.util.<a href="org/apache/hadoop/hbase/util/ExponentialMovingAverage.html" title="class in org.apache.hadoop.hbase.util">ExponentialMovingAverage</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.html#currentBandwidth">currentBandwidth</a></span> - Variable in class org.apache.hadoop.hbase.replication.regionserver.<a href="org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.html" title="class in org.apache.hadoop.hbase.replication.regionserver">ReplicationSource</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/io/encoding/BufferedDataBlockEncoder.BufferedEncodedSeeker.html#currentBuffer">currentBuffer</a></span> - Variable in class org.apache.hadoop.hbase.io.encoding.<a href="org/apache/hadoop/hbase/io/encoding/BufferedDataBlockEncoder.BufferedEncodedSeeker.html" title="class in org.apache.hadoop.hbase.io.encoding">BufferedDataBlockEncoder.BufferedEncodedSeeker</a></dt>
@@ -24119,6 +24129,8 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/ScannerContext.ProgressFields.html#DEFAULT_SIZE">DEFAULT_SIZE</a></span> - Static variable in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/ScannerContext.ProgressFields.html" title="class in org.apache.hadoop.hbase.regionserver">ScannerContext.ProgressFields</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/util/WindowMovingAverage.html#DEFAULT_SIZE">DEFAULT_SIZE</a></span> - Static variable in class org.apache.hadoop.hbase.util.<a href="org/apache/hadoop/hbase/util/WindowMovingAverage.html" title="class in org.apache.hadoop.hbase.util">WindowMovingAverage</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/coprocessor/CoprocessorHost.html#DEFAULT_SKIP_LOAD_DUPLICATE_TABLE_COPROCESSOR">DEFAULT_SKIP_LOAD_DUPLICATE_TABLE_COPROCESSOR</a></span> - Static variable in class org.apache.hadoop.hbase.coprocessor.<a href="org/apache/hadoop/hbase/coprocessor/CoprocessorHost.html" title="class in org.apache.hadoop.hbase.coprocessor">CoprocessorHost</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/util/ServerCommandLine.html#DEFAULT_SKIP_WORDS">DEFAULT_SKIP_WORDS</a></span> - Static variable in class org.apache.hadoop.hbase.util.<a href="org/apache/hadoop/hbase/util/ServerCommandLine.html" title="class in org.apache.hadoop.hbase.util">ServerCommandLine</a></dt>
@@ -25618,6 +25630,8 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/thrift2/DemoClient.html#DemoClient--">DemoClient()</a></span> - Constructor for class org.apache.hadoop.hbase.thrift2.<a href="org/apache/hadoop/hbase/thrift2/DemoClient.html" title="class in org.apache.hadoop.hbase.thrift2">DemoClient</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/util/WeightedMovingAverage.html#denominator">denominator</a></span> - Variable in class org.apache.hadoop.hbase.util.<a href="org/apache/hadoop/hbase/util/WeightedMovingAverage.html" title="class in org.apache.hadoop.hbase.util">WeightedMovingAverage</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/security/access/AuthResult.html#deny-java.lang.String-java.lang.String-org.apache.hadoop.hbase.security.User-org.apache.hadoop.hbase.security.access.Permission.Action-java.lang.String-">deny(String, String, User, Permission.Action, String)</a></span> - Static method in class org.apache.hadoop.hbase.security.access.<a href="org/apache/hadoop/hbase/security/access/AuthResult.html" title="class in org.apache.hadoop.hbase.secu [...]
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/security/access/AuthResult.html#deny-java.lang.String-java.lang.String-org.apache.hadoop.hbase.security.User-org.apache.hadoop.hbase.security.access.Permission.Action-org.apache.hadoop.hbase.TableName-byte:A-byte:A-">deny(String, String, User, Permission.Action, TableName, byte[], byte[])</a></span> - Static method in class org.apache.hadoop.hbase.security.access.<a href="org/apache/hadoop/hbase/security/access/AuthResult. [...]
@@ -28667,6 +28681,10 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/filter/RegexStringComparator.EngineType.html#EngineType--">EngineType()</a></span> - Constructor for enum org.apache.hadoop.hbase.filter.<a href="org/apache/hadoop/hbase/filter/RegexStringComparator.EngineType.html" title="enum in org.apache.hadoop.hbase.filter">RegexStringComparator.EngineType</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/util/WindowMovingAverage.html#enoughStatistics--">enoughStatistics()</a></span> - Method in class org.apache.hadoop.hbase.util.<a href="org/apache/hadoop/hbase/util/WindowMovingAverage.html" title="class in org.apache.hadoop.hbase.util">WindowMovingAverage</a></dt>
+<dd>
+<div class="block">Check if there are enough statistics.</div>
+</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/procedure/MasterProcedureScheduler.html#enqueue-org.apache.hadoop.hbase.procedure2.Procedure-boolean-">enqueue(Procedure, boolean)</a></span> - Method in class org.apache.hadoop.hbase.master.procedure.<a href="org/apache/hadoop/hbase/master/procedure/MasterProcedureScheduler.html" title="class in org.apache.hadoop.hbase.master.procedure">MasterProcedureScheduler</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/procedure2/AbstractProcedureScheduler.html#enqueue-org.apache.hadoop.hbase.procedure2.Procedure-boolean-">enqueue(Procedure, boolean)</a></span> - Method in class org.apache.hadoop.hbase.procedure2.<a href="org/apache/hadoop/hbase/procedure2/AbstractProcedureScheduler.html" title="class in org.apache.hadoop.hbase.procedure2">AbstractProcedureScheduler</a></dt>
@@ -30524,6 +30542,19 @@
 <dd>&nbsp;</dd>
 <dt><a href="org/apache/hadoop/hbase/regionserver/compactions/ExponentialCompactionWindowFactory.Window.html" title="class in org.apache.hadoop.hbase.regionserver.compactions"><span class="typeNameLink">ExponentialCompactionWindowFactory.Window</span></a> - Class in <a href="org/apache/hadoop/hbase/regionserver/compactions/package-summary.html">org.apache.hadoop.hbase.regionserver.compactions</a></dt>
 <dd>&nbsp;</dd>
+<dt><a href="org/apache/hadoop/hbase/util/ExponentialMovingAverage.html" title="class in org.apache.hadoop.hbase.util"><span class="typeNameLink">ExponentialMovingAverage</span></a> - Class in <a href="org/apache/hadoop/hbase/util/package-summary.html">org.apache.hadoop.hbase.util</a></dt>
+<dd>
+<div class="block">EMA is similar to <a href="org/apache/hadoop/hbase/util/WeightedMovingAverage.html" title="class in org.apache.hadoop.hbase.util"><code>WeightedMovingAverage</code></a> in weighted, but the weighting factor decrease
+ exponentially.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/util/ExponentialMovingAverage.html#ExponentialMovingAverage--">ExponentialMovingAverage()</a></span> - Constructor for class org.apache.hadoop.hbase.util.<a href="org/apache/hadoop/hbase/util/ExponentialMovingAverage.html" title="class in org.apache.hadoop.hbase.util">ExponentialMovingAverage</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/util/ExponentialMovingAverage.html#ExponentialMovingAverage-double-">ExponentialMovingAverage(double)</a></span> - Constructor for class org.apache.hadoop.hbase.util.<a href="org/apache/hadoop/hbase/util/ExponentialMovingAverage.html" title="class in org.apache.hadoop.hbase.util">ExponentialMovingAverage</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/util/ExponentialMovingAverage.html#ExponentialMovingAverage-int-">ExponentialMovingAverage(int)</a></span> - Constructor for class org.apache.hadoop.hbase.util.<a href="org/apache/hadoop/hbase/util/ExponentialMovingAverage.html" title="class in org.apache.hadoop.hbase.util">ExponentialMovingAverage</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/util/ExponentialMovingAverage.html#ExponentialMovingAverage-int-double-">ExponentialMovingAverage(int, double)</a></span> - Constructor for class org.apache.hadoop.hbase.util.<a href="org/apache/hadoop/hbase/util/ExponentialMovingAverage.html" title="class in org.apache.hadoop.hbase.util">ExponentialMovingAverage</a></dt>
+<dd>&nbsp;</dd>
 <dt><a href="org/apache/hadoop/hbase/coprocessor/Export.html" title="class in org.apache.hadoop.hbase.coprocessor"><span class="typeNameLink">Export</span></a> - Class in <a href="org/apache/hadoop/hbase/coprocessor/package-summary.html">org.apache.hadoop.hbase.coprocessor</a></dt>
 <dd>
 <div class="block">Export an HBase table.</div>
@@ -35881,6 +35912,18 @@
 </dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.html#getAverageRegionSize--">getAverageRegionSize()</a></span> - Method in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.html" title="class in org.apache.hadoop.hbase.regionserver">MetricsRegionServerWrapperImpl</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/util/ExponentialMovingAverage.html#getAverageTime--">getAverageTime()</a></span> - Method in class org.apache.hadoop.hbase.util.<a href="org/apache/hadoop/hbase/util/ExponentialMovingAverage.html" title="class in org.apache.hadoop.hbase.util">ExponentialMovingAverage</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/util/MovingAverage.html#getAverageTime--">getAverageTime()</a></span> - Method in class org.apache.hadoop.hbase.util.<a href="org/apache/hadoop/hbase/util/MovingAverage.html" title="class in org.apache.hadoop.hbase.util">MovingAverage</a></dt>
+<dd>
+<div class="block">Get average execution time of the measured method.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/util/SimpleMovingAverage.html#getAverageTime--">getAverageTime()</a></span> - Method in class org.apache.hadoop.hbase.util.<a href="org/apache/hadoop/hbase/util/SimpleMovingAverage.html" title="class in org.apache.hadoop.hbase.util">SimpleMovingAverage</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/util/WeightedMovingAverage.html#getAverageTime--">getAverageTime()</a></span> - Method in class org.apache.hadoop.hbase.util.<a href="org/apache/hadoop/hbase/util/WeightedMovingAverage.html" title="class in org.apache.hadoop.hbase.util">WeightedMovingAverage</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/util/WindowMovingAverage.html#getAverageTime--">getAverageTime()</a></span> - Method in class org.apache.hadoop.hbase.util.<a href="org/apache/hadoop/hbase/util/WindowMovingAverage.html" title="class in org.apache.hadoop.hbase.util">WindowMovingAverage</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/coprocessor/AggregateImplementation.html#getAvg-com.google.protobuf.RpcController-org.apache.hadoop.hbase.protobuf.generated.AggregateProtos.AggregateRequest-com.google.protobuf.RpcCallback-">getAvg(RpcController, AggregateProtos.AggregateRequest, RpcCallback&lt;AggregateProtos.AggregateResponse&gt;)</a></span> - Method in class org.apache.hadoop.hbase.coprocessor.<a href="org/apache/hadoop/hbase/coprocessor/AggregateImple [...]
 <dd>
 <div class="block">Gives a Pair with first object as Sum and second object as row count,
@@ -44415,6 +44458,8 @@
 </dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/balancer/StochasticLoadBalancer.LocalityBasedCostFunction.html#getMostLocalEntityForRegion-int-">getMostLocalEntityForRegion(int)</a></span> - Method in class org.apache.hadoop.hbase.master.balancer.<a href="org/apache/hadoop/hbase/master/balancer/StochasticLoadBalancer.LocalityBasedCostFunction.html" title="class in org.apache.hadoop.hbase.master.balancer">StochasticLoadBalancer.LocalityBasedCostFunction</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/util/WindowMovingAverage.html#getMostRecentPosistion--">getMostRecentPosistion()</a></span> - Method in class org.apache.hadoop.hbase.util.<a href="org/apache/hadoop/hbase/util/WindowMovingAverage.html" title="class in org.apache.hadoop.hbase.util">WindowMovingAverage</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/HRegionServer.html#getMovedRegion-java.lang.String-">getMovedRegion(String)</a></span> - Method in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/HRegionServer.html" title="class in org.apache.hadoop.hbase.regionserver">HRegionServer</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/MetricsAssignmentManagerSource.html#getMoveMetrics--">getMoveMetrics()</a></span> - Method in interface org.apache.hadoop.hbase.master.<a href="org/apache/hadoop/hbase/master/MetricsAssignmentManagerSource.html" title="interface in org.apache.hadoop.hbase.master">MetricsAssignmentManagerSource</a></dt>
@@ -45193,6 +45238,8 @@
 </dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/ChoreService.html#getNumberOfScheduledChores--">getNumberOfScheduledChores()</a></span> - Method in class org.apache.hadoop.hbase.<a href="org/apache/hadoop/hbase/ChoreService.html" title="class in org.apache.hadoop.hbase">ChoreService</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/util/WindowMovingAverage.html#getNumberOfStatistics--">getNumberOfStatistics()</a></span> - Method in class org.apache.hadoop.hbase.util.<a href="org/apache/hadoop/hbase/util/WindowMovingAverage.html" title="class in org.apache.hadoop.hbase.util">WindowMovingAverage</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/RequestController.html#getNumberOfTasksInProgress--">getNumberOfTasksInProgress()</a></span> - Method in interface org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/RequestController.html" title="interface in org.apache.hadoop.hbase.client">RequestController</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/SimpleRequestController.html#getNumberOfTasksInProgress--">getNumberOfTasksInProgress()</a></span> - Method in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/SimpleRequestController.html" title="class in org.apache.hadoop.hbase.client">SimpleRequestController</a></dt>
@@ -46557,6 +46604,8 @@
 <dd>
 <div class="block">Returns the previous cell written by this writer</div>
 </dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/util/ExponentialMovingAverage.html#getPrevious--">getPrevious()</a></span> - Method in class org.apache.hadoop.hbase.util.<a href="org/apache/hadoop/hbase/util/ExponentialMovingAverage.html" title="class in org.apache.hadoop.hbase.util">ExponentialMovingAverage</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/quotas/FileArchiverNotifierImpl.html#getPreviousNamespaceSnapshotSize-org.apache.hadoop.hbase.client.Table-java.lang.String-">getPreviousNamespaceSnapshotSize(Table, String)</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">Fetches the current size of all snapshots in the given <code>namespace</code>.</div>
@@ -51602,6 +51651,10 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/snapshot/SnapshotInfo.SnapshotStats.FileInfo.html#getStateToString--">getStateToString()</a></span> - Method in class org.apache.hadoop.hbase.snapshot.<a href="org/apache/hadoop/hbase/snapshot/SnapshotInfo.SnapshotStats.FileInfo.html" title="class in org.apache.hadoop.hbase.snapshot">SnapshotInfo.SnapshotStats.FileInfo</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/util/WindowMovingAverage.html#getStatisticsAtIndex-int-">getStatisticsAtIndex(int)</a></span> - Method in class org.apache.hadoop.hbase.util.<a href="org/apache/hadoop/hbase/util/WindowMovingAverage.html" title="class in org.apache.hadoop.hbase.util">WindowMovingAverage</a></dt>
+<dd>
+<div class="block">Get statistics at index.</div>
+</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/AsyncConnectionImpl.html#getStatisticsTracker--">getStatisticsTracker()</a></span> - Method in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/AsyncConnectionImpl.html" title="class in org.apache.hadoop.hbase.client">AsyncConnectionImpl</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/Result.html#getStats--">getStats()</a></span> - Method in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/Result.html" title="class in org.apache.hadoop.hbase.client">Result</a></dt>
@@ -67960,6 +68013,8 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/snapshot/SnapshotFileCache.SnapshotDirectoryInfo.html#lastModified">lastModified</a></span> - Variable in class org.apache.hadoop.hbase.master.snapshot.<a href="org/apache/hadoop/hbase/master/snapshot/SnapshotFileCache.SnapshotDirectoryInfo.html" title="class in org.apache.hadoop.hbase.master.snapshot">SnapshotFileCache.SnapshotDirectoryInfo</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/util/WindowMovingAverage.html#lastN">lastN</a></span> - Variable in class org.apache.hadoop.hbase.util.<a href="org/apache/hadoop/hbase/util/WindowMovingAverage.html" title="class in org.apache.hadoop.hbase.util">WindowMovingAverage</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/PrivateCellUtil.LastOnRowByteBufferExtendedCell.html#LastOnRowByteBufferExtendedCell-java.nio.ByteBuffer-int-short-">LastOnRowByteBufferExtendedCell(ByteBuffer, int, short)</a></span> - Constructor for class org.apache.hadoop.hbase.<a href="org/apache/hadoop/hbase/PrivateCellUtil.LastOnRowByteBufferExtendedCell.html" title="class in org.apache.hadoop.hbase">PrivateCellUtil.LastOnRowByteBufferExtendedCell</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/PrivateCellUtil.LastOnRowCell.html#LastOnRowCell-byte:A-int-short-">LastOnRowCell(byte[], int, short)</a></span> - Constructor for class org.apache.hadoop.hbase.<a href="org/apache/hadoop/hbase/PrivateCellUtil.LastOnRowCell.html" title="class in org.apache.hadoop.hbase">PrivateCellUtil.LastOnRowCell</a></dt>
@@ -71114,6 +71169,8 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/util/ModifyRegionUtils.html#LOG">LOG</a></span> - Static variable in class org.apache.hadoop.hbase.util.<a href="org/apache/hadoop/hbase/util/ModifyRegionUtils.html" title="class in org.apache.hadoop.hbase.util">ModifyRegionUtils</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/util/MovingAverage.html#LOG">LOG</a></span> - Static variable in class org.apache.hadoop.hbase.util.<a href="org/apache/hadoop/hbase/util/MovingAverage.html" title="class in org.apache.hadoop.hbase.util">MovingAverage</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/util/PrettyPrinter.html#LOG">LOG</a></span> - Static variable in class org.apache.hadoop.hbase.util.<a href="org/apache/hadoop/hbase/util/PrettyPrinter.html" title="class in org.apache.hadoop.hbase.util">PrettyPrinter</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/util/ProcessUtils.html#LOG">LOG</a></span> - Static variable in class org.apache.hadoop.hbase.util.<a href="org/apache/hadoop/hbase/util/ProcessUtils.html" title="class in org.apache.hadoop.hbase.util">ProcessUtils</a></dt>
@@ -74281,6 +74338,14 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/metrics2/MetricHistogram.html#MEAN_METRIC_NAME">MEAN_METRIC_NAME</a></span> - Static variable in interface org.apache.hadoop.metrics2.<a href="org/apache/hadoop/metrics2/MetricHistogram.html" title="interface in org.apache.hadoop.metrics2">MetricHistogram</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/util/MovingAverage.html#measure-org.apache.hadoop.hbase.util.TimeMeasurable-">measure(TimeMeasurable&lt;T&gt;)</a></span> - Method in class org.apache.hadoop.hbase.util.<a href="org/apache/hadoop/hbase/util/MovingAverage.html" title="class in org.apache.hadoop.hbase.util">MovingAverage</a></dt>
+<dd>
+<div class="block">Measure elapsed time of a measurable method.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/util/TimeMeasurable.html#measure--">measure()</a></span> - Method in interface org.apache.hadoop.hbase.util.<a href="org/apache/hadoop/hbase/util/TimeMeasurable.html" title="interface in org.apache.hadoop.hbase.util">TimeMeasurable</a></dt>
+<dd>
+<div class="block">Measure elapsed time.</div>
+</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.html#MECHANISM">MECHANISM</a></span> - Static variable in class org.apache.hadoop.hbase.io.asyncfs.<a href="org/apache/hadoop/hbase/io/asyncfs/FanOutOneBlockAsyncDFSOutputSaslHelper.html" title="class in org.apache.hadoop.hbase.io.asyncfs">FanOutOneBlockAsyncDFSOutputSaslHelper</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/security/AuthMethod.html#mechanismName">mechanismName</a></span> - Variable in enum org.apache.hadoop.hbase.security.<a href="org/apache/hadoop/hbase/security/AuthMethod.html" title="enum in org.apache.hadoop.hbase.security">AuthMethod</a></dt>
@@ -77354,6 +77419,8 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/AssignmentVerificationReport.html#mostLoadedRSSet">mostLoadedRSSet</a></span> - Variable in class org.apache.hadoop.hbase.master.<a href="org/apache/hadoop/hbase/master/AssignmentVerificationReport.html" title="class in org.apache.hadoop.hbase.master">AssignmentVerificationReport</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/util/WindowMovingAverage.html#mostRecent">mostRecent</a></span> - Variable in class org.apache.hadoop.hbase.util.<a href="org/apache/hadoop/hbase/util/WindowMovingAverage.html" title="class in org.apache.hadoop.hbase.util">WindowMovingAverage</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/assignment/GCMergedRegionsProcedure.html#mother">mother</a></span> - Variable in class org.apache.hadoop.hbase.master.assignment.<a href="org/apache/hadoop/hbase/master/assignment/GCMergedRegionsProcedure.html" title="class in org.apache.hadoop.hbase.master.assignment">GCMergedRegionsProcedure</a></dt>
 <dd>
 <div class="block"><span class="deprecatedLabel">Deprecated.</span></div>
@@ -77468,6 +77535,10 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/HStore.html#moveFileIntoPlace-org.apache.hadoop.fs.Path-">moveFileIntoPlace(Path)</a></span> - Method in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/HStore.html" title="class in org.apache.hadoop.hbase.regionserver">HStore</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/util/WindowMovingAverage.html#moveForwardMostRecentPosistion--">moveForwardMostRecentPosistion()</a></span> - Method in class org.apache.hadoop.hbase.util.<a href="org/apache/hadoop/hbase/util/WindowMovingAverage.html" title="class in org.apache.hadoop.hbase.util">WindowMovingAverage</a></dt>
+<dd>
+<div class="block">Move forward the most recent index.</div>
+</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/ServerManager.html#moveFromOnlineToDeadServers-org.apache.hadoop.hbase.ServerName-">moveFromOnlineToDeadServers(ServerName)</a></span> - Method in class org.apache.hadoop.hbase.master.<a href="org/apache/hadoop/hbase/master/ServerManager.html" title="class in org.apache.hadoop.hbase.master">ServerManager</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/rsgroup/RSGroupAdminServer.html#moveMaxRetry">moveMaxRetry</a></span> - Variable in class org.apache.hadoop.hbase.rsgroup.<a href="org/apache/hadoop/hbase/rsgroup/RSGroupAdminServer.html" title="class in org.apache.hadoop.hbase.rsgroup">RSGroupAdminServer</a></dt>
@@ -77579,6 +77650,14 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/util/RegionMover.MoveWithoutAck.html#MoveWithoutAck-org.apache.hadoop.hbase.client.RegionInfo-org.apache.hadoop.hbase.ServerName-org.apache.hadoop.hbase.ServerName-java.util.List-">MoveWithoutAck(RegionInfo, ServerName, ServerName, List&lt;RegionInfo&gt;)</a></span> - Constructor for class org.apache.hadoop.hbase.util.<a href="org/apache/hadoop/hbase/util/RegionMover.MoveWithoutAck.html" title="class in org.apache.hadoop.h [...]
 <dd>&nbsp;</dd>
+<dt><a href="org/apache/hadoop/hbase/util/MovingAverage.html" title="class in org.apache.hadoop.hbase.util"><span class="typeNameLink">MovingAverage</span></a>&lt;<a href="org/apache/hadoop/hbase/util/MovingAverage.html" title="type parameter in MovingAverage">T</a>&gt; - Class in <a href="org/apache/hadoop/hbase/util/package-summary.html">org.apache.hadoop.hbase.util</a></dt>
+<dd>
+<div class="block">The purpose of introduction of <a href="org/apache/hadoop/hbase/util/MovingAverage.html" title="class in org.apache.hadoop.hbase.util"><code>MovingAverage</code></a> mainly is to measure execution time of a
+ specific method, which can help us to know its performance fluctuation in response to different
+ machine states or situations, better case, then to act accordingly.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/util/MovingAverage.html#MovingAverage--">MovingAverage()</a></span> - Constructor for class org.apache.hadoop.hbase.util.<a href="org/apache/hadoop/hbase/util/MovingAverage.html" title="class in org.apache.hadoop.hbase.util">MovingAverage</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/HMaster.html#mpmHost">mpmHost</a></span> - Variable in class org.apache.hadoop.hbase.master.<a href="org/apache/hadoop/hbase/master/HMaster.html" title="class in org.apache.hadoop.hbase.master">HMaster</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/snapshot/ExportSnapshot.html#MR_NUM_MAPS">MR_NUM_MAPS</a></span> - Static variable in class org.apache.hadoop.hbase.snapshot.<a href="org/apache/hadoop/hbase/snapshot/ExportSnapshot.html" title="class in org.apache.hadoop.hbase.snapshot">ExportSnapshot</a></dt>
@@ -81229,6 +81308,8 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/procedure2/OnePhaseProcedure.html#OnePhaseProcedure--">OnePhaseProcedure()</a></span> - Constructor for class org.apache.hadoop.hbase.procedure2.<a href="org/apache/hadoop/hbase/procedure2/OnePhaseProcedure.html" title="class in org.apache.hadoop.hbase.procedure2">OnePhaseProcedure</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/util/WindowMovingAverage.html#oneRound">oneRound</a></span> - Variable in class org.apache.hadoop.hbase.util.<a href="org/apache/hadoop/hbase/util/WindowMovingAverage.html" title="class in org.apache.hadoop.hbase.util">WindowMovingAverage</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/AsyncMetaTableAccessor.MetaTableScanResultConsumer.html#onError-java.lang.Throwable-">onError(Throwable)</a></span> - Method in class org.apache.hadoop.hbase.<a href="org/apache/hadoop/hbase/AsyncMetaTableAccessor.MetaTableScanResultConsumer.html" title="class in org.apache.hadoop.hbase">AsyncMetaTableAccessor.MetaTableScanResultConsumer</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/AsyncBatchRpcRetryingCaller.html#onError-java.util.Map-int-java.lang.Throwable-org.apache.hadoop.hbase.ServerName-">onError(Map&lt;byte[], AsyncBatchRpcRetryingCaller.RegionRequest&gt;, int, Throwable, ServerName)</a></span> - Method in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/AsyncBatchRpcRetryingCaller.html" title="class in org.apache.hadoop.hbase.client">AsyncBatchRpcRetryingCa [...]
@@ -87357,6 +87438,8 @@ service.</div>
 <dd>
 <div class="block">RegionInfo from previous row.</div>
 </dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/util/ExponentialMovingAverage.html#previousAverage">previousAverage</a></span> - Variable in class org.apache.hadoop.hbase.util.<a href="org/apache/hadoop/hbase/util/ExponentialMovingAverage.html" title="class in org.apache.hadoop.hbase.util">ExponentialMovingAverage</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/hbtop/mode/RequestCountPerSecond.html#previousFilteredReadRequestCount">previousFilteredReadRequestCount</a></span> - Variable in class org.apache.hadoop.hbase.hbtop.mode.<a href="org/apache/hadoop/hbase/hbtop/mode/RequestCountPerSecond.html" title="class in org.apache.hadoop.hbase.hbtop.mode">RequestCountPerSecond</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/KeyValueUtil.html#previousKey-org.apache.hadoop.hbase.KeyValue-">previousKey(KeyValue)</a></span> - Static method in class org.apache.hadoop.hbase.<a href="org/apache/hadoop/hbase/KeyValueUtil.html" title="class in org.apache.hadoop.hbase">KeyValueUtil</a></dt>
@@ -108680,6 +108763,12 @@ service.</div>
 </dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/MemStoreCompactionStrategy.html#simpleMergeOrFlatten-org.apache.hadoop.hbase.regionserver.VersionedSegmentsList-java.lang.String-">simpleMergeOrFlatten(VersionedSegmentsList, String)</a></span> - Method in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MemStoreCompactionStrategy.html" title="class in org.apache.hadoop.hbase.regionserver">MemStoreCompactionStrategy</a></dt>
 <dd>&nbsp;</dd>
+<dt><a href="org/apache/hadoop/hbase/util/SimpleMovingAverage.html" title="class in org.apache.hadoop.hbase.util"><span class="typeNameLink">SimpleMovingAverage</span></a> - Class in <a href="org/apache/hadoop/hbase/util/package-summary.html">org.apache.hadoop.hbase.util</a></dt>
+<dd>
+<div class="block">SMA measure the overall average execution time of a specific method.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/util/SimpleMovingAverage.html#SimpleMovingAverage--">SimpleMovingAverage()</a></span> - Constructor for class org.apache.hadoop.hbase.util.<a href="org/apache/hadoop/hbase/util/SimpleMovingAverage.html" title="class in org.apache.hadoop.hbase.util">SimpleMovingAverage</a></dt>
+<dd>&nbsp;</dd>
 <dt><a href="org/apache/hadoop/hbase/util/SimpleMutableByteRange.html" title="class in org.apache.hadoop.hbase.util"><span class="typeNameLink">SimpleMutableByteRange</span></a> - Class in <a href="org/apache/hadoop/hbase/util/package-summary.html">org.apache.hadoop.hbase.util</a></dt>
 <dd>
 <div class="block">A basic mutable <a href="org/apache/hadoop/hbase/util/ByteRange.html" title="interface in org.apache.hadoop.hbase.util"><code>ByteRange</code></a> implementation.</div>
@@ -111718,6 +111807,10 @@ service.</div>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/util/JvmPauseMonitor.html#start--">start()</a></span> - Method in class org.apache.hadoop.hbase.util.<a href="org/apache/hadoop/hbase/util/JvmPauseMonitor.html" title="class in org.apache.hadoop.hbase.util">JvmPauseMonitor</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/util/MovingAverage.html#start--">start()</a></span> - Method in class org.apache.hadoop.hbase.util.<a href="org/apache/hadoop/hbase/util/MovingAverage.html" title="class in org.apache.hadoop.hbase.util">MovingAverage</a></dt>
+<dd>
+<div class="block">Mark start time of an execution.</div>
+</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/zookeeper/MasterMaintenanceModeTracker.html#start--">start()</a></span> - Method in class org.apache.hadoop.hbase.zookeeper.<a href="org/apache/hadoop/hbase/zookeeper/MasterMaintenanceModeTracker.html" title="class in org.apache.hadoop.hbase.zookeeper">MasterMaintenanceModeTracker</a></dt>
 <dd>
 <div class="block">Starts the tracking of whether master is in Maintenance Mode.</div>
@@ -112870,6 +112963,10 @@ service.</div>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/util/JvmPauseMonitor.html#stop--">stop()</a></span> - Method in class org.apache.hadoop.hbase.util.<a href="org/apache/hadoop/hbase/util/JvmPauseMonitor.html" title="class in org.apache.hadoop.hbase.util">JvmPauseMonitor</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/util/MovingAverage.html#stop-long-">stop(long)</a></span> - Method in class org.apache.hadoop.hbase.util.<a href="org/apache/hadoop/hbase/util/MovingAverage.html" title="class in org.apache.hadoop.hbase.util">MovingAverage</a></dt>
+<dd>
+<div class="block">Mark end time of an execution, and return its interval.</div>
+</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/zookeeper/ZKNodeTracker.html#stop--">stop()</a></span> - Method in class org.apache.hadoop.hbase.zookeeper.<a href="org/apache/hadoop/hbase/zookeeper/ZKNodeTracker.html" title="class in org.apache.hadoop.hbase.zookeeper">ZKNodeTracker</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/metrics2/impl/JmxCacheBuster.html#stop--">stop()</a></span> - Static method in class org.apache.hadoop.metrics2.impl.<a href="org/apache/hadoop/metrics2/impl/JmxCacheBuster.html" title="class in org.apache.hadoop.metrics2.impl">JmxCacheBuster</a></dt>
@@ -114036,6 +114133,8 @@ service.</div>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/util/ByteBufferArray.BufferIterator.html#sum">sum</a></span> - Variable in class org.apache.hadoop.hbase.util.<a href="org/apache/hadoop/hbase/util/ByteBufferArray.BufferIterator.html" title="class in org.apache.hadoop.hbase.util">ByteBufferArray.BufferIterator</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/util/WindowMovingAverage.html#sum-int-">sum(int)</a></span> - Method in class org.apache.hadoop.hbase.util.<a href="org/apache/hadoop/hbase/util/WindowMovingAverage.html" title="class in org.apache.hadoop.hbase.util">WindowMovingAverage</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/coprocessor/AsyncAggregationClient.html#sumByRegion-org.apache.hadoop.hbase.client.AsyncTable-org.apache.hadoop.hbase.coprocessor.ColumnInterpreter-org.apache.hadoop.hbase.client.Scan-">sumByRegion(AsyncTable&lt;?&gt;, ColumnInterpreter&lt;R, S, P, Q, T&gt;, Scan)</a></span> - Static method in class org.apache.hadoop.hbase.client.coprocessor.<a href="org/apache/hadoop/hbase/client/coprocessor/AsyncAggregationClient. [...]
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/util/HBaseFsck.PrintingErrorReporter.html#summarize--">summarize()</a></span> - Method in class org.apache.hadoop.hbase.util.<a href="org/apache/hadoop/hbase/util/HBaseFsck.PrintingErrorReporter.html" title="class in org.apache.hadoop.hbase.util">HBaseFsck.PrintingErrorReporter</a></dt>
@@ -116741,6 +116840,12 @@ service.</div>
 &nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/ConnectionUtils.html#timelineConsistentRead-org.apache.hadoop.hbase.client.AsyncRegionLocator-org.apache.hadoop.hbase.TableName-org.apache.hadoop.hbase.client.Query-byte:A-org.apache.hadoop.hbase.client.RegionLocateType-java.util.function.Function-long-long-org.apache.hbase.thirdparty.io.netty.util.Timer-java.util.Optional-">timelineConsistentRead(AsyncRegionLocator, TableName, Query, byte[], RegionLocateType, Funct [...]
 <dd>&nbsp;</dd>
+<dt><a href="org/apache/hadoop/hbase/util/TimeMeasurable.html" title="interface in org.apache.hadoop.hbase.util"><span class="typeNameLink">TimeMeasurable</span></a>&lt;<a href="org/apache/hadoop/hbase/util/TimeMeasurable.html" title="type parameter in TimeMeasurable">T</a>&gt; - Interface in <a href="org/apache/hadoop/hbase/util/package-summary.html">org.apache.hadoop.hbase.util</a></dt>
+<dd>
+<div class="block">Methods that implement this interface can be measured elapsed time.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/ScheduledChore.html#timeMeasurement">timeMeasurement</a></span> - Variable in class org.apache.hadoop.hbase.<a href="org/apache/hadoop/hbase/ScheduledChore.html" title="class in org.apache.hadoop.hbase">ScheduledChore</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/FailureInfo.html#timeOfFirstFailureMilliSec">timeOfFirstFailureMilliSec</a></span> - Variable in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/FailureInfo.html" title="class in org.apache.hadoop.hbase.client">FailureInfo</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/exceptions/PreemptiveFastFailException.html#timeOfFirstFailureMilliSec">timeOfFirstFailureMilliSec</a></span> - Variable in exception org.apache.hadoop.hbase.exceptions.<a href="org/apache/hadoop/hbase/exceptions/PreemptiveFastFailException.html" title="class in org.apache.hadoop.hbase.exceptions">PreemptiveFastFailException</a></dt>
@@ -121518,6 +121623,16 @@ service.</div>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/HMobStore.html#updateMobScanCellsSize-long-">updateMobScanCellsSize(long)</a></span> - Method in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/HMobStore.html" title="class in org.apache.hadoop.hbase.regionserver">HMobStore</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/util/ExponentialMovingAverage.html#updateMostRecentTime-long-">updateMostRecentTime(long)</a></span> - Method in class org.apache.hadoop.hbase.util.<a href="org/apache/hadoop/hbase/util/ExponentialMovingAverage.html" title="class in org.apache.hadoop.hbase.util">ExponentialMovingAverage</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/util/MovingAverage.html#updateMostRecentTime-long-">updateMostRecentTime(long)</a></span> - Method in class org.apache.hadoop.hbase.util.<a href="org/apache/hadoop/hbase/util/MovingAverage.html" title="class in org.apache.hadoop.hbase.util">MovingAverage</a></dt>
+<dd>
+<div class="block">Update the most recent data.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/util/SimpleMovingAverage.html#updateMostRecentTime-long-">updateMostRecentTime(long)</a></span> - Method in class org.apache.hadoop.hbase.util.<a href="org/apache/hadoop/hbase/util/SimpleMovingAverage.html" title="class in org.apache.hadoop.hbase.util">SimpleMovingAverage</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/util/WindowMovingAverage.html#updateMostRecentTime-long-">updateMostRecentTime(long)</a></span> - Method in class org.apache.hadoop.hbase.util.<a href="org/apache/hadoop/hbase/util/WindowMovingAverage.html" title="class in org.apache.hadoop.hbase.util">WindowMovingAverage</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/RSRpcServices.html#updateMutationMetrics-org.apache.hadoop.hbase.regionserver.HRegion-long-boolean-boolean-">updateMutationMetrics(HRegion, long, boolean, boolean)</a></span> - Method in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/RSRpcServices.html" title="class in org.apache.hadoop.hbase.regionserver">RSRpcServices</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/security/access/AuthManager.html#updateNamespaceCache-java.lang.String-org.apache.hbase.thirdparty.com.google.common.collect.ListMultimap-">updateNamespaceCache(String, ListMultimap&lt;String, Permission&gt;)</a></span> - Method in class org.apache.hadoop.hbase.security.access.<a href="org/apache/hadoop/hbase/security/access/AuthManager.html" title="class in org.apache.hadoop.hbase.security.access">AuthManager</a></dt>
@@ -126094,6 +126209,15 @@ the order they are declared.</div>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/HDFSBlocksDistribution.HostAndWeight.WeightComparator.html#WeightComparator--">WeightComparator()</a></span> - Constructor for class org.apache.hadoop.hbase.<a href="org/apache/hadoop/hbase/HDFSBlocksDistribution.HostAndWeight.WeightComparator.html" title="class in org.apache.hadoop.hbase">HDFSBlocksDistribution.HostAndWeight.WeightComparator</a></dt>
 <dd>&nbsp;</dd>
+<dt><a href="org/apache/hadoop/hbase/util/WeightedMovingAverage.html" title="class in org.apache.hadoop.hbase.util"><span class="typeNameLink">WeightedMovingAverage</span></a> - Class in <a href="org/apache/hadoop/hbase/util/package-summary.html">org.apache.hadoop.hbase.util</a></dt>
+<dd>
+<div class="block">Different from SMA <a href="org/apache/hadoop/hbase/util/SimpleMovingAverage.html" title="class in org.apache.hadoop.hbase.util"><code>SimpleMovingAverage</code></a>, WeightedMovingAverage gives each data different
+ weight.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/util/WeightedMovingAverage.html#WeightedMovingAverage--">WeightedMovingAverage()</a></span> - Constructor for class org.apache.hadoop.hbase.util.<a href="org/apache/hadoop/hbase/util/WeightedMovingAverage.html" title="class in org.apache.hadoop.hbase.util">WeightedMovingAverage</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/util/WeightedMovingAverage.html#WeightedMovingAverage-int-">WeightedMovingAverage(int)</a></span> - Constructor for class org.apache.hadoop.hbase.util.<a href="org/apache/hadoop/hbase/util/WeightedMovingAverage.html" title="class in org.apache.hadoop.hbase.util">WeightedMovingAverage</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/ipc/AbstractRpcClient.html#WHEEL_TIMER">WHEEL_TIMER</a></span> - Static variable in class org.apache.hadoop.hbase.ipc.<a href="org/apache/hadoop/hbase/ipc/AbstractRpcClient.html" title="class in org.apache.hadoop.hbase.ipc">AbstractRpcClient</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/RetriesExhaustedException.ThrowableWithExtraContext.html#when">when</a></span> - Variable in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/RetriesExhaustedException.ThrowableWithExtraContext.html" title="class in org.apache.hadoop.hbase.client">RetriesExhaustedException.ThrowableWithExtraContext</a></dt>
@@ -126139,6 +126263,14 @@ the order they are declared.</div>
 <dd>
 <div class="block">How big a range of timestamps fit inside the window in milliseconds.</div>
 </dd>
+<dt><a href="org/apache/hadoop/hbase/util/WindowMovingAverage.html" title="class in org.apache.hadoop.hbase.util"><span class="typeNameLink">WindowMovingAverage</span></a> - Class in <a href="org/apache/hadoop/hbase/util/package-summary.html">org.apache.hadoop.hbase.util</a></dt>
+<dd>
+<div class="block">Instead of calculate a whole time average, this class focus on the last N.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/util/WindowMovingAverage.html#WindowMovingAverage--">WindowMovingAverage()</a></span> - Constructor for class org.apache.hadoop.hbase.util.<a href="org/apache/hadoop/hbase/util/WindowMovingAverage.html" title="class in org.apache.hadoop.hbase.util">WindowMovingAverage</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/util/WindowMovingAverage.html#WindowMovingAverage-int-">WindowMovingAverage(int)</a></span> - Constructor for class org.apache.hadoop.hbase.util.<a href="org/apache/hadoop/hbase/util/WindowMovingAverage.html" title="class in org.apache.hadoop.hbase.util">WindowMovingAverage</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/util/FSUtils.html#WINDOWS">WINDOWS</a></span> - Static variable in class org.apache.hadoop.hbase.util.<a href="org/apache/hadoop/hbase/util/FSUtils.html" title="class in org.apache.hadoop.hbase.util">FSUtils</a></dt>
 <dd>
 <div class="block">Set to true on Windows platforms</div>
diff --git a/devapidocs/org/apache/hadoop/hbase/ChoreService.ChoreServiceThreadFactory.html b/devapidocs/org/apache/hadoop/hbase/ChoreService.ChoreServiceThreadFactory.html
index dc5d783..99687fb 100644
--- a/devapidocs/org/apache/hadoop/hbase/ChoreService.ChoreServiceThreadFactory.html
+++ b/devapidocs/org/apache/hadoop/hbase/ChoreService.ChoreServiceThreadFactory.html
@@ -117,7 +117,7 @@ var activeTableTab = "activeTableTab";
 </dl>
 <hr>
 <br>
-<pre>static class <a href="../../../../src-html/org/apache/hadoop/hbase/ChoreService.html#line.252">ChoreService.ChoreServiceThreadFactory</a>
+<pre>static class <a href="../../../../src-html/org/apache/hadoop/hbase/ChoreService.html#line.253">ChoreService.ChoreServiceThreadFactory</a>
 extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
 implements <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ThreadFactory.html?is-external=true" title="class or interface in java.util.concurrent">ThreadFactory</a></pre>
 <div class="block">Custom ThreadFactory used with the ScheduledThreadPoolExecutor so that all the threads are
@@ -216,7 +216,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurre
 <ul class="blockList">
 <li class="blockList">
 <h4>threadPrefix</h4>
-<pre>private final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../src-html/org/apache/hadoop/hbase/ChoreService.ChoreServiceThreadFactory.html#line.253">threadPrefix</a></pre>
+<pre>private final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../src-html/org/apache/hadoop/hbase/ChoreService.ChoreServiceThreadFactory.html#line.254">threadPrefix</a></pre>
 </li>
 </ul>
 <a name="THREAD_NAME_SUFFIX">
@@ -225,7 +225,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurre
 <ul class="blockList">
 <li class="blockList">
 <h4>THREAD_NAME_SUFFIX</h4>
-<pre>private static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../src-html/org/apache/hadoop/hbase/ChoreService.ChoreServiceThreadFactory.html#line.254">THREAD_NAME_SUFFIX</a></pre>
+<pre>private static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../src-html/org/apache/hadoop/hbase/ChoreService.ChoreServiceThreadFactory.html#line.255">THREAD_NAME_SUFFIX</a></pre>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
 <dd><a href="../../../../constant-values.html#org.apache.hadoop.hbase.ChoreService.ChoreServiceThreadFactory.THREAD_NAME_SUFFIX">Constant Field Values</a></dd>
@@ -238,7 +238,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurre
 <ul class="blockListLast">
 <li class="blockList">
 <h4>threadNumber</h4>
-<pre>private&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/atomic/AtomicInteger.html?is-external=true" title="class or interface in java.util.concurrent.atomic">AtomicInteger</a> <a href="../../../../src-html/org/apache/hadoop/hbase/ChoreService.ChoreServiceThreadFactory.html#line.255">threadNumber</a></pre>
+<pre>private&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/atomic/AtomicInteger.html?is-external=true" title="class or interface in java.util.concurrent.atomic">AtomicInteger</a> <a href="../../../../src-html/org/apache/hadoop/hbase/ChoreService.ChoreServiceThreadFactory.html#line.256">threadNumber</a></pre>
 </li>
 </ul>
 </li>
@@ -255,7 +255,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurre
 <ul class="blockListLast">
 <li class="blockList">
 <h4>ChoreServiceThreadFactory</h4>
-<pre>public&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ChoreService.ChoreServiceThreadFactory.html#line.260">ChoreServiceThreadFactory</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;threadPrefix)</pre>
+<pre>public&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ChoreService.ChoreServiceThreadFactory.html#line.261">ChoreServiceThreadFactory</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;threadPrefix)</pre>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
 <dd><code>threadPrefix</code> - The prefix given to all threads created by this factory</dd>
@@ -276,7 +276,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurre
 <ul class="blockListLast">
 <li class="blockList">
 <h4>newThread</h4>
-<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Thread.html?is-external=true" title="class or interface in java.lang">Thread</a>&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ChoreService.ChoreServiceThreadFactory.html#line.265">newThread</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Runnable.html?is-external=true" title="class or interface in java.lang">Runnable</a>&nbsp;r)</pre>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Thread.html?is-external=true" title="class or interface in java.lang">Thread</a>&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ChoreService.ChoreServiceThreadFactory.html#line.266">newThread</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Runnable.html?is-external=true" title="class or interface in java.lang">Runnable</a>&nbsp;r)</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ThreadFactory.html?is-external=true#newThread-java.lang.Runnable-" title="class or interface in java.util.concurrent">newThread</a></code>&nbsp;in interface&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ThreadFactory.html?is-external=true" title="class or interface in java.util.concurrent">ThreadFactory</a></code></dd>
diff --git a/devapidocs/org/apache/hadoop/hbase/ChoreService.html b/devapidocs/org/apache/hadoop/hbase/ChoreService.html
index 623a384..10456b2 100644
--- a/devapidocs/org/apache/hadoop/hbase/ChoreService.html
+++ b/devapidocs/org/apache/hadoop/hbase/ChoreService.html
@@ -527,7 +527,7 @@ public&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ChoreService.h
 <ul class="blockList">
 <li class="blockList">
 <h4>rescheduleChore</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ChoreService.html#line.175">rescheduleChore</a>(<a href="../../../../org/apache/hadoop/hbase/ScheduledChore.html" title="class in org.apache.hadoop.hbase">ScheduledChore</a>&nbsp;chore)</pre>
+<pre>private&nbsp;void&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ChoreService.html#line.176">rescheduleChore</a>(<a href="../../../../org/apache/hadoop/hbase/ScheduledChore.html" title="class in org.apache.hadoop.hbase">ScheduledChore</a>&nbsp;chore)</pre>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
 <dd><code>chore</code> - The Chore to be rescheduled. If the chore is not scheduled with this ChoreService
@@ -542,7 +542,7 @@ public&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ChoreService.h
 <li class="blockList">
 <h4>cancelChore</h4>
 <pre>@InterfaceAudience.Private
-public&nbsp;void&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ChoreService.html#line.187">cancelChore</a>(<a href="../../../../org/apache/hadoop/hbase/ScheduledChore.html" title="class in org.apache.hadoop.hbase">ScheduledChore</a>&nbsp;chore)</pre>
+public&nbsp;void&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ChoreService.html#line.188">cancelChore</a>(<a href="../../../../org/apache/hadoop/hbase/ScheduledChore.html" title="class in org.apache.hadoop.hbase">ScheduledChore</a>&nbsp;chore)</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/apache/hadoop/hbase/ScheduledChore.ChoreServicer.html#cancelChore-org.apache.hadoop.hbase.ScheduledChore-">ScheduledChore.ChoreServicer</a></code></span></div>
 <div class="block">Cancel any ongoing schedules that this chore has with the implementer of this interface.</div>
 <dl>
@@ -558,7 +558,7 @@ public&nbsp;void&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/Chor
 <li class="blockList">
 <h4>cancelChore</h4>
 <pre>@InterfaceAudience.Private
-public&nbsp;void&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ChoreService.html#line.193">cancelChore</a>(<a href="../../../../org/apache/hadoop/hbase/ScheduledChore.html" title="class in org.apache.hadoop.hbase">ScheduledChore</a>&nbsp;chore,
+public&nbsp;void&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ChoreService.html#line.194">cancelChore</a>(<a href="../../../../org/apache/hadoop/hbase/ScheduledChore.html" title="class in org.apache.hadoop.hbase">ScheduledChore</a>&nbsp;chore,
                                                    boolean&nbsp;mayInterruptIfRunning)</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
@@ -573,7 +573,7 @@ public&nbsp;void&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/Chor
 <li class="blockList">
 <h4>isChoreScheduled</h4>
 <pre>@InterfaceAudience.Private
-public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ChoreService.html#line.210">isChoreScheduled</a>(<a href="../../../../org/apache/hadoop/hbase/ScheduledChore.html" title="class in org.apache.hadoop.hbase">ScheduledChore</a>&nbsp;chore)</pre>
+public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ChoreService.html#line.211">isChoreScheduled</a>(<a href="../../../../org/apache/hadoop/hbase/ScheduledChore.html" title="class in org.apache.hadoop.hbase">ScheduledChore</a>&nbsp;chore)</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../org/apache/hadoop/hbase/ScheduledChore.ChoreServicer.html#isChoreScheduled-org.apache.hadoop.hbase.ScheduledChore-">isChoreScheduled</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../org/apache/hadoop/hbase/ScheduledChore.ChoreServicer.html" title="interface in org.apache.hadoop.hbase">ScheduledChore.ChoreServicer</a></code></dd>
@@ -589,7 +589,7 @@ public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/C
 <li class="blockList">
 <h4>triggerNow</h4>
 <pre>@InterfaceAudience.Private
-public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ChoreService.html#line.217">triggerNow</a>(<a href="../../../../org/apache/hadoop/hbase/ScheduledChore.html" title="class in org.apache.hadoop.hbase">ScheduledChore</a>&nbsp;chore)</pre>
+public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ChoreService.html#line.218">triggerNow</a>(<a href="../../../../org/apache/hadoop/hbase/ScheduledChore.html" title="class in org.apache.hadoop.hbase">ScheduledChore</a>&nbsp;chore)</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/apache/hadoop/hbase/ScheduledChore.ChoreServicer.html#triggerNow-org.apache.hadoop.hbase.ScheduledChore-">ScheduledChore.ChoreServicer</a></code></span></div>
 <div class="block">This method tries to execute the chore immediately. If the chore is executing at the time of
  this call, the chore will begin another execution as soon as the current execution finishes
@@ -609,7 +609,7 @@ public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/C
 <ul class="blockList">
 <li class="blockList">
 <h4>getNumberOfScheduledChores</h4>
-<pre>int&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ChoreService.html#line.229">getNumberOfScheduledChores</a>()</pre>
+<pre>int&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ChoreService.html#line.230">getNumberOfScheduledChores</a>()</pre>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>number of chores that this service currently has scheduled</dd>
@@ -622,7 +622,7 @@ public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/C
 <ul class="blockList">
 <li class="blockList">
 <h4>getNumberOfChoresMissingStartTime</h4>
-<pre>int&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ChoreService.html#line.237">getNumberOfChoresMissingStartTime</a>()</pre>
+<pre>int&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ChoreService.html#line.238">getNumberOfChoresMissingStartTime</a>()</pre>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>number of chores that this service currently has scheduled that are missing their
@@ -636,7 +636,7 @@ public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/C
 <ul class="blockList">
 <li class="blockList">
 <h4>getCorePoolSize</h4>
-<pre>int&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ChoreService.html#line.244">getCorePoolSize</a>()</pre>
+<pre>int&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ChoreService.html#line.245">getCorePoolSize</a>()</pre>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>number of threads in the core pool of the underlying ScheduledThreadPoolExecutor</dd>
@@ -649,7 +649,7 @@ public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/C
 <ul class="blockList">
 <li class="blockList">
 <h4>requestCorePoolIncrease</h4>
-<pre>private&nbsp;boolean&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ChoreService.html#line.279">requestCorePoolIncrease</a>()</pre>
+<pre>private&nbsp;boolean&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ChoreService.html#line.280">requestCorePoolIncrease</a>()</pre>
 <div class="block">Represents a request to increase the number of core pool threads. Typically a request
  originates from the fact that the current core pool size is not sufficient to service all of
  the currently running Chores</div>
@@ -665,7 +665,7 @@ public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/C
 <ul class="blockList">
 <li class="blockList">
 <h4>requestCorePoolDecrease</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ChoreService.html#line.296">requestCorePoolDecrease</a>()</pre>
+<pre>private&nbsp;void&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ChoreService.html#line.297">requestCorePoolDecrease</a>()</pre>
 <div class="block">Represents a request to decrease the number of core pool threads. Typically a request
  originates from the fact that the current core pool size is more than sufficient to service the
  running Chores.</div>
@@ -678,7 +678,7 @@ public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/C
 <li class="blockList">
 <h4>onChoreMissedStartTime</h4>
 <pre>@InterfaceAudience.Private
-public&nbsp;void&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ChoreService.html#line.305">onChoreMissedStartTime</a>(<a href="../../../../org/apache/hadoop/hbase/ScheduledChore.html" title="class in org.apache.hadoop.hbase">ScheduledChore</a>&nbsp;chore)</pre>
+public&nbsp;void&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ChoreService.html#line.306">onChoreMissedStartTime</a>(<a href="../../../../org/apache/hadoop/hbase/ScheduledChore.html" title="class in org.apache.hadoop.hbase">ScheduledChore</a>&nbsp;chore)</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../org/apache/hadoop/hbase/ScheduledChore.ChoreServicer.html#onChoreMissedStartTime-org.apache.hadoop.hbase.ScheduledChore-">ScheduledChore.ChoreServicer</a></code></span></div>
 <div class="block">A callback that tells the implementer of this interface that one of the scheduled chores is
  missing its start time. The implication of a chore missing its start time is that the
@@ -700,7 +700,7 @@ public&nbsp;void&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/Chor
 <ul class="blockList">
 <li class="blockList">
 <h4>shutdown</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ChoreService.html#line.328">shutdown</a>()</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ChoreService.html#line.329">shutdown</a>()</pre>
 <div class="block">shutdown the service. Any chores that are scheduled for execution will be cancelled. Any chores
  in the middle of execution will be interrupted and shutdown. This service will be unusable
  after this method has been called (i.e. future scheduling attempts will fail).</div>
@@ -712,7 +712,7 @@ public&nbsp;void&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/Chor
 <ul class="blockList">
 <li class="blockList">
 <h4>isShutdown</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ChoreService.html#line.342">isShutdown</a>()</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ChoreService.html#line.343">isShutdown</a>()</pre>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>true when the service is shutdown and thus cannot be used anymore</dd>
@@ -725,7 +725,7 @@ public&nbsp;void&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/Chor
 <ul class="blockList">
 <li class="blockList">
 <h4>isTerminated</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ChoreService.html#line.349">isTerminated</a>()</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ChoreService.html#line.350">isTerminated</a>()</pre>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>true when the service is shutdown and all threads have terminated</dd>
@@ -738,7 +738,7 @@ public&nbsp;void&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/Chor
 <ul class="blockList">
 <li class="blockList">
 <h4>cancelAllChores</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ChoreService.html#line.353">cancelAllChores</a>(boolean&nbsp;mayInterruptIfRunning)</pre>
+<pre>private&nbsp;void&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ChoreService.html#line.354">cancelAllChores</a>(boolean&nbsp;mayInterruptIfRunning)</pre>
 </li>
 </ul>
 <a name="printChoreDetails-java.lang.String-org.apache.hadoop.hbase.ScheduledChore-">
@@ -747,7 +747,7 @@ public&nbsp;void&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/Chor
 <ul class="blockList">
 <li class="blockList">
 <h4>printChoreDetails</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ChoreService.html#line.370">printChoreDetails</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;header,
+<pre>private&nbsp;void&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ChoreService.html#line.371">printChoreDetails</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;header,
                                <a href="../../../../org/apache/hadoop/hbase/ScheduledChore.html" title="class in org.apache.hadoop.hbase">ScheduledChore</a>&nbsp;chore)</pre>
 <div class="block">Prints a summary of important details about the chore. Used for debugging purposes</div>
 </li>
@@ -758,7 +758,7 @@ public&nbsp;void&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/Chor
 <ul class="blockListLast">
 <li class="blockList">
 <h4>printChoreServiceDetails</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ChoreService.html#line.385">printChoreServiceDetails</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;header)</pre>
+<pre>private&nbsp;void&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ChoreService.html#line.386">printChoreServiceDetails</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;header)</pre>
 <div class="block">Prints a summary of important details about the service. Used for debugging purposes</div>
 </li>
 </ul>
diff --git a/devapidocs/org/apache/hadoop/hbase/ScheduledChore.ChoreServicer.html b/devapidocs/org/apache/hadoop/hbase/ScheduledChore.ChoreServicer.html
index 7c3cf5d..2e9b5b3 100644
--- a/devapidocs/org/apache/hadoop/hbase/ScheduledChore.ChoreServicer.html
+++ b/devapidocs/org/apache/hadoop/hbase/ScheduledChore.ChoreServicer.html
@@ -109,7 +109,7 @@ var activeTableTab = "activeTableTab";
 </dl>
 <hr>
 <br>
-<pre>static interface <a href="../../../../src-html/org/apache/hadoop/hbase/ScheduledChore.html#line.82">ScheduledChore.ChoreServicer</a></pre>
+<pre>static interface <a href="../../../../src-html/org/apache/hadoop/hbase/ScheduledChore.html#line.86">ScheduledChore.ChoreServicer</a></pre>
 </li>
 </ul>
 </div>
@@ -177,7 +177,7 @@ var activeTableTab = "activeTableTab";
 <ul class="blockList">
 <li class="blockList">
 <h4>cancelChore</h4>
-<pre>void&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ScheduledChore.ChoreServicer.html#line.86">cancelChore</a>(<a href="../../../../org/apache/hadoop/hbase/ScheduledChore.html" title="class in org.apache.hadoop.hbase">ScheduledChore</a>&nbsp;chore)</pre>
+<pre>void&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ScheduledChore.ChoreServicer.html#line.90">cancelChore</a>(<a href="../../../../org/apache/hadoop/hbase/ScheduledChore.html" title="class in org.apache.hadoop.hbase">ScheduledChore</a>&nbsp;chore)</pre>
 <div class="block">Cancel any ongoing schedules that this chore has with the implementer of this interface.</div>
 </li>
 </ul>
@@ -187,7 +187,7 @@ var activeTableTab = "activeTableTab";
 <ul class="blockList">
 <li class="blockList">
 <h4>cancelChore</h4>
-<pre>void&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ScheduledChore.ChoreServicer.html#line.87">cancelChore</a>(<a href="../../../../org/apache/hadoop/hbase/ScheduledChore.html" title="class in org.apache.hadoop.hbase">ScheduledChore</a>&nbsp;chore,
+<pre>void&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ScheduledChore.ChoreServicer.html#line.91">cancelChore</a>(<a href="../../../../org/apache/hadoop/hbase/ScheduledChore.html" title="class in org.apache.hadoop.hbase">ScheduledChore</a>&nbsp;chore,
                  boolean&nbsp;mayInterruptIfRunning)</pre>
 </li>
 </ul>
@@ -197,7 +197,7 @@ var activeTableTab = "activeTableTab";
 <ul class="blockList">
 <li class="blockList">
 <h4>isChoreScheduled</h4>
-<pre>boolean&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ScheduledChore.ChoreServicer.html#line.92">isChoreScheduled</a>(<a href="../../../../org/apache/hadoop/hbase/ScheduledChore.html" title="class in org.apache.hadoop.hbase">ScheduledChore</a>&nbsp;chore)</pre>
+<pre>boolean&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ScheduledChore.ChoreServicer.html#line.96">isChoreScheduled</a>(<a href="../../../../org/apache/hadoop/hbase/ScheduledChore.html" title="class in org.apache.hadoop.hbase">ScheduledChore</a>&nbsp;chore)</pre>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>true when the chore is scheduled with the implementer of this interface</dd>
@@ -210,7 +210,7 @@ var activeTableTab = "activeTableTab";
 <ul class="blockList">
 <li class="blockList">
 <h4>triggerNow</h4>
-<pre>boolean&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ScheduledChore.ChoreServicer.html#line.101">triggerNow</a>(<a href="../../../../org/apache/hadoop/hbase/ScheduledChore.html" title="class in org.apache.hadoop.hbase">ScheduledChore</a>&nbsp;chore)</pre>
+<pre>boolean&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ScheduledChore.ChoreServicer.html#line.105">triggerNow</a>(<a href="../../../../org/apache/hadoop/hbase/ScheduledChore.html" title="class in org.apache.hadoop.hbase">ScheduledChore</a>&nbsp;chore)</pre>
 <div class="block">This method tries to execute the chore immediately. If the chore is executing at the time of
  this call, the chore will begin another execution as soon as the current execution finishes
  <p>
@@ -227,7 +227,7 @@ var activeTableTab = "activeTableTab";
 <ul class="blockListLast">
 <li class="blockList">
 <h4>onChoreMissedStartTime</h4>
-<pre>void&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ScheduledChore.ChoreServicer.html#line.112">onChoreMissedStartTime</a>(<a href="../../../../org/apache/hadoop/hbase/ScheduledChore.html" title="class in org.apache.hadoop.hbase">ScheduledChore</a>&nbsp;chore)</pre>
+<pre>void&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ScheduledChore.ChoreServicer.html#line.116">onChoreMissedStartTime</a>(<a href="../../../../org/apache/hadoop/hbase/ScheduledChore.html" title="class in org.apache.hadoop.hbase">ScheduledChore</a>&nbsp;chore)</pre>
 <div class="block">A callback that tells the implementer of this interface that one of the scheduled chores is
  missing its start time. The implication of a chore missing its start time is that the
  service's current means of scheduling may not be sufficient to handle the number of ongoing
diff --git a/devapidocs/org/apache/hadoop/hbase/ScheduledChore.html b/devapidocs/org/apache/hadoop/hbase/ScheduledChore.html
index a490f2b..ddaed04 100644
--- a/devapidocs/org/apache/hadoop/hbase/ScheduledChore.html
+++ b/devapidocs/org/apache/hadoop/hbase/ScheduledChore.html
@@ -118,7 +118,7 @@ var activeTableTab = "activeTableTab";
 <hr>
 <br>
 <pre>@InterfaceAudience.Public
-public abstract class <a href="../../../../src-html/org/apache/hadoop/hbase/ScheduledChore.html#line.43">ScheduledChore</a>
+public abstract class <a href="../../../../src-html/org/apache/hadoop/hbase/ScheduledChore.html#line.45">ScheduledChore</a>
 extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
 implements <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Runnable.html?is-external=true" title="class or interface in java.lang">Runnable</a></pre>
 <div class="block">ScheduledChore is a task performed on a period in hbase. ScheduledChores become active once
@@ -214,16 +214,20 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Runnable
 </td>
 </tr>
 <tr class="rowColor">
+<td class="colFirst"><code>private <a href="../../../../org/apache/hadoop/hbase/util/MovingAverage.html" title="class in org.apache.hadoop.hbase.util">MovingAverage</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/hadoop/hbase/ScheduledChore.html#timeMeasurement">timeMeasurement</a></span></code>&nbsp;</td>
+</tr>
+<tr class="altColor">
 <td class="colFirst"><code>private long</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/hadoop/hbase/ScheduledChore.html#timeOfLastRun">timeOfLastRun</a></span></code>
 <div class="block">Variables that encapsulate the meaningful state information</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>private long</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/hadoop/hbase/ScheduledChore.html#timeOfThisRun">timeOfThisRun</a></span></code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>private <a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/TimeUnit.html?is-external=true" title="class or interface in java.util.concurrent">TimeUnit</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/hadoop/hbase/ScheduledChore.html#timeUnit">timeUnit</a></span></code>&nbsp;</td>
 </tr>
@@ -428,7 +432,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Runnable
 <ul class="blockList">
 <li class="blockList">
 <h4>LOG</h4>
-<pre>private static final&nbsp;org.slf4j.Logger <a href="../../../../src-html/org/apache/hadoop/hbase/ScheduledChore.html#line.44">LOG</a></pre>
+<pre>private static final&nbsp;org.slf4j.Logger <a href="../../../../src-html/org/apache/hadoop/hbase/ScheduledChore.html#line.46">LOG</a></pre>
 </li>
 </ul>
 <a name="name">
@@ -437,7 +441,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Runnable
 <ul class="blockList">
 <li class="blockList">
 <h4>name</h4>
-<pre>private final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../src-html/org/apache/hadoop/hbase/ScheduledChore.html#line.46">name</a></pre>
+<pre>private final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../src-html/org/apache/hadoop/hbase/ScheduledChore.html#line.48">name</a></pre>
 </li>
 </ul>
 <a name="DEFAULT_TIME_UNIT">
@@ -446,7 +450,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Runnable
 <ul class="blockList">
 <li class="blockList">
 <h4>DEFAULT_TIME_UNIT</h4>
-<pre>private static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/TimeUnit.html?is-external=true" title="class or interface in java.util.concurrent">TimeUnit</a> <a href="../../../../src-html/org/apache/hadoop/hbase/ScheduledChore.html#line.51">DEFAULT_TIME_UNIT</a></pre>
+<pre>private static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/TimeUnit.html?is-external=true" title="class or interface in java.util.concurrent">TimeUnit</a> <a href="../../../../src-html/org/apache/hadoop/hbase/ScheduledChore.html#line.53">DEFAULT_TIME_UNIT</a></pre>
 <div class="block">Default values for scheduling parameters should they be excluded during construction</div>
 </li>
 </ul>
@@ -456,7 +460,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Runnable
 <ul class="blockList">
 <li class="blockList">
 <h4>DEFAULT_INITIAL_DELAY</h4>
-<pre>private static final&nbsp;long <a href="../../../../src-html/org/apache/hadoop/hbase/ScheduledChore.html#line.52">DEFAULT_INITIAL_DELAY</a></pre>
+<pre>private static final&nbsp;long <a href="../../../../src-html/org/apache/hadoop/hbase/ScheduledChore.html#line.54">DEFAULT_INITIAL_DELAY</a></pre>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
 <dd><a href="../../../../constant-values.html#org.apache.hadoop.hbase.ScheduledChore.DEFAULT_INITIAL_DELAY">Constant Field Values</a></dd>
@@ -469,7 +473,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Runnable
 <ul class="blockList">
 <li class="blockList">
 <h4>period</h4>
-<pre>private final&nbsp;int <a href="../../../../src-html/org/apache/hadoop/hbase/ScheduledChore.html#line.57">period</a></pre>
+<pre>private final&nbsp;int <a href="../../../../src-html/org/apache/hadoop/hbase/ScheduledChore.html#line.59">period</a></pre>
 <div class="block">Scheduling parameters. Used by ChoreService when scheduling the chore to run periodically</div>
 </li>
 </ul>
@@ -479,7 +483,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Runnable
 <ul class="blockList">
 <li class="blockList">
 <h4>timeUnit</h4>
-<pre>private final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/TimeUnit.html?is-external=true" title="class or interface in java.util.concurrent">TimeUnit</a> <a href="../../../../src-html/org/apache/hadoop/hbase/ScheduledChore.html#line.58">timeUnit</a></pre>
+<pre>private final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/TimeUnit.html?is-external=true" title="class or interface in java.util.concurrent">TimeUnit</a> <a href="../../../../src-html/org/apache/hadoop/hbase/ScheduledChore.html#line.60">timeUnit</a></pre>
 </li>
 </ul>
 <a name="initialDelay">
@@ -488,7 +492,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Runnable
 <ul class="blockList">
 <li class="blockList">
 <h4>initialDelay</h4>
-<pre>private final&nbsp;long <a href="../../../../src-html/org/apache/hadoop/hbase/ScheduledChore.html#line.59">initialDelay</a></pre>
+<pre>private final&nbsp;long <a href="../../../../src-html/org/apache/hadoop/hbase/ScheduledChore.html#line.61">initialDelay</a></pre>
 </li>
 </ul>
 <a name="choreServicer">
@@ -497,7 +501,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Runnable
 <ul class="blockList">
 <li class="blockList">
 <h4>choreServicer</h4>
-<pre>private&nbsp;<a href="../../../../org/apache/hadoop/hbase/ScheduledChore.ChoreServicer.html" title="interface in org.apache.hadoop.hbase">ScheduledChore.ChoreServicer</a> <a href="../../../../src-html/org/apache/hadoop/hbase/ScheduledChore.html#line.65">choreServicer</a></pre>
+<pre>private&nbsp;<a href="../../../../org/apache/hadoop/hbase/ScheduledChore.ChoreServicer.html" title="interface in org.apache.hadoop.hbase">ScheduledChore.ChoreServicer</a> <a href="../../../../src-html/org/apache/hadoop/hbase/ScheduledChore.html#line.67">choreServicer</a></pre>
 <div class="block">Interface to the ChoreService that this ScheduledChore is scheduled with. null if the chore is
  not scheduled.</div>
 </li>
@@ -508,7 +512,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Runnable
 <ul class="blockList">
 <li class="blockList">
 <h4>timeOfLastRun</h4>
-<pre>private&nbsp;long <a href="../../../../src-html/org/apache/hadoop/hbase/ScheduledChore.html#line.70">timeOfLastRun</a></pre>
+<pre>private&nbsp;long <a href="../../../../src-html/org/apache/hadoop/hbase/ScheduledChore.html#line.72">timeOfLastRun</a></pre>
 <div class="block">Variables that encapsulate the meaningful state information</div>
 </li>
 </ul>
@@ -518,7 +522,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Runnable
 <ul class="blockList">
 <li class="blockList">
 <h4>timeOfThisRun</h4>
-<pre>private&nbsp;long <a href="../../../../src-html/org/apache/hadoop/hbase/ScheduledChore.html#line.71">timeOfThisRun</a></pre>
+<pre>private&nbsp;long <a href="../../../../src-html/org/apache/hadoop/hbase/ScheduledChore.html#line.73">timeOfThisRun</a></pre>
 </li>
 </ul>
 <a name="initialChoreComplete">
@@ -527,22 +531,31 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Runnable
 <ul class="blockList">
 <li class="blockList">
 <h4>initialChoreComplete</h4>
-<pre>private&nbsp;boolean <a href="../../../../src-html/org/apache/hadoop/hbase/ScheduledChore.html#line.72">initialChoreComplete</a></pre>
+<pre>private&nbsp;boolean <a href="../../../../src-html/org/apache/hadoop/hbase/ScheduledChore.html#line.74">initialChoreComplete</a></pre>
 </li>
 </ul>
 <a name="stopper">
 <!--   -->
 </a>
-<ul class="blockListLast">
+<ul class="blockList">
 <li class="blockList">
 <h4>stopper</h4>
-<pre>private final&nbsp;<a href="../../../../org/apache/hadoop/hbase/Stoppable.html" title="interface in org.apache.hadoop.hbase">Stoppable</a> <a href="../../../../src-html/org/apache/hadoop/hbase/ScheduledChore.html#line.80">stopper</a></pre>
+<pre>private final&nbsp;<a href="../../../../org/apache/hadoop/hbase/Stoppable.html" title="interface in org.apache.hadoop.hbase">Stoppable</a> <a href="../../../../src-html/org/apache/hadoop/hbase/ScheduledChore.html#line.82">stopper</a></pre>
 <div class="block">A means by which a ScheduledChore can be stopped. Once a chore recognizes that it has been
  stopped, it will cancel itself. This is particularly useful in the case where a single stopper
  instance is given to multiple chores. In such a case, a single <a href="../../../../org/apache/hadoop/hbase/Stoppable.html#stop-java.lang.String-"><code>Stoppable.stop(String)</code></a>
  command can cause many chores to stop together.</div>
 </li>
 </ul>
+<a name="timeMeasurement">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>timeMeasurement</h4>
+<pre>private final&nbsp;<a href="../../../../org/apache/hadoop/hbase/util/MovingAverage.html" title="class in org.apache.hadoop.hbase.util">MovingAverage</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Void.html?is-external=true" title="class or interface in java.lang">Void</a>&gt; <a href="../../../../src-html/org/apache/hadoop/hbase/ScheduledChore.html#line.84">timeMeasurement</a></pre>
+</li>
+</ul>
 </li>
 </ul>
 <!-- ========= CONSTRUCTOR DETAIL ======== -->
@@ -558,7 +571,7 @@ implements <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Runnable
 <li class="blockList">
 <h4>ScheduledChore</h4>
 <pre>@InterfaceAudience.Private
-protected&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ScheduledChore.html#line.120">ScheduledChore</a>()</pre>
+protected&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ScheduledChore.html#line.124">ScheduledChore</a>()</pre>
 <div class="block">This constructor is for test only. It allows us to create an object and to call chore() on it.</div>
 </li>
 </ul>
@@ -568,7 +581,7 @@ protected&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ScheduledCh
 <ul class="blockList">
 <li class="blockList">
 <h4>ScheduledChore</h4>
-<pre>public&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ScheduledChore.html#line.133">ScheduledChore</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name,
+<pre>public&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ScheduledChore.html#line.137">ScheduledChore</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name,
                       <a href="../../../../org/apache/hadoop/hbase/Stoppable.html" title="interface in org.apache.hadoop.hbase">Stoppable</a>&nbsp;stopper,
                       int&nbsp;period)</pre>
 <dl>
@@ -585,7 +598,7 @@ protected&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ScheduledCh
 <ul class="blockList">
 <li class="blockList">
 <h4>ScheduledChore</h4>
-<pre>public&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ScheduledChore.html#line.145">ScheduledChore</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name,
+<pre>public&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ScheduledChore.html#line.149">ScheduledChore</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name,
                       <a href="../../../../org/apache/hadoop/hbase/Stoppable.html" title="interface in org.apache.hadoop.hbase">Stoppable</a>&nbsp;stopper,
                       int&nbsp;period,
                       long&nbsp;initialDelay)</pre>
@@ -606,7 +619,7 @@ protected&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ScheduledCh
 <ul class="blockListLast">
 <li class="blockList">
 <h4>ScheduledChore</h4>
-<pre>public&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ScheduledChore.html#line.159">ScheduledChore</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name,
+<pre>public&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ScheduledChore.html#line.163">ScheduledChore</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;name,
                       <a href="../../../../org/apache/hadoop/hbase/Stoppable.html" title="interface in org.apache.hadoop.hbase">Stoppable</a>&nbsp;stopper,
                       int&nbsp;period,
                       long&nbsp;initialDelay,
@@ -637,7 +650,7 @@ protected&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ScheduledCh
 <ul class="blockList">
 <li class="blockList">
 <h4>run</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ScheduledChore.html#line.172">run</a>()</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ScheduledChore.html#line.176">run</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Runnable.html?is-external=true#run--" title="class or interface in java.lang">run</a></code>&nbsp;in interface&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Runnable.html?is-external=true" title="class or interface in java.lang">Runnable</a></code></dd>
@@ -652,7 +665,7 @@ protected&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ScheduledCh
 <ul class="blockList">
 <li class="blockList">
 <h4>updateTimeTrackingBeforeRun</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ScheduledChore.html#line.202">updateTimeTrackingBeforeRun</a>()</pre>
+<pre>private&nbsp;void&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ScheduledChore.html#line.211">updateTimeTrackingBeforeRun</a>()</pre>
 <div class="block">Update our time tracking members. Called at the start of an execution of this chore's run()
  method so that a correct decision can be made as to whether or not we missed the start time</div>
 </li>
@@ -663,7 +676,7 @@ protected&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ScheduledCh
 <ul class="blockList">
 <li class="blockList">
 <h4>onChoreMissedStartTime</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ScheduledChore.html#line.212">onChoreMissedStartTime</a>()</pre>
+<pre>private&nbsp;void&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ScheduledChore.html#line.221">onChoreMissedStartTime</a>()</pre>
 <div class="block">Notify the ChoreService that this chore has missed its start time. Allows the ChoreService to
  make the decision as to whether or not it would be worthwhile to increase the number of core
  pool threads</div>
@@ -675,7 +688,7 @@ protected&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ScheduledCh
 <ul class="blockList">
 <li class="blockList">
 <h4>getTimeBetweenRuns</h4>
-<pre>long&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ScheduledChore.html#line.220">getTimeBetweenRuns</a>()</pre>
+<pre>long&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ScheduledChore.html#line.229">getTimeBetweenRuns</a>()</pre>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>How long in millis has it been since this chore last run. Useful for checking if the
@@ -689,7 +702,7 @@ protected&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ScheduledCh
 <ul class="blockList">
 <li class="blockList">
 <h4>missedStartTime</h4>
-<pre>private&nbsp;boolean&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ScheduledChore.html#line.227">missedStartTime</a>()</pre>
+<pre>private&nbsp;boolean&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ScheduledChore.html#line.236">missedStartTime</a>()</pre>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>true when the time between runs exceeds the acceptable threshold</dd>
@@ -702,7 +715,7 @@ protected&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ScheduledCh
 <ul class="blockList">
 <li class="blockList">
 <h4>getMaximumAllowedTimeBetweenRuns</h4>
-<pre>private&nbsp;double&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ScheduledChore.html#line.235">getMaximumAllowedTimeBetweenRuns</a>()</pre>
+<pre>private&nbsp;double&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ScheduledChore.html#line.244">getMaximumAllowedTimeBetweenRuns</a>()</pre>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>max allowed time in millis between runs.</dd>
@@ -715,7 +728,7 @@ protected&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ScheduledCh
 <ul class="blockList">
 <li class="blockList">
 <h4>isValidTime</h4>
-<pre>private&nbsp;boolean&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ScheduledChore.html#line.244">isValidTime</a>(long&nbsp;time)</pre>
+<pre>private&nbsp;boolean&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ScheduledChore.html#line.253">isValidTime</a>(long&nbsp;time)</pre>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
 <dd><code>time</code> - in system millis</dd>
@@ -730,7 +743,7 @@ protected&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ScheduledCh
 <ul class="blockList">
 <li class="blockList">
 <h4>triggerNow</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ScheduledChore.html#line.251">triggerNow</a>()</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ScheduledChore.html#line.260">triggerNow</a>()</pre>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>false when the Chore is not currently scheduled with a ChoreService</dd>
@@ -743,7 +756,7 @@ protected&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ScheduledCh
 <ul class="blockList">
 <li class="blockList">
 <h4>setChoreServicer</h4>
-<pre>void&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ScheduledChore.html#line.259">setChoreServicer</a>(<a href="../../../../org/apache/hadoop/hbase/ScheduledChore.ChoreServicer.html" title="interface in org.apache.hadoop.hbase">ScheduledChore.ChoreServicer</a>&nbsp;service)</pre>
+<pre>void&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ScheduledChore.html#line.268">setChoreServicer</a>(<a href="../../../../org/apache/hadoop/hbase/ScheduledChore.ChoreServicer.html" title="interface in org.apache.hadoop.hbase">ScheduledChore.ChoreServicer</a>&nbsp;service)</pre>
 </li>
 </ul>
 <a name="cancel--">
@@ -752,7 +765,7 @@ protected&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ScheduledCh
 <ul class="blockList">
 <li class="blockList">
 <h4>cancel</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ScheduledChore.html#line.269">cancel</a>()</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ScheduledChore.html#line.278">cancel</a>()</pre>
 </li>
 </ul>
 <a name="cancel-boolean-">
@@ -761,7 +774,7 @@ protected&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ScheduledCh
 <ul class="blockList">
 <li class="blockList">
 <h4>cancel</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ScheduledChore.html#line.273">cancel</a>(boolean&nbsp;mayInterruptIfRunning)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ScheduledChore.html#line.282">cancel</a>(boolean&nbsp;mayInterruptIfRunning)</pre>
 </li>
 </ul>
 <a name="getName--">
@@ -770,7 +783,7 @@ protected&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ScheduledCh
 <ul class="blockList">
 <li class="blockList">
 <h4>getName</h4>
-<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ScheduledChore.html#line.279">getName</a>()</pre>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ScheduledChore.html#line.288">getName</a>()</pre>
 </li>
 </ul>
 <a name="getStopper--">
@@ -779,7 +792,7 @@ protected&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ScheduledCh
 <ul class="blockList">
 <li class="blockList">
 <h4>getStopper</h4>
-<pre>public&nbsp;<a href="../../../../org/apache/hadoop/hbase/Stoppable.html" title="interface in org.apache.hadoop.hbase">Stoppable</a>&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ScheduledChore.html#line.283">getStopper</a>()</pre>
+<pre>public&nbsp;<a href="../../../../org/apache/hadoop/hbase/Stoppable.html" title="interface in org.apache.hadoop.hbase">Stoppable</a>&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ScheduledChore.html#line.292">getStopper</a>()</pre>
 </li>
 </ul>
 <a name="getPeriod--">
@@ -788,7 +801,7 @@ protected&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ScheduledCh
 <ul class="blockList">
 <li class="blockList">
 <h4>getPeriod</h4>
-<pre>public&nbsp;int&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ScheduledChore.html#line.290">getPeriod</a>()</pre>
+<pre>public&nbsp;int&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ScheduledChore.html#line.299">getPeriod</a>()</pre>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>period to execute chore in getTimeUnit() units</dd>
@@ -801,7 +814,7 @@ protected&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ScheduledCh
 <ul class="blockList">
 <li class="blockList">
 <h4>getInitialDelay</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ScheduledChore.html#line.297">getInitialDelay</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ScheduledChore.html#line.306">getInitialDelay</a>()</pre>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>initial delay before executing chore in getTimeUnit() units</dd>
@@ -814,7 +827,7 @@ protected&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ScheduledCh
 <ul class="blockList">
 <li class="blockList">
 <h4>getTimeUnit</h4>
-<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/TimeUnit.html?is-external=true" title="class or interface in java.util.concurrent">TimeUnit</a>&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ScheduledChore.html#line.301">getTimeUnit</a>()</pre>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/TimeUnit.html?is-external=true" title="class or interface in java.util.concurrent">TimeUnit</a>&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ScheduledChore.html#line.310">getTimeUnit</a>()</pre>
 </li>
 </ul>
 <a name="isInitialChoreComplete--">
@@ -823,7 +836,7 @@ protected&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ScheduledCh
 <ul class="blockList">
 <li class="blockList">
 <h4>isInitialChoreComplete</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ScheduledChore.html#line.305">isInitialChoreComplete</a>()</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ScheduledChore.html#line.314">isInitialChoreComplete</a>()</pre>
 </li>
 </ul>
 <a name="getChoreServicer--">
@@ -832,7 +845,7 @@ protected&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ScheduledCh
 <ul class="blockList">
 <li class="blockList">
 <h4>getChoreServicer</h4>
-<pre><a href="../../../../org/apache/hadoop/hbase/ScheduledChore.ChoreServicer.html" title="interface in org.apache.hadoop.hbase">ScheduledChore.ChoreServicer</a>&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ScheduledChore.html#line.310">getChoreServicer</a>()</pre>
+<pre><a href="../../../../org/apache/hadoop/hbase/ScheduledChore.ChoreServicer.html" title="interface in org.apache.hadoop.hbase">ScheduledChore.ChoreServicer</a>&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ScheduledChore.html#line.319">getChoreServicer</a>()</pre>
 </li>
 </ul>
 <a name="getTimeOfLastRun--">
@@ -841,7 +854,7 @@ protected&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ScheduledCh
 <ul class="blockList">
 <li class="blockList">
 <h4>getTimeOfLastRun</h4>
-<pre>long&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ScheduledChore.html#line.315">getTimeOfLastRun</a>()</pre>
+<pre>long&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ScheduledChore.html#line.324">getTimeOfLastRun</a>()</pre>
 </li>
 </ul>
 <a name="getTimeOfThisRun--">
@@ -850,7 +863,7 @@ protected&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ScheduledCh
 <ul class="blockList">
 <li class="blockList">
 <h4>getTimeOfThisRun</h4>
-<pre>long&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ScheduledChore.html#line.320">getTimeOfThisRun</a>()</pre>
+<pre>long&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ScheduledChore.html#line.329">getTimeOfThisRun</a>()</pre>
 </li>
 </ul>
 <a name="isScheduled--">
@@ -859,7 +872,7 @@ protected&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ScheduledCh
 <ul class="blockList">
 <li class="blockList">
 <h4>isScheduled</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ScheduledChore.html#line.327">isScheduled</a>()</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ScheduledChore.html#line.336">isScheduled</a>()</pre>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>true when this Chore is scheduled with a ChoreService</dd>
@@ -873,7 +886,7 @@ protected&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ScheduledCh
 <li class="blockList">
 <h4>choreForTesting</h4>
 <pre>@InterfaceAudience.Private
-public&nbsp;void&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ScheduledChore.html#line.333">choreForTesting</a>()</pre>
+public&nbsp;void&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ScheduledChore.html#line.342">choreForTesting</a>()</pre>
 </li>
 </ul>
 <a name="chore--">
@@ -882,7 +895,7 @@ public&nbsp;void&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/Sche
 <ul class="blockList">
 <li class="blockList">
 <h4>chore</h4>
-<pre>protected abstract&nbsp;void&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ScheduledChore.html#line.340">chore</a>()</pre>
+<pre>protected abstract&nbsp;void&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ScheduledChore.html#line.349">chore</a>()</pre>
 <div class="block">The task to execute on each scheduled execution of the Chore</div>
 </li>
 </ul>
@@ -892,7 +905,7 @@ public&nbsp;void&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/Sche
 <ul class="blockList">
 <li class="blockList">
 <h4>initialChore</h4>
-<pre>protected&nbsp;boolean&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ScheduledChore.html#line.346">initialChore</a>()</pre>
+<pre>protected&nbsp;boolean&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ScheduledChore.html#line.355">initialChore</a>()</pre>
 <div class="block">Override to run a task before we start looping.</div>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
@@ -906,7 +919,7 @@ public&nbsp;void&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/Sche
 <ul class="blockList">
 <li class="blockList">
 <h4>cleanup</h4>
-<pre>protected&nbsp;void&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ScheduledChore.html#line.354">cleanup</a>()</pre>
+<pre>protected&nbsp;void&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ScheduledChore.html#line.363">cleanup</a>()</pre>
 <div class="block">Override to run cleanup tasks when the Chore encounters an error and must stop running</div>
 </li>
 </ul>
@@ -917,7 +930,7 @@ public&nbsp;void&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/Sche
 <li class="blockList">
 <h4>toString</h4>
 <pre>@InterfaceAudience.Private
-public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ScheduledChore.html#line.364">toString</a>()</pre>
+public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../src-html/org/apache/hadoop/hbase/ScheduledChore.html#line.373">toString</a>()</pre>
 <div class="block">A summation of this chore in human readable format. Downstream users should not presume
  parsing of this string can relaibly be done between versions. Instead, they should rely
  on the public accessor methods to get the information they desire.</div>
diff --git a/devapidocs/org/apache/hadoop/hbase/backup/package-tree.html b/devapidocs/org/apache/hadoop/hbase/backup/package-tree.html
index 29dd99f..841e34a 100644
--- a/devapidocs/org/apache/hadoop/hbase/backup/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/backup/package-tree.html
@@ -167,10 +167,10 @@
 <ul>
 <li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true [...]
 <ul>
-<li type="circle">org.apache.hadoop.hbase.backup.<a href="../../../../../org/apache/hadoop/hbase/backup/BackupRestoreConstants.BackupCommand.html" title="enum in org.apache.hadoop.hbase.backup"><span class="typeNameLink">BackupRestoreConstants.BackupCommand</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.backup.<a href="../../../../../org/apache/hadoop/hbase/backup/BackupInfo.BackupState.html" title="enum in org.apache.hadoop.hbase.backup"><span class="typeNameLink">BackupInfo.BackupState</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.backup.<a href="../../../../../org/apache/hadoop/hbase/backup/BackupInfo.BackupPhase.html" title="enum in org.apache.hadoop.hbase.backup"><span class="typeNameLink">BackupInfo.BackupPhase</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.backup.<a href="../../../../../org/apache/hadoop/hbase/backup/BackupType.html" title="enum in org.apache.hadoop.hbase.backup"><span class="typeNameLink">BackupType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.backup.<a href="../../../../../org/apache/hadoop/hbase/backup/BackupRestoreConstants.BackupCommand.html" title="enum in org.apache.hadoop.hbase.backup"><span class="typeNameLink">BackupRestoreConstants.BackupCommand</span></a></li>
 </ul>
 </li>
 </ul>
diff --git a/devapidocs/org/apache/hadoop/hbase/client/package-tree.html b/devapidocs/org/apache/hadoop/hbase/client/package-tree.html
index 16d46f5..ae0cc80 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/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/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/RequestController.ReturnCode.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">RequestController.ReturnCode</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/IsolationLevel.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">IsolationLevel</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/AsyncScanSingleRegionRpcRetryingCaller.ScanControllerState.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">AsyncScanSingleRegionRpcRetryingCaller.ScanControllerState</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/SnapshotType.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">SnapshotType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/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/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/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/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/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/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/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/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/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/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/Consistency.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">Consistency</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/AsyncScanSingleRegionRpcRetryingCaller.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/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/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/AbstractResponse.ResponseType.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">AbstractResponse.ResponseType</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/MasterSwitchType.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">MasterSwitchType</span></a></li>
 </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 127caa7..531254c 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/EventType.html" title="enum in org.apache.hadoop.hbase.executor"><span class="typeNameLink">EventType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.executor.<a href="../../../../../org/apache/hadoop/hbase/executor/ExecutorType.html" title="enum in org.apache.hadoop.hbase.executor"><span class="typeNameLink">ExecutorType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.executor.<a href="../../../../../org/apache/hadoop/hbase/executor/EventType.html" title="enum in org.apache.hadoop.hbase.executor"><span class="typeNameLink">EventType</span></a></li>
 </ul>
 </li>
 </ul>
diff --git a/devapidocs/org/apache/hadoop/hbase/filter/package-tree.html b/devapidocs/org/apache/hadoop/hbase/filter/package-tree.html
index 83318e7..7d44cab 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/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.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/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/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/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/FilterList.Operator.html" title="enum in org.apache.hadoop.hbase.filter"><span class="typeNameLink">FilterList.Operator</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.filter.<a href="../../../../../org/apache/hadoop/hbase/filter/Filter.ReturnCode.html" title="enum in org.apache.hadoop.hbase.filter"><span class="typeNameLink">Filter.ReturnCode</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.filter.<a href="../../../../../org/apache/hadoop/hbase/filter/FilterWrapper.FilterRowRetCode.html" title="enum in org.apache.hadoop.hbase.filter"><span class="typeNameLink">FilterWrapper.FilterRowRetCode</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.filter.<a href="../../../../../org/apache/hadoop/hbase/filter/FuzzyRowFilter.SatisfiesCode.html" title="enum in org.apache.hadoop.hbase.filter"><span class="typeNameLink">FuzzyRowFilter.SatisfiesCode</span></a></li>
 </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 abc40ba..9eebaf0 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/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>
+<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>
 </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 57bc13e..3ddbb12 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/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>
+<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>
 </ul>
 </li>
 </ul>
diff --git a/devapidocs/org/apache/hadoop/hbase/http/package-tree.html b/devapidocs/org/apache/hadoop/hbase/http/package-tree.html
index fe725db..677d4b5 100644
--- a/devapidocs/org/apache/hadoop/hbase/http/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/http/package-tree.html
@@ -138,9 +138,9 @@
 <ul>
 <li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true [...]
 <ul>
+<li type="circle">org.apache.hadoop.hbase.http.<a href="../../../../../org/apache/hadoop/hbase/http/HttpConfig.Policy.html" title="enum in org.apache.hadoop.hbase.http"><span class="typeNameLink">HttpConfig.Policy</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.http.<a href="../../../../../org/apache/hadoop/hbase/http/ProfileServlet.Event.html" title="enum in org.apache.hadoop.hbase.http"><span class="typeNameLink">ProfileServlet.Event</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.http.<a href="../../../../../org/apache/hadoop/hbase/http/ProfileServlet.Output.html" title="enum in org.apache.hadoop.hbase.http"><span class="typeNameLink">ProfileServlet.Output</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.http.<a href="../../../../../org/apache/hadoop/hbase/http/HttpConfig.Policy.html" title="enum in org.apache.hadoop.hbase.http"><span class="typeNameLink">HttpConfig.Policy</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 35672d0..62d0080 100644
--- a/devapidocs/org/apache/hadoop/hbase/io/hfile/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/io/hfile/package-tree.html
@@ -305,12 +305,12 @@
 <ul>
 <li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true [...]
 <ul>
-<li type="circle">org.apache.hadoop.hbase.io.hfile.<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCacheFactory.ExternalBlockCaches.html" title="enum in org.apache.hadoop.hbase.io.hfile"><span class="typeNameLink">BlockCacheFactory.ExternalBlockCaches</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.io.hfile.<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockPriority.html" title="enum in org.apache.hadoop.hbase.io.hfile"><span class="typeNameLink">BlockPriority</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.io.hfile.<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/ReaderContext.ReaderType.html" title="enum in org.apache.hadoop.hbase.io.hfile"><span class="typeNameLink">ReaderContext.ReaderType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.io.hfile.<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCacheFactory.ExternalBlockCaches.html" title="enum in org.apache.hadoop.hbase.io.hfile"><span class="typeNameLink">BlockCacheFactory.ExternalBlockCaches</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.io.hfile.<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlock.Writer.State.html" title="enum in org.apache.hadoop.hbase.io.hfile"><span class="typeNameLink">HFileBlock.Writer.State</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.io.hfile.<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockPriority.html" title="enum in org.apache.hadoop.hbase.io.hfile"><span class="typeNameLink">BlockPriority</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.io.hfile.<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockType.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/BlockType.BlockCategory.html" title="enum in org.apache.hadoop.hbase.io.hfile"><span class="typeNameLink">BlockType.BlockCategory</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..53b29e4 100644
--- a/devapidocs/org/apache/hadoop/hbase/ipc/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/ipc/package-tree.html
@@ -353,9 +353,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.ipc.<a href="../../../../../org/apache/hadoop/hbase/ipc/MetricsHBaseServerSourceFactoryImpl.SourceStorage.html" title="enum in org.apache.hadoop.hbase.ipc"><span class="typeNameLink">MetricsHBaseServerSourceFactoryImpl.SourceStorage</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.ipc.<a href="../../../../../org/apache/hadoop/hbase/ipc/CallEvent.Type.html" title="enum in org.apache.hadoop.hbase.ipc"><span class="typeNameLink">CallEvent.Type</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.ipc.<a href="../../../../../org/apache/hadoop/hbase/ipc/BufferCallBeforeInitHandler.BufferCallAction.html" title="enum in org.apache.hadoop.hbase.ipc"><span class="typeNameLink">BufferCallBeforeInitHandler.BufferCallAction</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.ipc.<a href="../../../../../org/apache/hadoop/hbase/ipc/MetricsHBaseServerSourceFactoryImpl.SourceStorage.html" title="enum in org.apache.hadoop.hbase.ipc"><span class="typeNameLink">MetricsHBaseServerSourceFactoryImpl.SourceStorage</span></a></li>
 </ul>
 </li>
 </ul>
diff --git a/devapidocs/org/apache/hadoop/hbase/mapreduce/package-tree.html b/devapidocs/org/apache/hadoop/hbase/mapreduce/package-tree.html
index 1cc7398..93c0a53 100644
--- a/devapidocs/org/apache/hadoop/hbase/mapreduce/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/mapreduce/package-tree.html
@@ -296,10 +296,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.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/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/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/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>
 </ul>
 </li>
 </ul>
diff --git a/devapidocs/org/apache/hadoop/hbase/master/assignment/package-tree.html b/devapidocs/org/apache/hadoop/hbase/master/assignment/package-tree.html
index b988a3c..b3e7c99 100644
--- a/devapidocs/org/apache/hadoop/hbase/master/assignment/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/master/assignment/package-tree.html
@@ -151,8 +151,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.assignment.<a href="../../../../../../org/apache/hadoop/hbase/master/assignment/TransitRegionStateProcedure.TransitionType.html" title="enum in org.apache.hadoop.hbase.master.assignment"><span class="typeNameLink">TransitRegionStateProcedure.TransitionType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.master.assignment.<a href="../../../../../../org/apache/hadoop/hbase/master/assignment/ServerState.html" title="enum in org.apache.hadoop.hbase.master.assignment"><span class="typeNameLink">ServerState</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.master.assignment.<a href="../../../../../../org/apache/hadoop/hbase/master/assignment/TransitRegionStateProcedure.TransitionType.html" title="enum in org.apache.hadoop.hbase.master.assignment"><span class="typeNameLink">TransitRegionStateProcedure.TransitionType</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 1f52161..346c0dd 100644
--- a/devapidocs/org/apache/hadoop/hbase/master/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/master/package-tree.html
@@ -362,12 +362,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.master.<a href="../../../../../org/apache/hadoop/hbase/master/MetricsMasterSourceFactoryImpl.FactoryStorage.html" title="enum in org.apache.hadoop.hbase.master"><span class="typeNameLink">MetricsMasterSourceFactoryImpl.FactoryStorage</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.master.<a href="../../../../../org/apache/hadoop/hbase/master/SplitLogManager.TerminationStatus.html" title="enum in org.apache.hadoop.hbase.master"><span class="typeNameLink">SplitLogManager.TerminationStatus</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.master.<a href="../../../../../org/apache/hadoop/hbase/master/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/SplitLogManager.ResubmitDirective.html" title="enum in org.apache.hadoop.hbase.master"><span class="typeNameLink">SplitLogManager.ResubmitDirective</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.master.<a href="../../../../../org/apache/hadoop/hbase/master/RegionState.State.html" title="enum in org.apache.hadoop.hbase.master"><span class="typeNameLink">RegionState.State</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.master.<a href="../../../../../org/apache/hadoop/hbase/master/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/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/MasterRpcServices.BalanceSwitchMode.html" title="enum in org.apache.hadoop.hbase.master"><span class="typeNameLink">MasterRpcServices.BalanceSwitchMode</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.master.<a href="../../../../../org/apache/hadoop/hbase/master/ServerManager.ServerLiveState.html" title="enum in org.apache.hadoop.hbase.master"><span class="typeNameLink">ServerManager.ServerLiveState</span></a></li>
 </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 432e466..c5ce7d6 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/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>
+<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>
 </ul>
 </li>
 </ul>
diff --git a/devapidocs/org/apache/hadoop/hbase/monitoring/package-tree.html b/devapidocs/org/apache/hadoop/hbase/monitoring/package-tree.html
index 452eaee..7524d90 100644
--- a/devapidocs/org/apache/hadoop/hbase/monitoring/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/monitoring/package-tree.html
@@ -127,8 +127,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.monitoring.<a href="../../../../../org/apache/hadoop/hbase/monitoring/TaskMonitor.TaskFilter.TaskType.html" title="enum in org.apache.hadoop.hbase.monitoring"><span class="typeNameLink">TaskMonitor.TaskFilter.TaskType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.monitoring.<a href="../../../../../org/apache/hadoop/hbase/monitoring/MonitoredTask.State.html" title="enum in org.apache.hadoop.hbase.monitoring"><span class="typeNameLink">MonitoredTask.State</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.monitoring.<a href="../../../../../org/apache/hadoop/hbase/monitoring/TaskMonitor.TaskFilter.TaskType.html" title="enum in org.apache.hadoop.hbase.monitoring"><span class="typeNameLink">TaskMonitor.TaskFilter.TaskType</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 275c337..ff10c73 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/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/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/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/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/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>
-<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/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/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/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/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/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>
 <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/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/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/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/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/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/Size.Unit.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">Size.Unit</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 bd9476c..c2fd944 100644
--- a/devapidocs/org/apache/hadoop/hbase/procedure2/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/procedure2/package-tree.html
@@ -218,9 +218,9 @@
 <ul>
 <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/LockedResourceType.html" title="enum in org.apache.hadoop.hbase.procedure2"><span class="typeNameLink">LockedResourceType</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.procedure2.<a href="../../../../../org/apache/hadoop/hbase/procedure2/RootProcedureState.State.html" title="enum in org.apache.hadoop.hbase.procedure2"><span class="typeNameLink">RootProcedureState.State</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.procedure2.<a href="../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.Flow.html" title="enum in org.apache.hadoop.hbase.procedure2"><span class="typeNameLink">StateMachineProcedure.Flow</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.procedure2.<a href="../../../../../org/apache/hadoop/hbase/procedure2/LockType.html" title="enum in org.apache.hadoop.hbase.procedure2"><span class="typeNameLink">LockType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.procedure2.<a href="../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.Flow.html" title="enum in org.apache.hadoop.hbase.procedure2"><span class="typeNameLink">StateMachineProcedure.Flow</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.procedure2.<a href="../../../../../org/apache/hadoop/hbase/procedure2/RootProcedureState.State.html" title="enum in org.apache.hadoop.hbase.procedure2"><span class="typeNameLink">RootProcedureState.State</span></a></li>
 </ul>
 </li>
 </ul>
diff --git a/devapidocs/org/apache/hadoop/hbase/quotas/package-tree.html b/devapidocs/org/apache/hadoop/hbase/quotas/package-tree.html
index 3d9239e..d2f8b57 100644
--- a/devapidocs/org/apache/hadoop/hbase/quotas/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/quotas/package-tree.html
@@ -240,12 +240,12 @@
 <ul>
 <li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true [...]
 <ul>
-<li type="circle">org.apache.hadoop.hbase.quotas.<a href="../../../../../org/apache/hadoop/hbase/quotas/RpcThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">RpcThrottlingException.Type</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.quotas.<a href="../../../../../org/apache/hadoop/hbase/quotas/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/QuotaScope.html" title="enum in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">QuotaScope</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.quotas.<a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottleType.html" title="enum in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">ThrottleType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.quotas.<a href="../../../../../org/apache/hadoop/hbase/quotas/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/SpaceViolationPolicy.html" title="enum in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">SpaceViolationPolicy</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.quotas.<a href="../../../../../org/apache/hadoop/hbase/quotas/QuotaType.html" title="enum in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">QuotaType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.quotas.<a href="../../../../../org/apache/hadoop/hbase/quotas/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/OperationQuota.OperationType.html" title="enum in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">OperationQuota.OperationType</span></a></li>
 </ul>
 </li>
 </ul>
diff --git a/devapidocs/org/apache/hadoop/hbase/regionserver/package-tree.html b/devapidocs/org/apache/hadoop/hbase/regionserver/package-tree.html
index 5894a55..341532c 100644
--- a/devapidocs/org/apache/hadoop/hbase/regionserver/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/regionserver/package-tree.html
@@ -725,20 +725,20 @@
 <ul>
 <li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true [...]
 <ul>
+<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/ScannerContext.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/ScanType.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">ScanType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/FlushType.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">FlushType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/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/MemStoreCompactionStrategy.Action.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">MemStoreCompactionStrategy.Action</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/DefaultHeapMemoryTuner.StepDirection.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">DefaultHeapMemoryTuner.StepDirection</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/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/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/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/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/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/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/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/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/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/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/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/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/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/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/MetricsRegionServerSourceFactoryImpl.FactoryStorage.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">MetricsRegionServerSourceFactoryImpl.FactoryStorage</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 b195b74..03a894e 100644
--- a/devapidocs/org/apache/hadoop/hbase/regionserver/querymatcher/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/regionserver/querymatcher/package-tree.html
@@ -131,8 +131,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.regionserver.querymatcher.<a href="../../../../../../org/apache/hadoop/hbase/regionserver/querymatcher/StripeCompactionScanQueryMatcher.DropDeletesInOutput.html" title="enum in org.apache.hadoop.hbase.regionserver.querymatcher"><span class="typeNameLink">StripeCompactionScanQueryMatcher.DropDeletesInOutput</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.regionserver.querymatcher.<a href="../../../../../../org/apache/hadoop/hbase/regionserver/querymatcher/ScanQueryMatcher.MatchCode.html" title="enum in org.apache.hadoop.hbase.regionserver.querymatcher"><span class="typeNameLink">ScanQueryMatcher.MatchCode</span></a></li>
 <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 92470fa..8657be6 100644
--- a/devapidocs/org/apache/hadoop/hbase/regionserver/wal/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/regionserver/wal/package-tree.html
@@ -248,9 +248,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.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/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/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/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/CompressionContext.DictionaryIndex.html" title="enum in org.apache.hadoop.hbase.regionserver.wal"><span class="typeNameLink">CompressionContext.DictionaryIndex</span></a></li>
 </ul>
 </li>
 </ul>
diff --git a/devapidocs/org/apache/hadoop/hbase/replication/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/security/access/package-tree.html b/devapidocs/org/apache/hadoop/hbase/security/access/package-tree.html
index 4944769..2b90a44 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/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/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/AccessControlFilter.Strategy.html" title="enum in org.apache.hadoop.hbase.security.access"><span class="typeNameLink">AccessControlFilter.Strategy</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.security.access.<a href="../../../../../../org/apache/hadoop/hbase/security/access/SnapshotScannerHDFSAclHelper.HDFSAclOperation.AclType.html" title="enum in org.apache.hadoop.hbase.security.access"><span class="typeNameLink">SnapshotScannerHDFSAclHelper.HDFSAclOperation.AclType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.security.access.<a href="../../../../../../org/apache/hadoop/hbase/security/access/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/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.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>
 </ul>
 </li>
 </ul>
diff --git a/devapidocs/org/apache/hadoop/hbase/security/package-tree.html b/devapidocs/org/apache/hadoop/hbase/security/package-tree.html
index 3e32f6b..bd591e2 100644
--- a/devapidocs/org/apache/hadoop/hbase/security/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/security/package-tree.html
@@ -192,9 +192,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.security.<a href="../../../../../org/apache/hadoop/hbase/security/AuthMethod.html" title="enum in org.apache.hadoop.hbase.security"><span class="typeNameLink">AuthMethod</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.security.<a href="../../../../../org/apache/hadoop/hbase/security/SaslUtil.QualityOfProtection.html" title="enum in org.apache.hadoop.hbase.security"><span class="typeNameLink">SaslUtil.QualityOfProtection</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.security.<a href="../../../../../org/apache/hadoop/hbase/security/SaslStatus.html" title="enum in org.apache.hadoop.hbase.security"><span class="typeNameLink">SaslStatus</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.security.<a href="../../../../../org/apache/hadoop/hbase/security/SaslUtil.QualityOfProtection.html" title="enum in org.apache.hadoop.hbase.security"><span class="typeNameLink">SaslUtil.QualityOfProtection</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.security.<a href="../../../../../org/apache/hadoop/hbase/security/AuthMethod.html" title="enum in org.apache.hadoop.hbase.security"><span class="typeNameLink">AuthMethod</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 2d9b08d..6b23a96 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/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>
 <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>
 </ul>
 </li>
 </ul>
diff --git a/devapidocs/org/apache/hadoop/hbase/util/ExceptionUtil.html b/devapidocs/org/apache/hadoop/hbase/util/ExceptionUtil.html
index 1322714..36ff5eaa 100644
--- a/devapidocs/org/apache/hadoop/hbase/util/ExceptionUtil.html
+++ b/devapidocs/org/apache/hadoop/hbase/util/ExceptionUtil.html
@@ -50,7 +50,7 @@ var activeTableTab = "activeTableTab";
 <div class="subNav">
 <ul class="navList">
 <li><a href="../../../../../org/apache/hadoop/hbase/util/EnvironmentEdgeManager.html" title="class in org.apache.hadoop.hbase.util"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
-<li><a href="../../../../../org/apache/hadoop/hbase/util/FileStatusFilter.html" title="interface in org.apache.hadoop.hbase.util"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/util/ExponentialMovingAverage.html" title="class in org.apache.hadoop.hbase.util"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
 </ul>
 <ul class="navList">
 <li><a href="../../../../../index.html?org/apache/hadoop/hbase/util/ExceptionUtil.html" target="_top">Frames</a></li>
@@ -276,7 +276,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <div class="subNav">
 <ul class="navList">
 <li><a href="../../../../../org/apache/hadoop/hbase/util/EnvironmentEdgeManager.html" title="class in org.apache.hadoop.hbase.util"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
-<li><a href="../../../../../org/apache/hadoop/hbase/util/FileStatusFilter.html" title="interface in org.apache.hadoop.hbase.util"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/util/ExponentialMovingAverage.html" title="class in org.apache.hadoop.hbase.util"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
 </ul>
 <ul class="navList">
 <li><a href="../../../../../index.html?org/apache/hadoop/hbase/util/ExceptionUtil.html" target="_top">Frames</a></li>
diff --git a/devapidocs/org/apache/hadoop/hbase/util/ExponentialMovingAverage.html b/devapidocs/org/apache/hadoop/hbase/util/ExponentialMovingAverage.html
new file mode 100644
index 0000000..7f73871
--- /dev/null
+++ b/devapidocs/org/apache/hadoop/hbase/util/ExponentialMovingAverage.html
@@ -0,0 +1,452 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>ExponentialMovingAverage (Apache HBase 3.0.0-SNAPSHOT API)</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="ExponentialMovingAverage (Apache HBase 3.0.0-SNAPSHOT API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":10,"i2":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ExponentialMovingAverage.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/hadoop/hbase/util/ExceptionUtil.html" title="class in org.apache.hadoop.hbase.util"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/util/FileStatusFilter.html" title="interface in org.apache.hadoop.hbase.util"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/hadoop/hbase/util/ExponentialMovingAverage.html" target="_top">Frames</a></li>
+<li><a href="ExponentialMovingAverage.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.hadoop.hbase.util</div>
+<h2 title="Class ExponentialMovingAverage" class="title">Class ExponentialMovingAverage</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../../org/apache/hadoop/hbase/util/MovingAverage.html" title="class in org.apache.hadoop.hbase.util">org.apache.hadoop.hbase.util.MovingAverage</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../../org/apache/hadoop/hbase/util/WindowMovingAverage.html" title="class in org.apache.hadoop.hbase.util">org.apache.hadoop.hbase.util.WindowMovingAverage</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.hadoop.hbase.util.ExponentialMovingAverage</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<br>
+<pre>@InterfaceAudience.Public
+public class <a href="../../../../../src-html/org/apache/hadoop/hbase/util/ExponentialMovingAverage.html#line.28">ExponentialMovingAverage</a>
+extends <a href="../../../../../org/apache/hadoop/hbase/util/WindowMovingAverage.html" title="class in org.apache.hadoop.hbase.util">WindowMovingAverage</a></pre>
+<div class="block">EMA is similar to <a href="../../../../../org/apache/hadoop/hbase/util/WeightedMovingAverage.html" title="class in org.apache.hadoop.hbase.util"><code>WeightedMovingAverage</code></a> in weighted, but the weighting factor decrease
+ exponentially. It brings benefits that it is more sensitive, and can see the trends easily.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== FIELD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field.summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Field Summary table, listing fields, and an explanation">
+<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Field and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>private double</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/ExponentialMovingAverage.html#alpha">alpha</a></span></code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>private double</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/ExponentialMovingAverage.html#currentAverage">currentAverage</a></span></code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>private double</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/ExponentialMovingAverage.html#previousAverage">previousAverage</a></span></code>&nbsp;</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="fields.inherited.from.class.org.apache.hadoop.hbase.util.WindowMovingAverage">
+<!--   -->
+</a>
+<h3>Fields inherited from class&nbsp;org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/WindowMovingAverage.html" title="class in org.apache.hadoop.hbase.util">WindowMovingAverage</a></h3>
+<code><a href="../../../../../org/apache/hadoop/hbase/util/WindowMovingAverage.html#DEFAULT_SIZE">DEFAULT_SIZE</a>, <a href="../../../../../org/apache/hadoop/hbase/util/WindowMovingAverage.html#lastN">lastN</a>, <a href="../../../../../org/apache/hadoop/hbase/util/WindowMovingAverage.html#mostRecent">mostRecent</a>, <a href="../../../../../org/apache/hadoop/hbase/util/WindowMovingAverage.html#oneRound">oneRound</a></code></li>
+</ul>
+</li>
+</ul>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/ExponentialMovingAverage.html#ExponentialMovingAverage--">ExponentialMovingAverage</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/ExponentialMovingAverage.html#ExponentialMovingAverage-double-">ExponentialMovingAverage</a></span>(double&nbsp;alpha)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/ExponentialMovingAverage.html#ExponentialMovingAverage-int-">ExponentialMovingAverage</a></span>(int&nbsp;size)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/ExponentialMovingAverage.html#ExponentialMovingAverage-int-double-">ExponentialMovingAverage</a></span>(int&nbsp;size,
+                        double&nbsp;alpha)</code>&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/ExponentialMovingAverage.html#getAverageTime--">getAverageTime</a></span>()</code>
+<div class="block">Get average execution time of the measured method.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>(package private) double</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/ExponentialMovingAverage.html#getPrevious--">getPrevious</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/ExponentialMovingAverage.html#updateMostRecentTime-long-">updateMostRecentTime</a></span>(long&nbsp;elapsed)</code>
+<div class="block">Update the most recent data.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.hadoop.hbase.util.WindowMovingAverage">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/WindowMovingAverage.html" title="class in org.apache.hadoop.hbase.util">WindowMovingAverage</a></h3>
+<code><a href="../../../../../org/apache/hadoop/hbase/util/WindowMovingAverage.html#enoughStatistics--">enoughStatistics</a>, <a href="../../../../../org/apache/hadoop/hbase/util/WindowMovingAverage.html#getMostRecentPosistion--">getMostRecentPosistion</a>, <a href="../../../../../org/apache/hadoop/hbase/util/WindowMovingAverage.html#getNumberOfStatistics--">getNumberOfStatistics</a>, <a href="../../../../../org/apache/hadoop/hbase/util/WindowMovingAverage.html#getStatisticsAtIndex-int-" [...]
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.hadoop.hbase.util.MovingAverage">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/MovingAverage.html" title="class in org.apache.hadoop.hbase.util">MovingAverage</a></h3>
+<code><a href="../../../../../org/apache/hadoop/hbase/util/MovingAverage.html#measure-org.apache.hadoop.hbase.util.TimeMeasurable-">measure</a>, <a href="../../../../../org/apache/hadoop/hbase/util/MovingAverage.html#start--">start</a>, <a href="../../../../../org/apache/hadoop/hbase/util/MovingAverage.html#stop-long-">stop</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="htt [...]
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ FIELD DETAIL =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field.detail">
+<!--   -->
+</a>
+<h3>Field Detail</h3>
+<a name="alpha">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>alpha</h4>
+<pre>private&nbsp;double <a href="../../../../../src-html/org/apache/hadoop/hbase/util/ExponentialMovingAverage.html#line.29">alpha</a></pre>
+</li>
+</ul>
+<a name="previousAverage">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>previousAverage</h4>
+<pre>private&nbsp;double <a href="../../../../../src-html/org/apache/hadoop/hbase/util/ExponentialMovingAverage.html#line.30">previousAverage</a></pre>
+</li>
+</ul>
+<a name="currentAverage">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>currentAverage</h4>
+<pre>private&nbsp;double <a href="../../../../../src-html/org/apache/hadoop/hbase/util/ExponentialMovingAverage.html#line.31">currentAverage</a></pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="ExponentialMovingAverage--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>ExponentialMovingAverage</h4>
+<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/ExponentialMovingAverage.html#line.33">ExponentialMovingAverage</a>()</pre>
+</li>
+</ul>
+<a name="ExponentialMovingAverage-double-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>ExponentialMovingAverage</h4>
+<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/ExponentialMovingAverage.html#line.37">ExponentialMovingAverage</a>(double&nbsp;alpha)</pre>
+</li>
+</ul>
+<a name="ExponentialMovingAverage-int-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>ExponentialMovingAverage</h4>
+<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/ExponentialMovingAverage.html#line.41">ExponentialMovingAverage</a>(int&nbsp;size)</pre>
+</li>
+</ul>
+<a name="ExponentialMovingAverage-int-double-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>ExponentialMovingAverage</h4>
+<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/ExponentialMovingAverage.html#line.45">ExponentialMovingAverage</a>(int&nbsp;size,
+                                double&nbsp;alpha)</pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="updateMostRecentTime-long-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>updateMostRecentTime</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/ExponentialMovingAverage.html#line.53">updateMostRecentTime</a>(long&nbsp;elapsed)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/util/MovingAverage.html#updateMostRecentTime-long-">MovingAverage</a></code></span></div>
+<div class="block">Update the most recent data.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="../../../../../org/apache/hadoop/hbase/util/WindowMovingAverage.html#updateMostRecentTime-long-">updateMostRecentTime</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/util/WindowMovingAverage.html" title="class in org.apache.hadoop.hbase.util">WindowMovingAverage</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>elapsed</code> - elapsed time of the most recent measurement</dd>
+</dl>
+</li>
+</ul>
+<a name="getAverageTime--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getAverageTime</h4>
+<pre>public&nbsp;double&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/ExponentialMovingAverage.html#line.69">getAverageTime</a>()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/util/MovingAverage.html#getAverageTime--">MovingAverage</a></code></span></div>
+<div class="block">Get average execution time of the measured method.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="../../../../../org/apache/hadoop/hbase/util/WindowMovingAverage.html#getAverageTime--">getAverageTime</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/util/WindowMovingAverage.html" title="class in org.apache.hadoop.hbase.util">WindowMovingAverage</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>average time in ns</dd>
+</dl>
+</li>
+</ul>
+<a name="getPrevious--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>getPrevious</h4>
+<pre>double&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/ExponentialMovingAverage.html#line.76">getPrevious</a>()</pre>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/ExponentialMovingAverage.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/hadoop/hbase/util/ExceptionUtil.html" title="class in org.apache.hadoop.hbase.util"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/util/FileStatusFilter.html" title="interface in org.apache.hadoop.hbase.util"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/hadoop/hbase/util/ExponentialMovingAverage.html" target="_top">Frames</a></li>
+<li><a href="ExponentialMovingAverage.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2007&#x2013;2019 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>
diff --git a/devapidocs/org/apache/hadoop/hbase/util/FileStatusFilter.html b/devapidocs/org/apache/hadoop/hbase/util/FileStatusFilter.html
index 2953dad..7fc7473 100644
--- a/devapidocs/org/apache/hadoop/hbase/util/FileStatusFilter.html
+++ b/devapidocs/org/apache/hadoop/hbase/util/FileStatusFilter.html
@@ -49,7 +49,7 @@ var activeTableTab = "activeTableTab";
 </div>
 <div class="subNav">
 <ul class="navList">
-<li><a href="../../../../../org/apache/hadoop/hbase/util/ExceptionUtil.html" title="class in org.apache.hadoop.hbase.util"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/util/ExponentialMovingAverage.html" title="class in org.apache.hadoop.hbase.util"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
 <li><a href="../../../../../org/apache/hadoop/hbase/util/FileSystemVersionException.html" title="class in org.apache.hadoop.hbase.util"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
 </ul>
 <ul class="navList">
@@ -194,7 +194,7 @@ public interface <a href="../../../../../src-html/org/apache/hadoop/hbase/util/F
 </div>
 <div class="subNav">
 <ul class="navList">
-<li><a href="../../../../../org/apache/hadoop/hbase/util/ExceptionUtil.html" title="class in org.apache.hadoop.hbase.util"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/util/ExponentialMovingAverage.html" title="class in org.apache.hadoop.hbase.util"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
 <li><a href="../../../../../org/apache/hadoop/hbase/util/FileSystemVersionException.html" title="class in org.apache.hadoop.hbase.util"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
 </ul>
 <ul class="navList">
diff --git a/devapidocs/org/apache/hadoop/hbase/util/ModifyRegionUtils.RegionFillTask.html b/devapidocs/org/apache/hadoop/hbase/util/ModifyRegionUtils.RegionFillTask.html
index 70182ae..41fdd97 100644
--- a/devapidocs/org/apache/hadoop/hbase/util/ModifyRegionUtils.RegionFillTask.html
+++ b/devapidocs/org/apache/hadoop/hbase/util/ModifyRegionUtils.RegionFillTask.html
@@ -50,7 +50,7 @@ var activeTableTab = "activeTableTab";
 <div class="subNav">
 <ul class="navList">
 <li><a href="../../../../../org/apache/hadoop/hbase/util/ModifyRegionUtils.RegionEditTask.html" title="interface in org.apache.hadoop.hbase.util"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
-<li><a href="../../../../../org/apache/hadoop/hbase/util/MunkresAssignment.html" title="class in org.apache.hadoop.hbase.util"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/util/MovingAverage.html" title="class in org.apache.hadoop.hbase.util"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
 </ul>
 <ul class="navList">
 <li><a href="../../../../../index.html?org/apache/hadoop/hbase/util/ModifyRegionUtils.RegionFillTask.html" target="_top">Frames</a></li>
@@ -186,7 +186,7 @@ var activeTableTab = "activeTableTab";
 <div class="subNav">
 <ul class="navList">
 <li><a href="../../../../../org/apache/hadoop/hbase/util/ModifyRegionUtils.RegionEditTask.html" title="interface in org.apache.hadoop.hbase.util"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
-<li><a href="../../../../../org/apache/hadoop/hbase/util/MunkresAssignment.html" title="class in org.apache.hadoop.hbase.util"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/util/MovingAverage.html" title="class in org.apache.hadoop.hbase.util"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
 </ul>
 <ul class="navList">
 <li><a href="../../../../../index.html?org/apache/hadoop/hbase/util/ModifyRegionUtils.RegionFillTask.html" target="_top">Frames</a></li>
diff --git a/testdevapidocs/org/apache/hadoop/hbase/util/TestOrder.html b/devapidocs/org/apache/hadoop/hbase/util/MovingAverage.html
similarity index 56%
copy from testdevapidocs/org/apache/hadoop/hbase/util/TestOrder.html
copy to devapidocs/org/apache/hadoop/hbase/util/MovingAverage.html
index dc24acc..e52e3de 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/util/TestOrder.html
+++ b/devapidocs/org/apache/hadoop/hbase/util/MovingAverage.html
@@ -4,7 +4,7 @@
 <head>
 <!-- Generated by javadoc -->
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>TestOrder (Apache HBase 3.0.0-SNAPSHOT Test API)</title>
+<title>MovingAverage (Apache HBase 3.0.0-SNAPSHOT API)</title>
 <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
 <script type="text/javascript" src="../../../../../script.js"></script>
 </head>
@@ -12,14 +12,14 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="TestOrder (Apache HBase 3.0.0-SNAPSHOT Test API)";
+            parent.document.title="MovingAverage (Apache HBase 3.0.0-SNAPSHOT API)";
         }
     }
     catch(err) {
     }
 //-->
-var methods = {"i0":10,"i1":10};
-var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var methods = {"i0":6,"i1":10,"i2":10,"i3":10,"i4":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"],8:["t4","Concrete Methods"]};
 var altColor = "altColor";
 var rowColor = "rowColor";
 var tableTab = "tableTab";
@@ -40,7 +40,7 @@ var activeTableTab = "activeTableTab";
 <li><a href="../../../../../overview-summary.html">Overview</a></li>
 <li><a href="package-summary.html">Package</a></li>
 <li class="navBarCell1Rev">Class</li>
-<li><a href="class-use/TestOrder.html">Use</a></li>
+<li><a href="class-use/MovingAverage.html">Use</a></li>
 <li><a href="package-tree.html">Tree</a></li>
 <li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
 <li><a href="../../../../../index-all.html">Index</a></li>
@@ -49,12 +49,12 @@ var activeTableTab = "activeTableTab";
 </div>
 <div class="subNav">
 <ul class="navList">
-<li><a href="../../../../../org/apache/hadoop/hbase/util/TestMiniClusterLoadSequential.html" title="class in org.apache.hadoop.hbase.util"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
-<li><a href="../../../../../org/apache/hadoop/hbase/util/TestOrderedBytes.html" title="class in org.apache.hadoop.hbase.util"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/util/ModifyRegionUtils.RegionFillTask.html" title="interface in org.apache.hadoop.hbase.util"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/util/MunkresAssignment.html" title="class in org.apache.hadoop.hbase.util"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
 </ul>
 <ul class="navList">
-<li><a href="../../../../../index.html?org/apache/hadoop/hbase/util/TestOrder.html" target="_top">Frames</a></li>
-<li><a href="TestOrder.html" target="_top">No&nbsp;Frames</a></li>
+<li><a href="../../../../../index.html?org/apache/hadoop/hbase/util/MovingAverage.html" target="_top">Frames</a></li>
+<li><a href="MovingAverage.html" target="_top">No&nbsp;Frames</a></li>
 </ul>
 <ul class="navList" id="allclasses_navbar_top">
 <li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
@@ -93,24 +93,34 @@ var activeTableTab = "activeTableTab";
 <!-- ======== START OF CLASS DATA ======== -->
 <div class="header">
 <div class="subTitle">org.apache.hadoop.hbase.util</div>
-<h2 title="Class TestOrder" class="title">Class TestOrder</h2>
+<h2 title="Class MovingAverage" class="title">Class MovingAverage&lt;T&gt;</h2>
 </div>
 <div class="contentContainer">
 <ul class="inheritance">
 <li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
 <li>
 <ul class="inheritance">
-<li>org.apache.hadoop.hbase.util.TestOrder</li>
+<li>org.apache.hadoop.hbase.util.MovingAverage&lt;T&gt;</li>
 </ul>
 </li>
 </ul>
 <div class="description">
 <ul class="blockList">
 <li class="blockList">
+<dl>
+<dt>Direct Known Subclasses:</dt>
+<dd><a href="../../../../../org/apache/hadoop/hbase/util/SimpleMovingAverage.html" title="class in org.apache.hadoop.hbase.util">SimpleMovingAverage</a>, <a href="../../../../../org/apache/hadoop/hbase/util/WindowMovingAverage.html" title="class in org.apache.hadoop.hbase.util">WindowMovingAverage</a></dd>
+</dl>
 <hr>
 <br>
-<pre>public class <a href="../../../../../src-html/org/apache/hadoop/hbase/util/TestOrder.html#line.34">TestOrder</a>
+<pre>@InterfaceAudience.Public
+public abstract class <a href="../../../../../src-html/org/apache/hadoop/hbase/util/MovingAverage.html#line.33">MovingAverage</a>&lt;T&gt;
 extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></pre>
+<div class="block">The purpose of introduction of <a href="../../../../../org/apache/hadoop/hbase/util/MovingAverage.html" title="class in org.apache.hadoop.hbase.util"><code>MovingAverage</code></a> mainly is to measure execution time of a
+ specific method, which can help us to know its performance fluctuation in response to different
+ machine states or situations, better case, then to act accordingly.
+ <br>
+ In different situation, different <a href="../../../../../org/apache/hadoop/hbase/util/MovingAverage.html" title="class in org.apache.hadoop.hbase.util"><code>MovingAverage</code></a> algorithm can be used based on needs.</div>
 </li>
 </ul>
 </div>
@@ -130,12 +140,8 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <th class="colLast" scope="col">Field and Description</th>
 </tr>
 <tr class="altColor">
-<td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/TestOrder.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
-</tr>
-<tr class="rowColor">
-<td class="colFirst"><code>(package private) byte[][]</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/TestOrder.html#VALS">VALS</a></span></code>&nbsp;</td>
+<td class="colFirst"><code>private static org.slf4j.Logger</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/MovingAverage.html#LOG">LOG</a></span></code>&nbsp;</td>
 </tr>
 </table>
 </li>
@@ -152,7 +158,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <th class="colOne" scope="col">Constructor and Description</th>
 </tr>
 <tr class="altColor">
-<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/TestOrder.html#TestOrder--">TestOrder</a></span>()</code>&nbsp;</td>
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/MovingAverage.html#MovingAverage--">MovingAverage</a></span>()</code>&nbsp;</td>
 </tr>
 </table>
 </li>
@@ -164,18 +170,40 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 </a>
 <h3>Method Summary</h3>
 <table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
-<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabE [...]
 <tr>
 <th class="colFirst" scope="col">Modifier and Type</th>
 <th class="colLast" scope="col">Method and Description</th>
 </tr>
 <tr id="i0" class="altColor">
-<td class="colFirst"><code>void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/TestOrder.html#testApplyAscending--">testApplyAscending</a></span>()</code>&nbsp;</td>
+<td class="colFirst"><code>abstract double</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/MovingAverage.html#getAverageTime--">getAverageTime</a></span>()</code>
+<div class="block">Get average execution time of the measured method.</div>
+</td>
 </tr>
 <tr id="i1" class="rowColor">
-<td class="colFirst"><code>void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/TestOrder.html#testApplyDescending--">testApplyDescending</a></span>()</code>&nbsp;</td>
+<td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/util/MovingAverage.html" title="type parameter in MovingAverage">T</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/MovingAverage.html#measure-org.apache.hadoop.hbase.util.TimeMeasurable-">measure</a></span>(<a href="../../../../../org/apache/hadoop/hbase/util/TimeMeasurable.html" title="interface in org.apache.hadoop.hbase.util">TimeMeasurable</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/util/MovingAverage.html" title="type parameter in MovingAverage">T</a>&gt;&nbsp;measurable)</code>
+<div class="block">Measure elapsed time of a measurable method.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>protected long</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/MovingAverage.html#start--">start</a></span>()</code>
+<div class="block">Mark start time of an execution.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>protected long</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/MovingAverage.html#stop-long-">stop</a></span>(long&nbsp;startTime)</code>
+<div class="block">Mark end time of an execution, and return its interval.</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code>protected abstract void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/MovingAverage.html#updateMostRecentTime-long-">updateMostRecentTime</a></span>(long&nbsp;elapsed)</code>
+<div class="block">Update the most recent data.</div>
+</td>
 </tr>
 </table>
 <ul class="blockList">
@@ -199,22 +227,13 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <!--   -->
 </a>
 <h3>Field Detail</h3>
-<a name="CLASS_RULE">
-<!--   -->
-</a>
-<ul class="blockList">
-<li class="blockList">
-<h4>CLASS_RULE</h4>
-<pre>public static final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/util/TestOrder.html#line.37">CLASS_RULE</a></pre>
-</li>
-</ul>
-<a name="VALS">
+<a name="LOG">
 <!--   -->
 </a>
 <ul class="blockListLast">
 <li class="blockList">
-<h4>VALS</h4>
-<pre>byte[][] <a href="../../../../../src-html/org/apache/hadoop/hbase/util/TestOrder.html#line.40">VALS</a></pre>
+<h4>LOG</h4>
+<pre>private static final&nbsp;org.slf4j.Logger <a href="../../../../../src-html/org/apache/hadoop/hbase/util/MovingAverage.html#line.34">LOG</a></pre>
 </li>
 </ul>
 </li>
@@ -225,13 +244,13 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <!--   -->
 </a>
 <h3>Constructor Detail</h3>
-<a name="TestOrder--">
+<a name="MovingAverage--">
 <!--   -->
 </a>
 <ul class="blockListLast">
 <li class="blockList">
-<h4>TestOrder</h4>
-<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/TestOrder.html#line.34">TestOrder</a>()</pre>
+<h4>MovingAverage</h4>
+<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/MovingAverage.html#line.33">MovingAverage</a>()</pre>
 </li>
 </ul>
 </li>
@@ -242,22 +261,78 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <!--   -->
 </a>
 <h3>Method Detail</h3>
-<a name="testApplyAscending--">
+<a name="start--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>start</h4>
+<pre>protected&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/MovingAverage.html#line.40">start</a>()</pre>
+<div class="block">Mark start time of an execution.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>time in ns.</dd>
+</dl>
+</li>
+</ul>
+<a name="stop-long-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>stop</h4>
+<pre>protected&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/MovingAverage.html#line.49">stop</a>(long&nbsp;startTime)</pre>
+<div class="block">Mark end time of an execution, and return its interval.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>startTime</code> - start time of an execution</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>elapsed time</dd>
+</dl>
+</li>
+</ul>
+<a name="measure-org.apache.hadoop.hbase.util.TimeMeasurable-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>measure</h4>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/util/MovingAverage.html" title="type parameter in MovingAverage">T</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/MovingAverage.html#line.58">measure</a>(<a href="../../../../../org/apache/hadoop/hbase/util/TimeMeasurable.html" title="interface in org.apache.hadoop.hbase.util">TimeMeasurable</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/util/MovingAverage.html" title="type parameter in Movin [...]
+<div class="block">Measure elapsed time of a measurable method.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>measurable</code> - method implements <a href="../../../../../org/apache/hadoop/hbase/util/TimeMeasurable.html" title="interface in org.apache.hadoop.hbase.util"><code>TimeMeasurable</code></a></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>T it refers to the original return type of the measurable method</dd>
+</dl>
+</li>
+</ul>
+<a name="updateMostRecentTime-long-">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>testApplyAscending</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/TestOrder.html#line.43">testApplyAscending</a>()</pre>
+<h4>updateMostRecentTime</h4>
+<pre>protected abstract&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/MovingAverage.html#line.74">updateMostRecentTime</a>(long&nbsp;elapsed)</pre>
+<div class="block">Update the most recent data.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>elapsed</code> - elapsed time of the most recent measurement</dd>
+</dl>
 </li>
 </ul>
-<a name="testApplyDescending--">
+<a name="getAverageTime--">
 <!--   -->
 </a>
 <ul class="blockListLast">
 <li class="blockList">
-<h4>testApplyDescending</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/TestOrder.html#line.65">testApplyDescending</a>()</pre>
+<h4>getAverageTime</h4>
+<pre>public abstract&nbsp;double&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/MovingAverage.html#line.80">getAverageTime</a>()</pre>
+<div class="block">Get average execution time of the measured method.</div>
+<dl>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>average time in ns</dd>
+</dl>
 </li>
 </ul>
 </li>
@@ -279,7 +354,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <li><a href="../../../../../overview-summary.html">Overview</a></li>
 <li><a href="package-summary.html">Package</a></li>
 <li class="navBarCell1Rev">Class</li>
-<li><a href="class-use/TestOrder.html">Use</a></li>
+<li><a href="class-use/MovingAverage.html">Use</a></li>
 <li><a href="package-tree.html">Tree</a></li>
 <li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
 <li><a href="../../../../../index-all.html">Index</a></li>
@@ -288,12 +363,12 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 </div>
 <div class="subNav">
 <ul class="navList">
-<li><a href="../../../../../org/apache/hadoop/hbase/util/TestMiniClusterLoadSequential.html" title="class in org.apache.hadoop.hbase.util"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
-<li><a href="../../../../../org/apache/hadoop/hbase/util/TestOrderedBytes.html" title="class in org.apache.hadoop.hbase.util"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/util/ModifyRegionUtils.RegionFillTask.html" title="interface in org.apache.hadoop.hbase.util"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/util/MunkresAssignment.html" title="class in org.apache.hadoop.hbase.util"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
 </ul>
 <ul class="navList">
-<li><a href="../../../../../index.html?org/apache/hadoop/hbase/util/TestOrder.html" target="_top">Frames</a></li>
-<li><a href="TestOrder.html" target="_top">No&nbsp;Frames</a></li>
+<li><a href="../../../../../index.html?org/apache/hadoop/hbase/util/MovingAverage.html" target="_top">Frames</a></li>
+<li><a href="MovingAverage.html" target="_top">No&nbsp;Frames</a></li>
 </ul>
 <ul class="navList" id="allclasses_navbar_bottom">
 <li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
diff --git a/devapidocs/org/apache/hadoop/hbase/util/MunkresAssignment.html b/devapidocs/org/apache/hadoop/hbase/util/MunkresAssignment.html
index da0beca..02111af 100644
--- a/devapidocs/org/apache/hadoop/hbase/util/MunkresAssignment.html
+++ b/devapidocs/org/apache/hadoop/hbase/util/MunkresAssignment.html
@@ -49,7 +49,7 @@ var activeTableTab = "activeTableTab";
 </div>
 <div class="subNav">
 <ul class="navList">
-<li><a href="../../../../../org/apache/hadoop/hbase/util/ModifyRegionUtils.RegionFillTask.html" title="interface in org.apache.hadoop.hbase.util"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/util/MovingAverage.html" title="class in org.apache.hadoop.hbase.util"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
 <li><a href="../../../../../org/apache/hadoop/hbase/util/MurmurHash.html" title="class in org.apache.hadoop.hbase.util"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
 </ul>
 <ul class="navList">
@@ -706,7 +706,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 </div>
 <div class="subNav">
 <ul class="navList">
-<li><a href="../../../../../org/apache/hadoop/hbase/util/ModifyRegionUtils.RegionFillTask.html" title="interface in org.apache.hadoop.hbase.util"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/util/MovingAverage.html" title="class in org.apache.hadoop.hbase.util"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
 <li><a href="../../../../../org/apache/hadoop/hbase/util/MurmurHash.html" title="class in org.apache.hadoop.hbase.util"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
 </ul>
 <ul class="navList">
diff --git a/devapidocs/org/apache/hadoop/hbase/util/SimpleByteRange.html b/devapidocs/org/apache/hadoop/hbase/util/SimpleByteRange.html
index 2625514..d8fb3a8 100644
--- a/devapidocs/org/apache/hadoop/hbase/util/SimpleByteRange.html
+++ b/devapidocs/org/apache/hadoop/hbase/util/SimpleByteRange.html
@@ -50,7 +50,7 @@ var activeTableTab = "activeTableTab";
 <div class="subNav">
 <ul class="navList">
 <li><a href="../../../../../org/apache/hadoop/hbase/util/ShutdownHookManager.ShutdownHookManagerV2.html" title="class in org.apache.hadoop.hbase.util"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
-<li><a href="../../../../../org/apache/hadoop/hbase/util/SimpleMutableByteRange.html" title="class in org.apache.hadoop.hbase.util"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/util/SimpleMovingAverage.html" title="class in org.apache.hadoop.hbase.util"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
 </ul>
 <ul class="navList">
 <li><a href="../../../../../index.html?org/apache/hadoop/hbase/util/SimpleByteRange.html" target="_top">Frames</a></li>
@@ -736,7 +736,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/util/AbstractByteRange.h
 <div class="subNav">
 <ul class="navList">
 <li><a href="../../../../../org/apache/hadoop/hbase/util/ShutdownHookManager.ShutdownHookManagerV2.html" title="class in org.apache.hadoop.hbase.util"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
-<li><a href="../../../../../org/apache/hadoop/hbase/util/SimpleMutableByteRange.html" title="class in org.apache.hadoop.hbase.util"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/util/SimpleMovingAverage.html" title="class in org.apache.hadoop.hbase.util"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
 </ul>
 <ul class="navList">
 <li><a href="../../../../../index.html?org/apache/hadoop/hbase/util/SimpleByteRange.html" target="_top">Frames</a></li>
diff --git a/testdevapidocs/org/apache/hadoop/hbase/util/TestOrder.html b/devapidocs/org/apache/hadoop/hbase/util/SimpleMovingAverage.html
similarity index 63%
copy from testdevapidocs/org/apache/hadoop/hbase/util/TestOrder.html
copy to devapidocs/org/apache/hadoop/hbase/util/SimpleMovingAverage.html
index dc24acc..05dc4f7 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/util/TestOrder.html
+++ b/devapidocs/org/apache/hadoop/hbase/util/SimpleMovingAverage.html
@@ -4,7 +4,7 @@
 <head>
 <!-- Generated by javadoc -->
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>TestOrder (Apache HBase 3.0.0-SNAPSHOT Test API)</title>
+<title>SimpleMovingAverage (Apache HBase 3.0.0-SNAPSHOT API)</title>
 <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
 <script type="text/javascript" src="../../../../../script.js"></script>
 </head>
@@ -12,7 +12,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="TestOrder (Apache HBase 3.0.0-SNAPSHOT Test API)";
+            parent.document.title="SimpleMovingAverage (Apache HBase 3.0.0-SNAPSHOT API)";
         }
     }
     catch(err) {
@@ -40,7 +40,7 @@ var activeTableTab = "activeTableTab";
 <li><a href="../../../../../overview-summary.html">Overview</a></li>
 <li><a href="package-summary.html">Package</a></li>
 <li class="navBarCell1Rev">Class</li>
-<li><a href="class-use/TestOrder.html">Use</a></li>
+<li><a href="class-use/SimpleMovingAverage.html">Use</a></li>
 <li><a href="package-tree.html">Tree</a></li>
 <li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
 <li><a href="../../../../../index-all.html">Index</a></li>
@@ -49,12 +49,12 @@ var activeTableTab = "activeTableTab";
 </div>
 <div class="subNav">
 <ul class="navList">
-<li><a href="../../../../../org/apache/hadoop/hbase/util/TestMiniClusterLoadSequential.html" title="class in org.apache.hadoop.hbase.util"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
-<li><a href="../../../../../org/apache/hadoop/hbase/util/TestOrderedBytes.html" title="class in org.apache.hadoop.hbase.util"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/util/SimpleByteRange.html" title="class in org.apache.hadoop.hbase.util"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/util/SimpleMutableByteRange.html" title="class in org.apache.hadoop.hbase.util"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
 </ul>
 <ul class="navList">
-<li><a href="../../../../../index.html?org/apache/hadoop/hbase/util/TestOrder.html" target="_top">Frames</a></li>
-<li><a href="TestOrder.html" target="_top">No&nbsp;Frames</a></li>
+<li><a href="../../../../../index.html?org/apache/hadoop/hbase/util/SimpleMovingAverage.html" target="_top">Frames</a></li>
+<li><a href="SimpleMovingAverage.html" target="_top">No&nbsp;Frames</a></li>
 </ul>
 <ul class="navList" id="allclasses_navbar_top">
 <li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
@@ -93,14 +93,19 @@ var activeTableTab = "activeTableTab";
 <!-- ======== START OF CLASS DATA ======== -->
 <div class="header">
 <div class="subTitle">org.apache.hadoop.hbase.util</div>
-<h2 title="Class TestOrder" class="title">Class TestOrder</h2>
+<h2 title="Class SimpleMovingAverage" class="title">Class SimpleMovingAverage</h2>
 </div>
 <div class="contentContainer">
 <ul class="inheritance">
 <li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
 <li>
 <ul class="inheritance">
-<li>org.apache.hadoop.hbase.util.TestOrder</li>
+<li><a href="../../../../../org/apache/hadoop/hbase/util/MovingAverage.html" title="class in org.apache.hadoop.hbase.util">org.apache.hadoop.hbase.util.MovingAverage</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.hadoop.hbase.util.SimpleMovingAverage</li>
+</ul>
+</li>
 </ul>
 </li>
 </ul>
@@ -109,8 +114,10 @@ var activeTableTab = "activeTableTab";
 <li class="blockList">
 <hr>
 <br>
-<pre>public class <a href="../../../../../src-html/org/apache/hadoop/hbase/util/TestOrder.html#line.34">TestOrder</a>
-extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></pre>
+<pre>@InterfaceAudience.Public
+public class <a href="../../../../../src-html/org/apache/hadoop/hbase/util/SimpleMovingAverage.html#line.27">SimpleMovingAverage</a>
+extends <a href="../../../../../org/apache/hadoop/hbase/util/MovingAverage.html" title="class in org.apache.hadoop.hbase.util">MovingAverage</a></pre>
+<div class="block">SMA measure the overall average execution time of a specific method.</div>
 </li>
 </ul>
 </div>
@@ -130,12 +137,12 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <th class="colLast" scope="col">Field and Description</th>
 </tr>
 <tr class="altColor">
-<td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/TestOrder.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
+<td class="colFirst"><code>private double</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/SimpleMovingAverage.html#averageTime">averageTime</a></span></code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
-<td class="colFirst"><code>(package private) byte[][]</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/TestOrder.html#VALS">VALS</a></span></code>&nbsp;</td>
+<td class="colFirst"><code>protected long</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/SimpleMovingAverage.html#count">count</a></span></code>&nbsp;</td>
 </tr>
 </table>
 </li>
@@ -152,7 +159,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <th class="colOne" scope="col">Constructor and Description</th>
 </tr>
 <tr class="altColor">
-<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/TestOrder.html#TestOrder--">TestOrder</a></span>()</code>&nbsp;</td>
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/SimpleMovingAverage.html#SimpleMovingAverage--">SimpleMovingAverage</a></span>()</code>&nbsp;</td>
 </tr>
 </table>
 </li>
@@ -170,15 +177,26 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <th class="colLast" scope="col">Method and Description</th>
 </tr>
 <tr id="i0" class="altColor">
-<td class="colFirst"><code>void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/TestOrder.html#testApplyAscending--">testApplyAscending</a></span>()</code>&nbsp;</td>
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/SimpleMovingAverage.html#getAverageTime--">getAverageTime</a></span>()</code>
+<div class="block">Get average execution time of the measured method.</div>
+</td>
 </tr>
 <tr id="i1" class="rowColor">
 <td class="colFirst"><code>void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/TestOrder.html#testApplyDescending--">testApplyDescending</a></span>()</code>&nbsp;</td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/SimpleMovingAverage.html#updateMostRecentTime-long-">updateMostRecentTime</a></span>(long&nbsp;elapsed)</code>
+<div class="block">Update the most recent data.</div>
+</td>
 </tr>
 </table>
 <ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.hadoop.hbase.util.MovingAverage">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/MovingAverage.html" title="class in org.apache.hadoop.hbase.util">MovingAverage</a></h3>
+<code><a href="../../../../../org/apache/hadoop/hbase/util/MovingAverage.html#measure-org.apache.hadoop.hbase.util.TimeMeasurable-">measure</a>, <a href="../../../../../org/apache/hadoop/hbase/util/MovingAverage.html#start--">start</a>, <a href="../../../../../org/apache/hadoop/hbase/util/MovingAverage.html#stop-long-">stop</a></code></li>
+</ul>
+<ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
 <!--   -->
 </a>
@@ -199,22 +217,22 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <!--   -->
 </a>
 <h3>Field Detail</h3>
-<a name="CLASS_RULE">
+<a name="averageTime">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>CLASS_RULE</h4>
-<pre>public static final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/util/TestOrder.html#line.37">CLASS_RULE</a></pre>
+<h4>averageTime</h4>
+<pre>private&nbsp;double <a href="../../../../../src-html/org/apache/hadoop/hbase/util/SimpleMovingAverage.html#line.28">averageTime</a></pre>
 </li>
 </ul>
-<a name="VALS">
+<a name="count">
 <!--   -->
 </a>
 <ul class="blockListLast">
 <li class="blockList">
-<h4>VALS</h4>
-<pre>byte[][] <a href="../../../../../src-html/org/apache/hadoop/hbase/util/TestOrder.html#line.40">VALS</a></pre>
+<h4>count</h4>
+<pre>protected&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/util/SimpleMovingAverage.html#line.29">count</a></pre>
 </li>
 </ul>
 </li>
@@ -225,13 +243,13 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <!--   -->
 </a>
 <h3>Constructor Detail</h3>
-<a name="TestOrder--">
+<a name="SimpleMovingAverage--">
 <!--   -->
 </a>
 <ul class="blockListLast">
 <li class="blockList">
-<h4>TestOrder</h4>
-<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/TestOrder.html#line.34">TestOrder</a>()</pre>
+<h4>SimpleMovingAverage</h4>
+<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/SimpleMovingAverage.html#line.31">SimpleMovingAverage</a>()</pre>
 </li>
 </ul>
 </li>
@@ -242,22 +260,38 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <!--   -->
 </a>
 <h3>Method Detail</h3>
-<a name="testApplyAscending--">
+<a name="updateMostRecentTime-long-">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>testApplyAscending</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/TestOrder.html#line.43">testApplyAscending</a>()</pre>
+<h4>updateMostRecentTime</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/SimpleMovingAverage.html#line.37">updateMostRecentTime</a>(long&nbsp;elapsed)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/util/MovingAverage.html#updateMostRecentTime-long-">MovingAverage</a></code></span></div>
+<div class="block">Update the most recent data.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/hadoop/hbase/util/MovingAverage.html#updateMostRecentTime-long-">updateMostRecentTime</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/util/MovingAverage.html" title="class in org.apache.hadoop.hbase.util">MovingAverage</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>elapsed</code> - elapsed time of the most recent measurement</dd>
+</dl>
 </li>
 </ul>
-<a name="testApplyDescending--">
+<a name="getAverageTime--">
 <!--   -->
 </a>
 <ul class="blockListLast">
 <li class="blockList">
-<h4>testApplyDescending</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/TestOrder.html#line.65">testApplyDescending</a>()</pre>
+<h4>getAverageTime</h4>
+<pre>public&nbsp;double&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/SimpleMovingAverage.html#line.42">getAverageTime</a>()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/util/MovingAverage.html#getAverageTime--">MovingAverage</a></code></span></div>
+<div class="block">Get average execution time of the measured method.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/hadoop/hbase/util/MovingAverage.html#getAverageTime--">getAverageTime</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/util/MovingAverage.html" title="class in org.apache.hadoop.hbase.util">MovingAverage</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>average time in ns</dd>
+</dl>
 </li>
 </ul>
 </li>
@@ -279,7 +313,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <li><a href="../../../../../overview-summary.html">Overview</a></li>
 <li><a href="package-summary.html">Package</a></li>
 <li class="navBarCell1Rev">Class</li>
-<li><a href="class-use/TestOrder.html">Use</a></li>
+<li><a href="class-use/SimpleMovingAverage.html">Use</a></li>
 <li><a href="package-tree.html">Tree</a></li>
 <li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
 <li><a href="../../../../../index-all.html">Index</a></li>
@@ -288,12 +322,12 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 </div>
 <div class="subNav">
 <ul class="navList">
-<li><a href="../../../../../org/apache/hadoop/hbase/util/TestMiniClusterLoadSequential.html" title="class in org.apache.hadoop.hbase.util"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
-<li><a href="../../../../../org/apache/hadoop/hbase/util/TestOrderedBytes.html" title="class in org.apache.hadoop.hbase.util"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/util/SimpleByteRange.html" title="class in org.apache.hadoop.hbase.util"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/util/SimpleMutableByteRange.html" title="class in org.apache.hadoop.hbase.util"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
 </ul>
 <ul class="navList">
-<li><a href="../../../../../index.html?org/apache/hadoop/hbase/util/TestOrder.html" target="_top">Frames</a></li>
-<li><a href="TestOrder.html" target="_top">No&nbsp;Frames</a></li>
+<li><a href="../../../../../index.html?org/apache/hadoop/hbase/util/SimpleMovingAverage.html" target="_top">Frames</a></li>
+<li><a href="SimpleMovingAverage.html" target="_top">No&nbsp;Frames</a></li>
 </ul>
 <ul class="navList" id="allclasses_navbar_bottom">
 <li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
diff --git a/devapidocs/org/apache/hadoop/hbase/util/SimpleMutableByteRange.html b/devapidocs/org/apache/hadoop/hbase/util/SimpleMutableByteRange.html
index 0a3c632..8936750 100644
--- a/devapidocs/org/apache/hadoop/hbase/util/SimpleMutableByteRange.html
+++ b/devapidocs/org/apache/hadoop/hbase/util/SimpleMutableByteRange.html
@@ -49,7 +49,7 @@ var activeTableTab = "activeTableTab";
 </div>
 <div class="subNav">
 <ul class="navList">
-<li><a href="../../../../../org/apache/hadoop/hbase/util/SimpleByteRange.html" title="class in org.apache.hadoop.hbase.util"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/util/SimpleMovingAverage.html" title="class in org.apache.hadoop.hbase.util"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
 <li><a href="../../../../../org/apache/hadoop/hbase/util/SimplePositionedByteRange.html" title="class in org.apache.hadoop.hbase.util"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
 </ul>
 <ul class="navList">
@@ -655,7 +655,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/util/AbstractByteRange.h
 </div>
 <div class="subNav">
 <ul class="navList">
-<li><a href="../../../../../org/apache/hadoop/hbase/util/SimpleByteRange.html" title="class in org.apache.hadoop.hbase.util"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/util/SimpleMovingAverage.html" title="class in org.apache.hadoop.hbase.util"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
 <li><a href="../../../../../org/apache/hadoop/hbase/util/SimplePositionedByteRange.html" title="class in org.apache.hadoop.hbase.util"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
 </ul>
 <ul class="navList">
diff --git a/devapidocs/org/apache/hadoop/hbase/util/Threads.PrintThreadInfoLazyHolder.html b/devapidocs/org/apache/hadoop/hbase/util/Threads.PrintThreadInfoLazyHolder.html
index 43bc6bc..90098df 100644
--- a/devapidocs/org/apache/hadoop/hbase/util/Threads.PrintThreadInfoLazyHolder.html
+++ b/devapidocs/org/apache/hadoop/hbase/util/Threads.PrintThreadInfoLazyHolder.html
@@ -50,7 +50,7 @@ var activeTableTab = "activeTableTab";
 <div class="subNav">
 <ul class="navList">
 <li><a href="../../../../../org/apache/hadoop/hbase/util/Threads.PrintThreadInfoHelper.html" title="interface in org.apache.hadoop.hbase.util"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
-<li><a href="../../../../../org/apache/hadoop/hbase/util/Triple.html" title="class in org.apache.hadoop.hbase.util"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/util/TimeMeasurable.html" title="interface in org.apache.hadoop.hbase.util"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
 </ul>
 <ul class="navList">
 <li><a href="../../../../../index.html?org/apache/hadoop/hbase/util/Threads.PrintThreadInfoLazyHolder.html" target="_top">Frames</a></li>
@@ -269,7 +269,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <div class="subNav">
 <ul class="navList">
 <li><a href="../../../../../org/apache/hadoop/hbase/util/Threads.PrintThreadInfoHelper.html" title="interface in org.apache.hadoop.hbase.util"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
-<li><a href="../../../../../org/apache/hadoop/hbase/util/Triple.html" title="class in org.apache.hadoop.hbase.util"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/util/TimeMeasurable.html" title="interface in org.apache.hadoop.hbase.util"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
 </ul>
 <ul class="navList">
 <li><a href="../../../../../index.html?org/apache/hadoop/hbase/util/Threads.PrintThreadInfoLazyHolder.html" target="_top">Frames</a></li>
diff --git a/devapidocs/org/apache/hadoop/hbase/util/ModifyRegionUtils.RegionFillTask.html b/devapidocs/org/apache/hadoop/hbase/util/TimeMeasurable.html
similarity index 66%
copy from devapidocs/org/apache/hadoop/hbase/util/ModifyRegionUtils.RegionFillTask.html
copy to devapidocs/org/apache/hadoop/hbase/util/TimeMeasurable.html
index 70182ae..1899e2d 100644
--- a/devapidocs/org/apache/hadoop/hbase/util/ModifyRegionUtils.RegionFillTask.html
+++ b/devapidocs/org/apache/hadoop/hbase/util/TimeMeasurable.html
@@ -4,7 +4,7 @@
 <head>
 <!-- Generated by javadoc -->
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>ModifyRegionUtils.RegionFillTask (Apache HBase 3.0.0-SNAPSHOT API)</title>
+<title>TimeMeasurable (Apache HBase 3.0.0-SNAPSHOT API)</title>
 <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
 <script type="text/javascript" src="../../../../../script.js"></script>
 </head>
@@ -12,7 +12,7 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="ModifyRegionUtils.RegionFillTask (Apache HBase 3.0.0-SNAPSHOT API)";
+            parent.document.title="TimeMeasurable (Apache HBase 3.0.0-SNAPSHOT API)";
         }
     }
     catch(err) {
@@ -40,7 +40,7 @@ var activeTableTab = "activeTableTab";
 <li><a href="../../../../../overview-summary.html">Overview</a></li>
 <li><a href="package-summary.html">Package</a></li>
 <li class="navBarCell1Rev">Class</li>
-<li><a href="class-use/ModifyRegionUtils.RegionFillTask.html">Use</a></li>
+<li><a href="class-use/TimeMeasurable.html">Use</a></li>
 <li><a href="package-tree.html">Tree</a></li>
 <li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
 <li><a href="../../../../../index-all.html">Index</a></li>
@@ -49,12 +49,12 @@ var activeTableTab = "activeTableTab";
 </div>
 <div class="subNav">
 <ul class="navList">
-<li><a href="../../../../../org/apache/hadoop/hbase/util/ModifyRegionUtils.RegionEditTask.html" title="interface in org.apache.hadoop.hbase.util"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
-<li><a href="../../../../../org/apache/hadoop/hbase/util/MunkresAssignment.html" title="class in org.apache.hadoop.hbase.util"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/util/Threads.PrintThreadInfoLazyHolder.html" title="class in org.apache.hadoop.hbase.util"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/util/Triple.html" title="class in org.apache.hadoop.hbase.util"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
 </ul>
 <ul class="navList">
-<li><a href="../../../../../index.html?org/apache/hadoop/hbase/util/ModifyRegionUtils.RegionFillTask.html" target="_top">Frames</a></li>
-<li><a href="ModifyRegionUtils.RegionFillTask.html" target="_top">No&nbsp;Frames</a></li>
+<li><a href="../../../../../index.html?org/apache/hadoop/hbase/util/TimeMeasurable.html" target="_top">Frames</a></li>
+<li><a href="TimeMeasurable.html" target="_top">No&nbsp;Frames</a></li>
 </ul>
 <ul class="navList" id="allclasses_navbar_top">
 <li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
@@ -93,19 +93,18 @@ var activeTableTab = "activeTableTab";
 <!-- ======== START OF CLASS DATA ======== -->
 <div class="header">
 <div class="subTitle">org.apache.hadoop.hbase.util</div>
-<h2 title="Interface ModifyRegionUtils.RegionFillTask" class="title">Interface ModifyRegionUtils.RegionFillTask</h2>
+<h2 title="Interface TimeMeasurable" class="title">Interface TimeMeasurable&lt;T&gt;</h2>
 </div>
 <div class="contentContainer">
 <div class="description">
 <ul class="blockList">
 <li class="blockList">
-<dl>
-<dt>Enclosing class:</dt>
-<dd><a href="../../../../../org/apache/hadoop/hbase/util/ModifyRegionUtils.html" title="class in org.apache.hadoop.hbase.util">ModifyRegionUtils</a></dd>
-</dl>
 <hr>
 <br>
-<pre>public static interface <a href="../../../../../src-html/org/apache/hadoop/hbase/util/ModifyRegionUtils.html#line.55">ModifyRegionUtils.RegionFillTask</a></pre>
+<pre>@InterfaceAudience.Public
+public interface <a href="../../../../../src-html/org/apache/hadoop/hbase/util/TimeMeasurable.html#line.28">TimeMeasurable</a>&lt;T&gt;</pre>
+<div class="block">Methods that implement this interface can be measured elapsed time.
+ It works together with <a href="../../../../../org/apache/hadoop/hbase/util/MovingAverage.html" title="class in org.apache.hadoop.hbase.util"><code>MovingAverage</code></a> to take effect.</div>
 </li>
 </ul>
 </div>
@@ -125,8 +124,10 @@ var activeTableTab = "activeTableTab";
 <th class="colLast" scope="col">Method and Description</th>
 </tr>
 <tr id="i0" class="altColor">
-<td class="colFirst"><code>void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/ModifyRegionUtils.RegionFillTask.html#fillRegion-org.apache.hadoop.hbase.regionserver.HRegion-">fillRegion</a></span>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion</a>&nbsp;region)</code>&nbsp;</td>
+<td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/util/TimeMeasurable.html" title="type parameter in TimeMeasurable">T</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/TimeMeasurable.html#measure--">measure</a></span>()</code>
+<div class="block">Measure elapsed time.</div>
+</td>
 </tr>
 </table>
 </li>
@@ -143,17 +144,17 @@ var activeTableTab = "activeTableTab";
 <!--   -->
 </a>
 <h3>Method Detail</h3>
-<a name="fillRegion-org.apache.hadoop.hbase.regionserver.HRegion-">
+<a name="measure--">
 <!--   -->
 </a>
 <ul class="blockListLast">
 <li class="blockList">
-<h4>fillRegion</h4>
-<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/ModifyRegionUtils.RegionFillTask.html#line.56">fillRegion</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion</a>&nbsp;region)
-         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>
+<h4>measure</h4>
+<pre><a href="../../../../../org/apache/hadoop/hbase/util/TimeMeasurable.html" title="type parameter in TimeMeasurable">T</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/TimeMeasurable.html#line.34">measure</a>()</pre>
+<div class="block">Measure elapsed time.</div>
 <dl>
-<dt><span class="throwsLabel">Throws:</span></dt>
-<dd><code><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></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>T</dd>
 </dl>
 </li>
 </ul>
@@ -176,7 +177,7 @@ var activeTableTab = "activeTableTab";
 <li><a href="../../../../../overview-summary.html">Overview</a></li>
 <li><a href="package-summary.html">Package</a></li>
 <li class="navBarCell1Rev">Class</li>
-<li><a href="class-use/ModifyRegionUtils.RegionFillTask.html">Use</a></li>
+<li><a href="class-use/TimeMeasurable.html">Use</a></li>
 <li><a href="package-tree.html">Tree</a></li>
 <li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
 <li><a href="../../../../../index-all.html">Index</a></li>
@@ -185,12 +186,12 @@ var activeTableTab = "activeTableTab";
 </div>
 <div class="subNav">
 <ul class="navList">
-<li><a href="../../../../../org/apache/hadoop/hbase/util/ModifyRegionUtils.RegionEditTask.html" title="interface in org.apache.hadoop.hbase.util"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
-<li><a href="../../../../../org/apache/hadoop/hbase/util/MunkresAssignment.html" title="class in org.apache.hadoop.hbase.util"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/util/Threads.PrintThreadInfoLazyHolder.html" title="class in org.apache.hadoop.hbase.util"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/util/Triple.html" title="class in org.apache.hadoop.hbase.util"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
 </ul>
 <ul class="navList">
-<li><a href="../../../../../index.html?org/apache/hadoop/hbase/util/ModifyRegionUtils.RegionFillTask.html" target="_top">Frames</a></li>
-<li><a href="ModifyRegionUtils.RegionFillTask.html" target="_top">No&nbsp;Frames</a></li>
+<li><a href="../../../../../index.html?org/apache/hadoop/hbase/util/TimeMeasurable.html" target="_top">Frames</a></li>
+<li><a href="TimeMeasurable.html" target="_top">No&nbsp;Frames</a></li>
 </ul>
 <ul class="navList" id="allclasses_navbar_bottom">
 <li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
diff --git a/devapidocs/org/apache/hadoop/hbase/util/Triple.html b/devapidocs/org/apache/hadoop/hbase/util/Triple.html
index 8c33849..be3e2ae 100644
--- a/devapidocs/org/apache/hadoop/hbase/util/Triple.html
+++ b/devapidocs/org/apache/hadoop/hbase/util/Triple.html
@@ -49,7 +49,7 @@ var activeTableTab = "activeTableTab";
 </div>
 <div class="subNav">
 <ul class="navList">
-<li><a href="../../../../../org/apache/hadoop/hbase/util/Threads.PrintThreadInfoLazyHolder.html" title="class in org.apache.hadoop.hbase.util"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/util/TimeMeasurable.html" title="interface in org.apache.hadoop.hbase.util"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
 <li><a href="../../../../../org/apache/hadoop/hbase/util/UnsafeAccess.html" title="class in org.apache.hadoop.hbase.util"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
 </ul>
 <ul class="navList">
@@ -449,7 +449,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 </div>
 <div class="subNav">
 <ul class="navList">
-<li><a href="../../../../../org/apache/hadoop/hbase/util/Threads.PrintThreadInfoLazyHolder.html" title="class in org.apache.hadoop.hbase.util"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/util/TimeMeasurable.html" title="interface in org.apache.hadoop.hbase.util"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
 <li><a href="../../../../../org/apache/hadoop/hbase/util/UnsafeAccess.html" title="class in org.apache.hadoop.hbase.util"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
 </ul>
 <ul class="navList">
diff --git a/devapidocs/org/apache/hadoop/hbase/util/WeakObjectPool.WeakObjectReference.html b/devapidocs/org/apache/hadoop/hbase/util/WeakObjectPool.WeakObjectReference.html
index 8c18bd0..9dcbe66 100644
--- a/devapidocs/org/apache/hadoop/hbase/util/WeakObjectPool.WeakObjectReference.html
+++ b/devapidocs/org/apache/hadoop/hbase/util/WeakObjectPool.WeakObjectReference.html
@@ -44,7 +44,7 @@
 <div class="subNav">
 <ul class="navList">
 <li><a href="../../../../../org/apache/hadoop/hbase/util/WeakObjectPool.html" title="class in org.apache.hadoop.hbase.util"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
-<li><a href="../../../../../org/apache/hadoop/hbase/util/Writables.html" title="class in org.apache.hadoop.hbase.util"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/util/WeightedMovingAverage.html" title="class in org.apache.hadoop.hbase.util"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
 </ul>
 <ul class="navList">
 <li><a href="../../../../../index.html?org/apache/hadoop/hbase/util/WeakObjectPool.WeakObjectReference.html" target="_top">Frames</a></li>
@@ -254,7 +254,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/ref/WeakRef
 <div class="subNav">
 <ul class="navList">
 <li><a href="../../../../../org/apache/hadoop/hbase/util/WeakObjectPool.html" title="class in org.apache.hadoop.hbase.util"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
-<li><a href="../../../../../org/apache/hadoop/hbase/util/Writables.html" title="class in org.apache.hadoop.hbase.util"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/util/WeightedMovingAverage.html" title="class in org.apache.hadoop.hbase.util"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
 </ul>
 <ul class="navList">
 <li><a href="../../../../../index.html?org/apache/hadoop/hbase/util/WeakObjectPool.WeakObjectReference.html" target="_top">Frames</a></li>
diff --git a/testdevapidocs/org/apache/hadoop/hbase/util/TestOrder.html b/devapidocs/org/apache/hadoop/hbase/util/WeightedMovingAverage.html
similarity index 56%
copy from testdevapidocs/org/apache/hadoop/hbase/util/TestOrder.html
copy to devapidocs/org/apache/hadoop/hbase/util/WeightedMovingAverage.html
index dc24acc..2d5e82d 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/util/TestOrder.html
+++ b/devapidocs/org/apache/hadoop/hbase/util/WeightedMovingAverage.html
@@ -4,7 +4,7 @@
 <head>
 <!-- Generated by javadoc -->
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>TestOrder (Apache HBase 3.0.0-SNAPSHOT Test API)</title>
+<title>WeightedMovingAverage (Apache HBase 3.0.0-SNAPSHOT API)</title>
 <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
 <script type="text/javascript" src="../../../../../script.js"></script>
 </head>
@@ -12,13 +12,13 @@
 <script type="text/javascript"><!--
     try {
         if (location.href.indexOf('is-external=true') == -1) {
-            parent.document.title="TestOrder (Apache HBase 3.0.0-SNAPSHOT Test API)";
+            parent.document.title="WeightedMovingAverage (Apache HBase 3.0.0-SNAPSHOT API)";
         }
     }
     catch(err) {
     }
 //-->
-var methods = {"i0":10,"i1":10};
+var methods = {"i0":10};
 var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
 var altColor = "altColor";
 var rowColor = "rowColor";
@@ -40,7 +40,7 @@ var activeTableTab = "activeTableTab";
 <li><a href="../../../../../overview-summary.html">Overview</a></li>
 <li><a href="package-summary.html">Package</a></li>
 <li class="navBarCell1Rev">Class</li>
-<li><a href="class-use/TestOrder.html">Use</a></li>
+<li><a href="class-use/WeightedMovingAverage.html">Use</a></li>
 <li><a href="package-tree.html">Tree</a></li>
 <li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
 <li><a href="../../../../../index-all.html">Index</a></li>
@@ -49,12 +49,12 @@ var activeTableTab = "activeTableTab";
 </div>
 <div class="subNav">
 <ul class="navList">
-<li><a href="../../../../../org/apache/hadoop/hbase/util/TestMiniClusterLoadSequential.html" title="class in org.apache.hadoop.hbase.util"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
-<li><a href="../../../../../org/apache/hadoop/hbase/util/TestOrderedBytes.html" title="class in org.apache.hadoop.hbase.util"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/util/WeakObjectPool.WeakObjectReference.html" title="class in org.apache.hadoop.hbase.util"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/util/WindowMovingAverage.html" title="class in org.apache.hadoop.hbase.util"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
 </ul>
 <ul class="navList">
-<li><a href="../../../../../index.html?org/apache/hadoop/hbase/util/TestOrder.html" target="_top">Frames</a></li>
-<li><a href="TestOrder.html" target="_top">No&nbsp;Frames</a></li>
+<li><a href="../../../../../index.html?org/apache/hadoop/hbase/util/WeightedMovingAverage.html" target="_top">Frames</a></li>
+<li><a href="WeightedMovingAverage.html" target="_top">No&nbsp;Frames</a></li>
 </ul>
 <ul class="navList" id="allclasses_navbar_top">
 <li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
@@ -93,14 +93,24 @@ var activeTableTab = "activeTableTab";
 <!-- ======== START OF CLASS DATA ======== -->
 <div class="header">
 <div class="subTitle">org.apache.hadoop.hbase.util</div>
-<h2 title="Class TestOrder" class="title">Class TestOrder</h2>
+<h2 title="Class WeightedMovingAverage" class="title">Class WeightedMovingAverage</h2>
 </div>
 <div class="contentContainer">
 <ul class="inheritance">
 <li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
 <li>
 <ul class="inheritance">
-<li>org.apache.hadoop.hbase.util.TestOrder</li>
+<li><a href="../../../../../org/apache/hadoop/hbase/util/MovingAverage.html" title="class in org.apache.hadoop.hbase.util">org.apache.hadoop.hbase.util.MovingAverage</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../../org/apache/hadoop/hbase/util/WindowMovingAverage.html" title="class in org.apache.hadoop.hbase.util">org.apache.hadoop.hbase.util.WindowMovingAverage</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.hadoop.hbase.util.WeightedMovingAverage</li>
+</ul>
+</li>
+</ul>
+</li>
 </ul>
 </li>
 </ul>
@@ -109,8 +119,11 @@ var activeTableTab = "activeTableTab";
 <li class="blockList">
 <hr>
 <br>
-<pre>public class <a href="../../../../../src-html/org/apache/hadoop/hbase/util/TestOrder.html#line.34">TestOrder</a>
-extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></pre>
+<pre>@InterfaceAudience.Public
+public class <a href="../../../../../src-html/org/apache/hadoop/hbase/util/WeightedMovingAverage.html#line.28">WeightedMovingAverage</a>
+extends <a href="../../../../../org/apache/hadoop/hbase/util/WindowMovingAverage.html" title="class in org.apache.hadoop.hbase.util">WindowMovingAverage</a></pre>
+<div class="block">Different from SMA <a href="../../../../../org/apache/hadoop/hbase/util/SimpleMovingAverage.html" title="class in org.apache.hadoop.hbase.util"><code>SimpleMovingAverage</code></a>, WeightedMovingAverage gives each data different
+ weight. And it is based on <a href="../../../../../org/apache/hadoop/hbase/util/WindowMovingAverage.html" title="class in org.apache.hadoop.hbase.util"><code>WindowMovingAverage</code></a>, such that it only focus on the last N.</div>
 </li>
 </ul>
 </div>
@@ -130,14 +143,21 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <th class="colLast" scope="col">Field and Description</th>
 </tr>
 <tr class="altColor">
-<td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a></code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/TestOrder.html#CLASS_RULE">CLASS_RULE</a></span></code>&nbsp;</td>
+<td class="colFirst"><code>private int[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/WeightedMovingAverage.html#coefficient">coefficient</a></span></code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
-<td class="colFirst"><code>(package private) byte[][]</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/TestOrder.html#VALS">VALS</a></span></code>&nbsp;</td>
+<td class="colFirst"><code>private int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/WeightedMovingAverage.html#denominator">denominator</a></span></code>&nbsp;</td>
 </tr>
 </table>
+<ul class="blockList">
+<li class="blockList"><a name="fields.inherited.from.class.org.apache.hadoop.hbase.util.WindowMovingAverage">
+<!--   -->
+</a>
+<h3>Fields inherited from class&nbsp;org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/WindowMovingAverage.html" title="class in org.apache.hadoop.hbase.util">WindowMovingAverage</a></h3>
+<code><a href="../../../../../org/apache/hadoop/hbase/util/WindowMovingAverage.html#DEFAULT_SIZE">DEFAULT_SIZE</a>, <a href="../../../../../org/apache/hadoop/hbase/util/WindowMovingAverage.html#lastN">lastN</a>, <a href="../../../../../org/apache/hadoop/hbase/util/WindowMovingAverage.html#mostRecent">mostRecent</a>, <a href="../../../../../org/apache/hadoop/hbase/util/WindowMovingAverage.html#oneRound">oneRound</a></code></li>
+</ul>
 </li>
 </ul>
 <!-- ======== CONSTRUCTOR SUMMARY ======== -->
@@ -152,7 +172,10 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <th class="colOne" scope="col">Constructor and Description</th>
 </tr>
 <tr class="altColor">
-<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/TestOrder.html#TestOrder--">TestOrder</a></span>()</code>&nbsp;</td>
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/WeightedMovingAverage.html#WeightedMovingAverage--">WeightedMovingAverage</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/WeightedMovingAverage.html#WeightedMovingAverage-int-">WeightedMovingAverage</a></span>(int&nbsp;size)</code>&nbsp;</td>
 </tr>
 </table>
 </li>
@@ -170,15 +193,27 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <th class="colLast" scope="col">Method and Description</th>
 </tr>
 <tr id="i0" class="altColor">
-<td class="colFirst"><code>void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/TestOrder.html#testApplyAscending--">testApplyAscending</a></span>()</code>&nbsp;</td>
-</tr>
-<tr id="i1" class="rowColor">
-<td class="colFirst"><code>void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/TestOrder.html#testApplyDescending--">testApplyDescending</a></span>()</code>&nbsp;</td>
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/WeightedMovingAverage.html#getAverageTime--">getAverageTime</a></span>()</code>
+<div class="block">Get average execution time of the measured method.</div>
+</td>
 </tr>
 </table>
 <ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.hadoop.hbase.util.WindowMovingAverage">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/WindowMovingAverage.html" title="class in org.apache.hadoop.hbase.util">WindowMovingAverage</a></h3>
+<code><a href="../../../../../org/apache/hadoop/hbase/util/WindowMovingAverage.html#enoughStatistics--">enoughStatistics</a>, <a href="../../../../../org/apache/hadoop/hbase/util/WindowMovingAverage.html#getMostRecentPosistion--">getMostRecentPosistion</a>, <a href="../../../../../org/apache/hadoop/hbase/util/WindowMovingAverage.html#getNumberOfStatistics--">getNumberOfStatistics</a>, <a href="../../../../../org/apache/hadoop/hbase/util/WindowMovingAverage.html#getStatisticsAtIndex-int-" [...]
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.hadoop.hbase.util.MovingAverage">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/MovingAverage.html" title="class in org.apache.hadoop.hbase.util">MovingAverage</a></h3>
+<code><a href="../../../../../org/apache/hadoop/hbase/util/MovingAverage.html#measure-org.apache.hadoop.hbase.util.TimeMeasurable-">measure</a>, <a href="../../../../../org/apache/hadoop/hbase/util/MovingAverage.html#start--">start</a>, <a href="../../../../../org/apache/hadoop/hbase/util/MovingAverage.html#stop-long-">stop</a></code></li>
+</ul>
+<ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
 <!--   -->
 </a>
@@ -199,22 +234,22 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <!--   -->
 </a>
 <h3>Field Detail</h3>
-<a name="CLASS_RULE">
+<a name="coefficient">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>CLASS_RULE</h4>
-<pre>public static final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/HBaseClassTestRule.html" title="class in org.apache.hadoop.hbase">HBaseClassTestRule</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/util/TestOrder.html#line.37">CLASS_RULE</a></pre>
+<h4>coefficient</h4>
+<pre>private&nbsp;int[] <a href="../../../../../src-html/org/apache/hadoop/hbase/util/WeightedMovingAverage.html#line.29">coefficient</a></pre>
 </li>
 </ul>
-<a name="VALS">
+<a name="denominator">
 <!--   -->
 </a>
 <ul class="blockListLast">
 <li class="blockList">
-<h4>VALS</h4>
-<pre>byte[][] <a href="../../../../../src-html/org/apache/hadoop/hbase/util/TestOrder.html#line.40">VALS</a></pre>
+<h4>denominator</h4>
+<pre>private&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/util/WeightedMovingAverage.html#line.30">denominator</a></pre>
 </li>
 </ul>
 </li>
@@ -225,13 +260,22 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <!--   -->
 </a>
 <h3>Constructor Detail</h3>
-<a name="TestOrder--">
+<a name="WeightedMovingAverage--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>WeightedMovingAverage</h4>
+<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/WeightedMovingAverage.html#line.32">WeightedMovingAverage</a>()</pre>
+</li>
+</ul>
+<a name="WeightedMovingAverage-int-">
 <!--   -->
 </a>
 <ul class="blockListLast">
 <li class="blockList">
-<h4>TestOrder</h4>
-<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/TestOrder.html#line.34">TestOrder</a>()</pre>
+<h4>WeightedMovingAverage</h4>
+<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/WeightedMovingAverage.html#line.36">WeightedMovingAverage</a>(int&nbsp;size)</pre>
 </li>
 </ul>
 </li>
@@ -242,22 +286,21 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <!--   -->
 </a>
 <h3>Method Detail</h3>
-<a name="testApplyAscending--">
-<!--   -->
-</a>
-<ul class="blockList">
-<li class="blockList">
-<h4>testApplyAscending</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/TestOrder.html#line.43">testApplyAscending</a>()</pre>
-</li>
-</ul>
-<a name="testApplyDescending--">
+<a name="getAverageTime--">
 <!--   -->
 </a>
 <ul class="blockListLast">
 <li class="blockList">
-<h4>testApplyDescending</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/TestOrder.html#line.65">testApplyDescending</a>()</pre>
+<h4>getAverageTime</h4>
+<pre>public&nbsp;double&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/WeightedMovingAverage.html#line.48">getAverageTime</a>()</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/util/MovingAverage.html#getAverageTime--">MovingAverage</a></code></span></div>
+<div class="block">Get average execution time of the measured method.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="../../../../../org/apache/hadoop/hbase/util/WindowMovingAverage.html#getAverageTime--">getAverageTime</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/util/WindowMovingAverage.html" title="class in org.apache.hadoop.hbase.util">WindowMovingAverage</a></code></dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>average time in ns</dd>
+</dl>
 </li>
 </ul>
 </li>
@@ -279,7 +322,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <li><a href="../../../../../overview-summary.html">Overview</a></li>
 <li><a href="package-summary.html">Package</a></li>
 <li class="navBarCell1Rev">Class</li>
-<li><a href="class-use/TestOrder.html">Use</a></li>
+<li><a href="class-use/WeightedMovingAverage.html">Use</a></li>
 <li><a href="package-tree.html">Tree</a></li>
 <li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
 <li><a href="../../../../../index-all.html">Index</a></li>
@@ -288,12 +331,12 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 </div>
 <div class="subNav">
 <ul class="navList">
-<li><a href="../../../../../org/apache/hadoop/hbase/util/TestMiniClusterLoadSequential.html" title="class in org.apache.hadoop.hbase.util"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
-<li><a href="../../../../../org/apache/hadoop/hbase/util/TestOrderedBytes.html" title="class in org.apache.hadoop.hbase.util"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/util/WeakObjectPool.WeakObjectReference.html" title="class in org.apache.hadoop.hbase.util"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/util/WindowMovingAverage.html" title="class in org.apache.hadoop.hbase.util"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
 </ul>
 <ul class="navList">
-<li><a href="../../../../../index.html?org/apache/hadoop/hbase/util/TestOrder.html" target="_top">Frames</a></li>
-<li><a href="TestOrder.html" target="_top">No&nbsp;Frames</a></li>
+<li><a href="../../../../../index.html?org/apache/hadoop/hbase/util/WeightedMovingAverage.html" target="_top">Frames</a></li>
+<li><a href="WeightedMovingAverage.html" target="_top">No&nbsp;Frames</a></li>
 </ul>
 <ul class="navList" id="allclasses_navbar_bottom">
 <li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
diff --git a/devapidocs/org/apache/hadoop/hbase/util/WindowMovingAverage.html b/devapidocs/org/apache/hadoop/hbase/util/WindowMovingAverage.html
new file mode 100644
index 0000000..40c12c4
--- /dev/null
+++ b/devapidocs/org/apache/hadoop/hbase/util/WindowMovingAverage.html
@@ -0,0 +1,524 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>WindowMovingAverage (Apache HBase 3.0.0-SNAPSHOT API)</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="WindowMovingAverage (Apache HBase 3.0.0-SNAPSHOT API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/WindowMovingAverage.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/hadoop/hbase/util/WeightedMovingAverage.html" title="class in org.apache.hadoop.hbase.util"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/util/Writables.html" title="class in org.apache.hadoop.hbase.util"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/hadoop/hbase/util/WindowMovingAverage.html" target="_top">Frames</a></li>
+<li><a href="WindowMovingAverage.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.hadoop.hbase.util</div>
+<h2 title="Class WindowMovingAverage" class="title">Class WindowMovingAverage</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../../org/apache/hadoop/hbase/util/MovingAverage.html" title="class in org.apache.hadoop.hbase.util">org.apache.hadoop.hbase.util.MovingAverage</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.hadoop.hbase.util.WindowMovingAverage</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>Direct Known Subclasses:</dt>
+<dd><a href="../../../../../org/apache/hadoop/hbase/util/ExponentialMovingAverage.html" title="class in org.apache.hadoop.hbase.util">ExponentialMovingAverage</a>, <a href="../../../../../org/apache/hadoop/hbase/util/WeightedMovingAverage.html" title="class in org.apache.hadoop.hbase.util">WeightedMovingAverage</a></dd>
+</dl>
+<hr>
+<br>
+<pre>@InterfaceAudience.Public
+public class <a href="../../../../../src-html/org/apache/hadoop/hbase/util/WindowMovingAverage.html#line.28">WindowMovingAverage</a>
+extends <a href="../../../../../org/apache/hadoop/hbase/util/MovingAverage.html" title="class in org.apache.hadoop.hbase.util">MovingAverage</a></pre>
+<div class="block">Instead of calculate a whole time average, this class focus on the last N.
+ The last N is stored in a circle array.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== FIELD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field.summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Field Summary table, listing fields, and an explanation">
+<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Field and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>protected static int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/WindowMovingAverage.html#DEFAULT_SIZE">DEFAULT_SIZE</a></span></code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>protected long[]</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/WindowMovingAverage.html#lastN">lastN</a></span></code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>protected int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/WindowMovingAverage.html#mostRecent">mostRecent</a></span></code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>protected boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/WindowMovingAverage.html#oneRound">oneRound</a></span></code>&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/WindowMovingAverage.html#WindowMovingAverage--">WindowMovingAverage</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/WindowMovingAverage.html#WindowMovingAverage-int-">WindowMovingAverage</a></span>(int&nbsp;size)</code>&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>protected boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/WindowMovingAverage.html#enoughStatistics--">enoughStatistics</a></span>()</code>
+<div class="block">Check if there are enough statistics.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>double</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/WindowMovingAverage.html#getAverageTime--">getAverageTime</a></span>()</code>
+<div class="block">Get average execution time of the measured method.</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>protected int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/WindowMovingAverage.html#getMostRecentPosistion--">getMostRecentPosistion</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>protected int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/WindowMovingAverage.html#getNumberOfStatistics--">getNumberOfStatistics</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code>protected long</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/WindowMovingAverage.html#getStatisticsAtIndex-int-">getStatisticsAtIndex</a></span>(int&nbsp;index)</code>
+<div class="block">Get statistics at index.</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code>protected int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/WindowMovingAverage.html#moveForwardMostRecentPosistion--">moveForwardMostRecentPosistion</a></span>()</code>
... 7941 lines suppressed ...