Published site at abaeeace004caa73a585ba1120e21d162f4556fb.
authorjenkins <builds@apache.org>
Sat, 9 Feb 2019 14:48:11 +0000 (14:48 +0000)
committerjenkins <builds@apache.org>
Sat, 9 Feb 2019 14:48:11 +0000 (14:48 +0000)
70 files changed:
acid-semantics.html
apache_hbase_reference_guide.pdf
apidocs/index-all.html
apidocs/org/apache/hadoop/hbase/util/LossyCounting.html
apidocs/src-html/org/apache/hadoop/hbase/util/LossyCounting.html
book.html
bulk-loads.html
checkstyle-aggregate.html
coc.html
dependencies.html
dependency-convergence.html
dependency-info.html
dependency-management.html
devapidocs/constant-values.html
devapidocs/index-all.html
devapidocs/org/apache/hadoop/hbase/backup/package-tree.html
devapidocs/org/apache/hadoop/hbase/client/class-use/Row.html
devapidocs/org/apache/hadoop/hbase/client/package-tree.html
devapidocs/org/apache/hadoop/hbase/coprocessor/MetaTableMetrics.ExampleRegionObserverMeta.html
devapidocs/org/apache/hadoop/hbase/coprocessor/MetaTableMetrics.html
devapidocs/org/apache/hadoop/hbase/coprocessor/class-use/ObserverContext.html
devapidocs/org/apache/hadoop/hbase/coprocessor/class-use/RegionCoprocessorEnvironment.html
devapidocs/org/apache/hadoop/hbase/filter/package-tree.html
devapidocs/org/apache/hadoop/hbase/io/hfile/package-tree.html
devapidocs/org/apache/hadoop/hbase/ipc/package-tree.html
devapidocs/org/apache/hadoop/hbase/mapreduce/package-tree.html
devapidocs/org/apache/hadoop/hbase/master/balancer/package-tree.html
devapidocs/org/apache/hadoop/hbase/master/package-tree.html
devapidocs/org/apache/hadoop/hbase/master/procedure/package-tree.html
devapidocs/org/apache/hadoop/hbase/package-tree.html
devapidocs/org/apache/hadoop/hbase/procedure2/package-tree.html
devapidocs/org/apache/hadoop/hbase/quotas/package-tree.html
devapidocs/org/apache/hadoop/hbase/regionserver/package-tree.html
devapidocs/org/apache/hadoop/hbase/replication/package-tree.html
devapidocs/org/apache/hadoop/hbase/replication/regionserver/package-tree.html
devapidocs/org/apache/hadoop/hbase/security/access/package-tree.html
devapidocs/org/apache/hadoop/hbase/security/package-tree.html
devapidocs/org/apache/hadoop/hbase/thrift/package-tree.html
devapidocs/org/apache/hadoop/hbase/util/LossyCounting.html
devapidocs/org/apache/hadoop/hbase/util/package-tree.html
devapidocs/org/apache/hadoop/hbase/wal/package-tree.html
devapidocs/src-html/org/apache/hadoop/hbase/Version.html
devapidocs/src-html/org/apache/hadoop/hbase/coprocessor/MetaTableMetrics.ExampleRegionObserverMeta.html
devapidocs/src-html/org/apache/hadoop/hbase/coprocessor/MetaTableMetrics.MetaTableOps.html
devapidocs/src-html/org/apache/hadoop/hbase/coprocessor/MetaTableMetrics.html
devapidocs/src-html/org/apache/hadoop/hbase/util/LossyCounting.html
downloads.html
export_control.html
index.html
integration.html
issue-tracking.html
license.html
mail-lists.html
metrics.html
old_news.html
plugin-management.html
plugins.html
poweredbyhbase.html
project-info.html
project-reports.html
project-summary.html
pseudo-distributed.html
replication.html
resources.html
source-repository.html
sponsors.html
supportingprojects.html
team-list.html
testdevapidocs/src-html/org/apache/hadoop/hbase/coprocessor/TestMetaTableMetrics.html
testdevapidocs/src-html/org/apache/hadoop/hbase/util/TestLossyCounting.html

index 7172095..dcce7ac 100644 (file)
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20190208" />
+    <meta name="Date-Revision-yyyymmdd" content="20190209" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013;  
       Apache HBase (TM) ACID Properties
@@ -611,7 +611,7 @@ under the License. -->
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2019-02-08</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2019-02-09</li>
             </p>
                 </div>
 
index 8c75449..6410bb4 100644 (file)
@@ -5,8 +5,8 @@
 /Author (Apache HBase Team)
 /Creator (Asciidoctor PDF 1.5.0.alpha.15, based on Prawn 2.2.2)
 /Producer (Apache HBase Team)
-/ModDate (D:20190208142938+00'00')
-/CreationDate (D:20190208144309+00'00')
+/ModDate (D:20190209142949+00'00')
+/CreationDate (D:20190209144437+00'00')
 >>
 endobj
 2 0 obj
index 58d3233..668e881 100644 (file)
 &nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/rest/client/Response.html#getBody--">getBody()</a></span> - Method in class org.apache.hadoop.hbase.rest.client.<a href="org/apache/hadoop/hbase/rest/client/Response.html" title="class in org.apache.hadoop.hbase.rest.client">Response</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/util/LossyCounting.html#getBucketSize--">getBucketSize()</a></span> - Method in class org.apache.hadoop.hbase.util.<a href="org/apache/hadoop/hbase/util/LossyCounting.html" title="class in org.apache.hadoop.hbase.util">LossyCounting</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/AsyncConnection.html#getBufferedMutator-org.apache.hadoop.hbase.TableName-">getBufferedMutator(TableName)</a></span> - Method in interface org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/AsyncConnection.html" title="interface in org.apache.hadoop.hbase.client">AsyncConnection</a></dt>
 <dd>
 <div class="block">Retrieve an <a href="org/apache/hadoop/hbase/client/AsyncBufferedMutator.html" title="interface in org.apache.hadoop.hbase.client"><code>AsyncBufferedMutator</code></a> for performing client-side buffering of writes.</div>
 <dd>
 <div class="block">Returns an <a href="org/apache/hadoop/hbase/client/AsyncBufferedMutatorBuilder.html" title="interface in org.apache.hadoop.hbase.client"><code>AsyncBufferedMutatorBuilder</code></a> for creating <a href="org/apache/hadoop/hbase/client/AsyncBufferedMutator.html" title="interface in org.apache.hadoop.hbase.client"><code>AsyncBufferedMutator</code></a>.</div>
 </dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/util/LossyCounting.html#getBuketSize--">getBuketSize()</a></span> - Method in class org.apache.hadoop.hbase.util.<a href="org/apache/hadoop/hbase/util/LossyCounting.html" title="class in org.apache.hadoop.hbase.util">LossyCounting</a></dt>
-<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/io/ByteBufferOutputStream.html#getByteBuffer--">getByteBuffer()</a></span> - Method in class org.apache.hadoop.hbase.io.<a href="org/apache/hadoop/hbase/io/ByteBufferOutputStream.html" title="class in org.apache.hadoop.hbase.io">ByteBufferOutputStream</a></dt>
 <dd>
 <div class="block">This flips the underlying BB so be sure to use it _last_!</div>
index b6a0077..22c0f93 100644 (file)
@@ -110,7 +110,7 @@ var activeTableTab = "activeTableTab";
 <hr>
 <br>
 <pre>@InterfaceAudience.Public
-public class <a href="../../../../../src-html/org/apache/hadoop/hbase/util/LossyCounting.html#line.48">LossyCounting</a>
+public class <a href="../../../../../src-html/org/apache/hadoop/hbase/util/LossyCounting.html#line.47">LossyCounting</a>
 extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></pre>
 <div class="block">LossyCounting utility, bounded data structure that maintains approximate high frequency
  elements in data stream.
@@ -168,7 +168,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 </tr>
 <tr id="i2" class="altColor">
 <td class="colFirst"><code>long</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/LossyCounting.html#getBuketSize--">getBuketSize</a></span>()</code>&nbsp;</td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/LossyCounting.html#getBucketSize--">getBucketSize</a></span>()</code>&nbsp;</td>
 </tr>
 <tr id="i3" class="rowColor">
 <td class="colFirst"><code>long</code></td>
@@ -206,7 +206,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>LossyCounting</h4>
-<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/LossyCounting.html#line.56">LossyCounting</a>(double&nbsp;errorRate)</pre>
+<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/LossyCounting.html#line.55">LossyCounting</a>(double&nbsp;errorRate)</pre>
 </li>
 </ul>
 <a name="LossyCounting--">
@@ -215,7 +215,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockListLast">
 <li class="blockList">
 <h4>LossyCounting</h4>
-<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/LossyCounting.html#line.69">LossyCounting</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/LossyCounting.html#line.67">LossyCounting</a>()</pre>
 </li>
 </ul>
 </li>
@@ -232,16 +232,16 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>addByOne</h4>
-<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/LossyCounting.html#line.79">addByOne</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;key)</pre>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/LossyCounting.html#line.71">addByOne</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;key)</pre>
 </li>
 </ul>
-<a name="getBuketSize--">
+<a name="getBucketSize--">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>getBuketSize</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/LossyCounting.html#line.119">getBuketSize</a>()</pre>
+<h4>getBucketSize</h4>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/LossyCounting.html#line.107">getBucketSize</a>()</pre>
 </li>
 </ul>
 <a name="getDataSize--">
@@ -250,7 +250,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>getDataSize</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/LossyCounting.html#line.123">getDataSize</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/LossyCounting.html#line.111">getDataSize</a>()</pre>
 </li>
 </ul>
 <a name="contains-java.lang.String-">
@@ -259,7 +259,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>contains</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/LossyCounting.html#line.127">contains</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;key)</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/LossyCounting.html#line.115">contains</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;key)</pre>
 </li>
 </ul>
 <a name="getCurrentTerm--">
@@ -268,7 +268,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockListLast">
 <li class="blockList">
 <h4>getCurrentTerm</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/LossyCounting.html#line.131">getCurrentTerm</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/LossyCounting.html#line.119">getCurrentTerm</a>()</pre>
 </li>
 </ul>
 </li>
index 2cea434..1de0937 100644 (file)
 <span class="sourceLineNo">024</span>import java.util.Set;<a name="line.24"></a>
 <span class="sourceLineNo">025</span>import java.util.concurrent.ConcurrentHashMap;<a name="line.25"></a>
 <span class="sourceLineNo">026</span><a name="line.26"></a>
-<span class="sourceLineNo">027</span>import org.apache.hadoop.conf.Configuration;<a name="line.27"></a>
-<span class="sourceLineNo">028</span>import org.apache.hadoop.hbase.HBaseConfiguration;<a name="line.28"></a>
-<span class="sourceLineNo">029</span>import org.apache.hadoop.hbase.HConstants;<a name="line.29"></a>
-<span class="sourceLineNo">030</span>import org.apache.yetus.audience.InterfaceAudience;<a name="line.30"></a>
-<span class="sourceLineNo">031</span>import org.slf4j.Logger;<a name="line.31"></a>
-<span class="sourceLineNo">032</span>import org.slf4j.LoggerFactory;<a name="line.32"></a>
+<span class="sourceLineNo">027</span>import org.apache.hadoop.hbase.HBaseConfiguration;<a name="line.27"></a>
+<span class="sourceLineNo">028</span>import org.apache.hadoop.hbase.HConstants;<a name="line.28"></a>
+<span class="sourceLineNo">029</span>import org.apache.yetus.audience.InterfaceAudience;<a name="line.29"></a>
+<span class="sourceLineNo">030</span>import org.slf4j.Logger;<a name="line.30"></a>
+<span class="sourceLineNo">031</span>import org.slf4j.LoggerFactory;<a name="line.31"></a>
+<span class="sourceLineNo">032</span><a name="line.32"></a>
 <span class="sourceLineNo">033</span><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>/**<a name="line.36"></a>
-<span class="sourceLineNo">037</span> * LossyCounting utility, bounded data structure that maintains approximate high frequency<a name="line.37"></a>
-<span class="sourceLineNo">038</span> * elements in data stream.<a name="line.38"></a>
-<span class="sourceLineNo">039</span> *<a name="line.39"></a>
-<span class="sourceLineNo">040</span> * Bucket size is 1 / error rate.  (Error rate is 0.02 by default)<a name="line.40"></a>
-<span class="sourceLineNo">041</span> * Lemma If element\ 1 does not appear in set, then is frequency is less than e * N<a name="line.41"></a>
-<span class="sourceLineNo">042</span> *       (N is total element counts until now.)<a name="line.42"></a>
-<span class="sourceLineNo">043</span> * Based on paper:<a name="line.43"></a>
-<span class="sourceLineNo">044</span> * http://www.vldb.org/conf/2002/S10P03.pdf<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>@InterfaceAudience.Public<a name="line.47"></a>
-<span class="sourceLineNo">048</span>public class LossyCounting {<a name="line.48"></a>
-<span class="sourceLineNo">049</span>  private static final Logger LOG = LoggerFactory.getLogger(LossyCounting.class);<a name="line.49"></a>
-<span class="sourceLineNo">050</span>  private long bucketSize;<a name="line.50"></a>
-<span class="sourceLineNo">051</span>  private long currentTerm;<a name="line.51"></a>
-<span class="sourceLineNo">052</span>  private double errorRate;<a name="line.52"></a>
-<span class="sourceLineNo">053</span>  private Map&lt;String, Integer&gt; data;<a name="line.53"></a>
-<span class="sourceLineNo">054</span>  private long totalDataCount;<a name="line.54"></a>
-<span class="sourceLineNo">055</span><a name="line.55"></a>
-<span class="sourceLineNo">056</span>  public LossyCounting(double errorRate) {<a name="line.56"></a>
-<span class="sourceLineNo">057</span>    this.errorRate = errorRate;<a name="line.57"></a>
-<span class="sourceLineNo">058</span>    if (errorRate &lt; 0.0 || errorRate &gt; 1.0) {<a name="line.58"></a>
-<span class="sourceLineNo">059</span>      throw new IllegalArgumentException(" Lossy Counting error rate should be within range [0,1]");<a name="line.59"></a>
-<span class="sourceLineNo">060</span>    }<a name="line.60"></a>
-<span class="sourceLineNo">061</span>    this.bucketSize = (long) Math.ceil(1 / errorRate);<a name="line.61"></a>
-<span class="sourceLineNo">062</span>    this.currentTerm = 1;<a name="line.62"></a>
-<span class="sourceLineNo">063</span>    this.totalDataCount = 0;<a name="line.63"></a>
-<span class="sourceLineNo">064</span>    this.errorRate = errorRate;<a name="line.64"></a>
-<span class="sourceLineNo">065</span>    this.data = new ConcurrentHashMap&lt;&gt;();<a name="line.65"></a>
-<span class="sourceLineNo">066</span>    calculateCurrentTerm();<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>  public LossyCounting() {<a name="line.69"></a>
-<span class="sourceLineNo">070</span>    Configuration conf = HBaseConfiguration.create();<a name="line.70"></a>
-<span class="sourceLineNo">071</span>    this.errorRate = conf.getDouble(HConstants.DEFAULT_LOSSY_COUNTING_ERROR_RATE, 0.02);<a name="line.71"></a>
-<span class="sourceLineNo">072</span>    this.bucketSize = (long) Math.ceil(1.0 / errorRate);<a name="line.72"></a>
-<span class="sourceLineNo">073</span>    this.currentTerm = 1;<a name="line.73"></a>
-<span class="sourceLineNo">074</span>    this.totalDataCount = 0;<a name="line.74"></a>
-<span class="sourceLineNo">075</span>    this.data = new ConcurrentHashMap&lt;&gt;();<a name="line.75"></a>
-<span class="sourceLineNo">076</span>    calculateCurrentTerm();<a name="line.76"></a>
-<span class="sourceLineNo">077</span>  }<a name="line.77"></a>
-<span class="sourceLineNo">078</span><a name="line.78"></a>
-<span class="sourceLineNo">079</span>  public Set&lt;String&gt; addByOne(String key) {<a name="line.79"></a>
-<span class="sourceLineNo">080</span>    if(data.containsKey(key)) {<a name="line.80"></a>
-<span class="sourceLineNo">081</span>      data.put(key, data.get(key) +1);<a name="line.81"></a>
-<span class="sourceLineNo">082</span>    } else {<a name="line.82"></a>
-<span class="sourceLineNo">083</span>      data.put(key, 1);<a name="line.83"></a>
-<span class="sourceLineNo">084</span>    }<a name="line.84"></a>
-<span class="sourceLineNo">085</span>    totalDataCount++;<a name="line.85"></a>
-<span class="sourceLineNo">086</span>    calculateCurrentTerm();<a name="line.86"></a>
+<span class="sourceLineNo">035</span>/**<a name="line.35"></a>
+<span class="sourceLineNo">036</span> * LossyCounting utility, bounded data structure that maintains approximate high frequency<a name="line.36"></a>
+<span class="sourceLineNo">037</span> * elements in data stream.<a name="line.37"></a>
+<span class="sourceLineNo">038</span> *<a name="line.38"></a>
+<span class="sourceLineNo">039</span> * Bucket size is 1 / error rate.  (Error rate is 0.02 by default)<a name="line.39"></a>
+<span class="sourceLineNo">040</span> * Lemma If element\ 1 does not appear in set, then is frequency is less than e * N<a name="line.40"></a>
+<span class="sourceLineNo">041</span> *       (N is total element counts until now.)<a name="line.41"></a>
+<span class="sourceLineNo">042</span> * Based on paper:<a name="line.42"></a>
+<span class="sourceLineNo">043</span> * http://www.vldb.org/conf/2002/S10P03.pdf<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>@InterfaceAudience.Public<a name="line.46"></a>
+<span class="sourceLineNo">047</span>public class LossyCounting {<a name="line.47"></a>
+<span class="sourceLineNo">048</span>  private static final Logger LOG = LoggerFactory.getLogger(LossyCounting.class);<a name="line.48"></a>
+<span class="sourceLineNo">049</span>  private long bucketSize;<a name="line.49"></a>
+<span class="sourceLineNo">050</span>  private long currentTerm;<a name="line.50"></a>
+<span class="sourceLineNo">051</span>  private double errorRate;<a name="line.51"></a>
+<span class="sourceLineNo">052</span>  private Map&lt;String, Integer&gt; data;<a name="line.52"></a>
+<span class="sourceLineNo">053</span>  private long totalDataCount;<a name="line.53"></a>
+<span class="sourceLineNo">054</span><a name="line.54"></a>
+<span class="sourceLineNo">055</span>  public LossyCounting(double errorRate) {<a name="line.55"></a>
+<span class="sourceLineNo">056</span>    this.errorRate = errorRate;<a name="line.56"></a>
+<span class="sourceLineNo">057</span>    if (errorRate &lt; 0.0 || errorRate &gt; 1.0) {<a name="line.57"></a>
+<span class="sourceLineNo">058</span>      throw new IllegalArgumentException(" Lossy Counting error rate should be within range [0,1]");<a name="line.58"></a>
+<span class="sourceLineNo">059</span>    }<a name="line.59"></a>
+<span class="sourceLineNo">060</span>    this.bucketSize = (long) Math.ceil(1 / errorRate);<a name="line.60"></a>
+<span class="sourceLineNo">061</span>    this.currentTerm = 1;<a name="line.61"></a>
+<span class="sourceLineNo">062</span>    this.totalDataCount = 0;<a name="line.62"></a>
+<span class="sourceLineNo">063</span>    this.data = new ConcurrentHashMap&lt;&gt;();<a name="line.63"></a>
+<span class="sourceLineNo">064</span>    calculateCurrentTerm();<a name="line.64"></a>
+<span class="sourceLineNo">065</span>  }<a name="line.65"></a>
+<span class="sourceLineNo">066</span><a name="line.66"></a>
+<span class="sourceLineNo">067</span>  public LossyCounting() {<a name="line.67"></a>
+<span class="sourceLineNo">068</span>    this(HBaseConfiguration.create().getDouble(HConstants.DEFAULT_LOSSY_COUNTING_ERROR_RATE, 0.02));<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>  public Set&lt;String&gt; addByOne(String key) {<a name="line.71"></a>
+<span class="sourceLineNo">072</span>    data.put(key, data.getOrDefault(key, 0) + 1);<a name="line.72"></a>
+<span class="sourceLineNo">073</span>    totalDataCount++;<a name="line.73"></a>
+<span class="sourceLineNo">074</span>    calculateCurrentTerm();<a name="line.74"></a>
+<span class="sourceLineNo">075</span>    Set&lt;String&gt; dataToBeSwept = new HashSet&lt;&gt;();<a name="line.75"></a>
+<span class="sourceLineNo">076</span>    if(totalDataCount % bucketSize == 0) {<a name="line.76"></a>
+<span class="sourceLineNo">077</span>      dataToBeSwept = sweep();<a name="line.77"></a>
+<span class="sourceLineNo">078</span>    }<a name="line.78"></a>
+<span class="sourceLineNo">079</span>    return dataToBeSwept;<a name="line.79"></a>
+<span class="sourceLineNo">080</span>  }<a name="line.80"></a>
+<span class="sourceLineNo">081</span><a name="line.81"></a>
+<span class="sourceLineNo">082</span>  /**<a name="line.82"></a>
+<span class="sourceLineNo">083</span>   * sweep low frequency data<a name="line.83"></a>
+<span class="sourceLineNo">084</span>   * @return Names of elements got swept<a name="line.84"></a>
+<span class="sourceLineNo">085</span>   */<a name="line.85"></a>
+<span class="sourceLineNo">086</span>  private Set&lt;String&gt; sweep() {<a name="line.86"></a>
 <span class="sourceLineNo">087</span>    Set&lt;String&gt; dataToBeSwept = new HashSet&lt;&gt;();<a name="line.87"></a>
-<span class="sourceLineNo">088</span>    if(totalDataCount % bucketSize == 0) {<a name="line.88"></a>
-<span class="sourceLineNo">089</span>      dataToBeSwept = sweep();<a name="line.89"></a>
-<span class="sourceLineNo">090</span>    }<a name="line.90"></a>
-<span class="sourceLineNo">091</span>    return dataToBeSwept;<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>  /**<a name="line.94"></a>
-<span class="sourceLineNo">095</span>   * sweep low frequency data<a name="line.95"></a>
-<span class="sourceLineNo">096</span>   * @return Names of elements got swept<a name="line.96"></a>
-<span class="sourceLineNo">097</span>   */<a name="line.97"></a>
-<span class="sourceLineNo">098</span>  private Set&lt;String&gt; sweep() {<a name="line.98"></a>
-<span class="sourceLineNo">099</span>    Set&lt;String&gt; dataToBeSwept = new HashSet&lt;&gt;();<a name="line.99"></a>
-<span class="sourceLineNo">100</span>    for(Map.Entry&lt;String, Integer&gt; entry : data.entrySet()) {<a name="line.100"></a>
-<span class="sourceLineNo">101</span>      if(entry.getValue() + errorRate &lt; currentTerm) {<a name="line.101"></a>
-<span class="sourceLineNo">102</span>        dataToBeSwept.add(entry.getKey());<a name="line.102"></a>
-<span class="sourceLineNo">103</span>      }<a name="line.103"></a>
-<span class="sourceLineNo">104</span>    }<a name="line.104"></a>
-<span class="sourceLineNo">105</span>    for(String key : dataToBeSwept) {<a name="line.105"></a>
-<span class="sourceLineNo">106</span>      data.remove(key);<a name="line.106"></a>
-<span class="sourceLineNo">107</span>    }<a name="line.107"></a>
-<span class="sourceLineNo">108</span>    LOG.debug(String.format("Swept %d of elements.", dataToBeSwept.size()));<a name="line.108"></a>
-<span class="sourceLineNo">109</span>    return dataToBeSwept;<a name="line.109"></a>
-<span class="sourceLineNo">110</span>  }<a name="line.110"></a>
-<span class="sourceLineNo">111</span><a name="line.111"></a>
-<span class="sourceLineNo">112</span>  /**<a name="line.112"></a>
-<span class="sourceLineNo">113</span>   * Calculate and set current term<a name="line.113"></a>
-<span class="sourceLineNo">114</span>   */<a name="line.114"></a>
-<span class="sourceLineNo">115</span>  private void calculateCurrentTerm() {<a name="line.115"></a>
-<span class="sourceLineNo">116</span>    this.currentTerm = (int) Math.ceil(1.0 * totalDataCount / bucketSize);<a name="line.116"></a>
+<span class="sourceLineNo">088</span>    for(Map.Entry&lt;String, Integer&gt; entry : data.entrySet()) {<a name="line.88"></a>
+<span class="sourceLineNo">089</span>      if(entry.getValue() + errorRate &lt; currentTerm) {<a name="line.89"></a>
+<span class="sourceLineNo">090</span>        dataToBeSwept.add(entry.getKey());<a name="line.90"></a>
+<span class="sourceLineNo">091</span>      }<a name="line.91"></a>
+<span class="sourceLineNo">092</span>    }<a name="line.92"></a>
+<span class="sourceLineNo">093</span>    for(String key : dataToBeSwept) {<a name="line.93"></a>
+<span class="sourceLineNo">094</span>      data.remove(key);<a name="line.94"></a>
+<span class="sourceLineNo">095</span>    }<a name="line.95"></a>
+<span class="sourceLineNo">096</span>    LOG.debug(String.format("Swept %d elements.", dataToBeSwept.size()));<a name="line.96"></a>
+<span class="sourceLineNo">097</span>    return dataToBeSwept;<a name="line.97"></a>
+<span class="sourceLineNo">098</span>  }<a name="line.98"></a>
+<span class="sourceLineNo">099</span><a name="line.99"></a>
+<span class="sourceLineNo">100</span>  /**<a name="line.100"></a>
+<span class="sourceLineNo">101</span>   * Calculate and set current term<a name="line.101"></a>
+<span class="sourceLineNo">102</span>   */<a name="line.102"></a>
+<span class="sourceLineNo">103</span>  private void calculateCurrentTerm() {<a name="line.103"></a>
+<span class="sourceLineNo">104</span>    this.currentTerm = (int) Math.ceil(1.0 * totalDataCount / bucketSize);<a name="line.104"></a>
+<span class="sourceLineNo">105</span>  }<a name="line.105"></a>
+<span class="sourceLineNo">106</span><a name="line.106"></a>
+<span class="sourceLineNo">107</span>  public long getBucketSize(){<a name="line.107"></a>
+<span class="sourceLineNo">108</span>    return bucketSize;<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>  public long getDataSize() {<a name="line.111"></a>
+<span class="sourceLineNo">112</span>    return data.size();<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>  public boolean contains(String key) {<a name="line.115"></a>
+<span class="sourceLineNo">116</span>    return data.containsKey(key);<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>  public long getBuketSize(){<a name="line.119"></a>
-<span class="sourceLineNo">120</span>    return bucketSize;<a name="line.120"></a>
+<span class="sourceLineNo">119</span>  public long getCurrentTerm() {<a name="line.119"></a>
+<span class="sourceLineNo">120</span>    return currentTerm;<a name="line.120"></a>
 <span class="sourceLineNo">121</span>  }<a name="line.121"></a>
-<span class="sourceLineNo">122</span><a name="line.122"></a>
-<span class="sourceLineNo">123</span>  public long getDataSize() {<a name="line.123"></a>
-<span class="sourceLineNo">124</span>    return data.size();<a name="line.124"></a>
-<span class="sourceLineNo">125</span>  }<a name="line.125"></a>
-<span class="sourceLineNo">126</span><a name="line.126"></a>
-<span class="sourceLineNo">127</span>  public boolean contains(String key) {<a name="line.127"></a>
-<span class="sourceLineNo">128</span>    return data.containsKey(key);<a name="line.128"></a>
-<span class="sourceLineNo">129</span>  }<a name="line.129"></a>
-<span class="sourceLineNo">130</span><a name="line.130"></a>
-<span class="sourceLineNo">131</span>  public long getCurrentTerm() {<a name="line.131"></a>
-<span class="sourceLineNo">132</span>    return currentTerm;<a name="line.132"></a>
-<span class="sourceLineNo">133</span>  }<a name="line.133"></a>
-<span class="sourceLineNo">134</span>}<a name="line.134"></a>
-<span class="sourceLineNo">135</span><a name="line.135"></a>
+<span class="sourceLineNo">122</span>}<a name="line.122"></a>
+<span class="sourceLineNo">123</span><a name="line.123"></a>
 
 
 
index 819297f..72da241 100644 (file)
--- a/book.html
+++ b/book.html
@@ -41579,7 +41579,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-02-08 14:29:38 UTC
+Last updated 2019-02-09 14:29:49 UTC
 </div>
 </div>
 </body>
index 1b842ba..f8bf1a1 100644 (file)
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20190208" />
+    <meta name="Date-Revision-yyyymmdd" content="20190209" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013;  
       Bulk Loads in Apache HBase (TM)
@@ -316,7 +316,7 @@ under the License. -->
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2019-02-08</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2019-02-09</li>
             </p>
                 </div>
 
index 3e42163..2844fcd 100644 (file)
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20190208" />
+    <meta name="Date-Revision-yyyymmdd" content="20190209" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Checkstyle Results</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.4-HBase.min.css" />
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2019-02-08</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2019-02-09</li>
             </p>
                 </div>
 
index 4aabec4..15fef90 100644 (file)
--- a/coc.html
+++ b/coc.html
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20190208" />
+    <meta name="Date-Revision-yyyymmdd" content="20190209" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; 
       Code of Conduct Policy
@@ -385,7 +385,7 @@ email to <a class="externalLink" href="mailto:private@hbase.apache.org">the priv
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2019-02-08</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2019-02-09</li>
             </p>
                 </div>
 
index ffae443..a6e328b 100644 (file)
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20190208" />
+    <meta name="Date-Revision-yyyymmdd" content="20190209" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Project Dependencies</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.4-HBase.min.css" />
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2019-02-08</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2019-02-09</li>
             </p>
                 </div>
 
index 4d927eb..d1aadd0 100644 (file)
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20190208" />
+    <meta name="Date-Revision-yyyymmdd" content="20190209" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Reactor Dependency Convergence</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.4-HBase.min.css" />
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2019-02-08</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2019-02-09</li>
             </p>
                 </div>
 
index f708873..13b5e5f 100644 (file)
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20190208" />
+    <meta name="Date-Revision-yyyymmdd" content="20190209" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Dependency Information</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.4-HBase.min.css" />
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2019-02-08</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2019-02-09</li>
             </p>
                 </div>
 
index b3ac7e5..66586b8 100644 (file)
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20190208" />
+    <meta name="Date-Revision-yyyymmdd" content="20190209" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Project Dependency Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.4-HBase.min.css" />
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2019-02-08</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2019-02-09</li>
             </p>
                 </div>
 
index 23ca649..d39d0f1 100644 (file)
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
 <td><code><a href="org/apache/hadoop/hbase/Version.html#date">date</a></code></td>
-<td class="colLast"><code>"Fri Feb  8 14:38:15 UTC 2019"</code></td>
+<td class="colLast"><code>"Sat Feb  9 14:39:33 UTC 2019"</code></td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><a name="org.apache.hadoop.hbase.Version.revision">
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
 <td><code><a href="org/apache/hadoop/hbase/Version.html#srcChecksum">srcChecksum</a></code></td>
-<td class="colLast"><code>"df02cec456136adb32e486f495015764"</code></td>
+<td class="colLast"><code>"aedd507004ce91ad86a5f879dcdfee69"</code></td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><a name="org.apache.hadoop.hbase.Version.url">
index 0220402..4f54a27 100644 (file)
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/io/hfile/bucket/BucketAllocator.html#getBuckets--">getBuckets()</a></span> - Method in class org.apache.hadoop.hbase.io.hfile.bucket.<a href="org/apache/hadoop/hbase/io/hfile/bucket/BucketAllocator.html" title="class in org.apache.hadoop.hbase.io.hfile.bucket">BucketAllocator</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/util/LossyCounting.html#getBucketSize--">getBucketSize()</a></span> - Method in class org.apache.hadoop.hbase.util.<a href="org/apache/hadoop/hbase/util/LossyCounting.html" title="class in org.apache.hadoop.hbase.util">LossyCounting</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/ByteBufferKeyValue.html#getBuffer--">getBuffer()</a></span> - Method in class org.apache.hadoop.hbase.<a href="org/apache/hadoop/hbase/ByteBufferKeyValue.html" title="class in org.apache.hadoop.hbase">ByteBufferKeyValue</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/io/ByteArrayOutputStream.html#getBuffer--">getBuffer()</a></span> - Method in class org.apache.hadoop.hbase.io.<a href="org/apache/hadoop/hbase/io/ByteArrayOutputStream.html" title="class in org.apache.hadoop.hbase.io">ByteArrayOutputStream</a></dt>
 </dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/wal/WALKeyImpl.html#getBuilder-org.apache.hadoop.hbase.regionserver.wal.WALCellCodec.ByteStringCompressor-">getBuilder(WALCellCodec.ByteStringCompressor)</a></span> - Method in class org.apache.hadoop.hbase.wal.<a href="org/apache/hadoop/hbase/wal/WALKeyImpl.html" title="class in org.apache.hadoop.hbase.wal">WALKeyImpl</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/util/LossyCounting.html#getBuketSize--">getBuketSize()</a></span> - Method in class org.apache.hadoop.hbase.util.<a href="org/apache/hadoop/hbase/util/LossyCounting.html" title="class in org.apache.hadoop.hbase.util">LossyCounting</a></dt>
-<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/wal/WALEdit.html#getBulkLoadDescriptor-org.apache.hadoop.hbase.Cell-">getBulkLoadDescriptor(Cell)</a></span> - Static method in class org.apache.hadoop.hbase.wal.<a href="org/apache/hadoop/hbase/wal/WALEdit.html" title="class in org.apache.hadoop.hbase.wal">WALEdit</a></dt>
 <dd>
 <div class="block">Deserialized and returns a BulkLoadDescriptor from the passed in Cell</div>
@@ -93492,6 +93492,10 @@ service.</div>
 <dd>
 <div class="block">Registers the <a href="org/apache/hadoop/hbase/metrics/Metric.html" title="interface in org.apache.hadoop.hbase.metrics"><code>Metric</code></a>s in the given MetricSet.</div>
 </dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/coprocessor/MetaTableMetrics.ExampleRegionObserverMeta.html#registerAndMarkMeterIfNotPresent-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-">registerAndMarkMeterIfNotPresent(ObserverContext&lt;RegionCoprocessorEnvironment&gt;, String)</a></span> - Method in class org.apache.hadoop.hbase.coprocessor.<a href="org/apache/hadoop/hbase/coprocessor/MetaTableMetrics.ExampleRegionObserverMeta.html" title="class in org.apache.hadoop.hbase.coprocessor">MetaTableMetrics.ExampleRegionObserverMeta</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/coprocessor/MetaTableMetrics.ExampleRegionObserverMeta.html#registerAndMarkMetrics-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.Row-">registerAndMarkMetrics(ObserverContext&lt;RegionCoprocessorEnvironment&gt;, Row)</a></span> - Method in class org.apache.hadoop.hbase.coprocessor.<a href="org/apache/hadoop/hbase/coprocessor/MetaTableMetrics.ExampleRegionObserverMeta.html" title="class in org.apache.hadoop.hbase.coprocessor">MetaTableMetrics.ExampleRegionObserverMeta</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/conf/PropagatingConfigurationObserver.html#registerChildren-org.apache.hadoop.hbase.conf.ConfigurationManager-">registerChildren(ConfigurationManager)</a></span> - Method in interface org.apache.hadoop.hbase.conf.<a href="org/apache/hadoop/hbase/conf/PropagatingConfigurationObserver.html" title="interface in org.apache.hadoop.hbase.conf">PropagatingConfigurationObserver</a></dt>
 <dd>
 <div class="block">Needs to be called to register the children to the manager.</div>
index 31d7009..e8802e0 100644 (file)
 <li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
 <ul>
 <li type="circle">org.apache.hadoop.hbase.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/BackupInfo.BackupState.html" title="enum in org.apache.hadoop.hbase.backup"><span class="typeNameLink">BackupInfo.BackupState</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.backup.<a href="../../../../../org/apache/hadoop/hbase/backup/BackupType.html" title="enum in org.apache.hadoop.hbase.backup"><span class="typeNameLink">BackupType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.backup.<a href="../../../../../org/apache/hadoop/hbase/backup/BackupRestoreConstants.BackupCommand.html" title="enum in org.apache.hadoop.hbase.backup"><span class="typeNameLink">BackupRestoreConstants.BackupCommand</span></a></li>
 </ul>
 </li>
index e7cca65..21c56d4 100644 (file)
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>private void</code></td>
+<td class="colLast"><span class="typeNameLabel">MetaTableMetrics.ExampleRegionObserverMeta.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MetaTableMetrics.ExampleRegionObserverMeta.html#registerAndMarkMetrics-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.Row-">registerAndMarkMetrics</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/RegionCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">RegionCoprocessorEnvironment</a>&gt;&nbsp;e,
+                      <a href="../../../../../../org/apache/hadoop/hbase/client/Row.html" title="interface in org.apache.hadoop.hbase.client">Row</a>&nbsp;row)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>private void</code></td>
 <td class="colLast"><span class="typeNameLabel">MetaTableMetrics.ExampleRegionObserverMeta.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MetaTableMetrics.ExampleRegionObserverMeta.html#tableMetricRegisterAndMark-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.Row-">tableMetricRegisterAndMark</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/RegionCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">RegionCoprocessorEnvironment</a>&gt;&nbsp;e,
                           <a href="../../../../../../org/apache/hadoop/hbase/client/Row.html" title="interface in org.apache.hadoop.hbase.client">Row</a>&nbsp;op)</code>&nbsp;</td>
 </tr>
index 8069e35..1e6ccae 100644 (file)
 <ul>
 <li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
 <ul>
-<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/TableState.State.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">TableState.State</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/AsyncScanSingleRegionRpcRetryingCaller.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/ScannerCallable.MoreResults.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">ScannerCallable.MoreResults</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/AsyncRequestFutureImpl.Retry.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">AsyncRequestFutureImpl.Retry</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/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/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/AsyncProcessTask.SubmittedRows.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">AsyncProcessTask.SubmittedRows</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/AsyncScanSingleRegionRpcRetryingCaller.ScanControllerState.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">AsyncScanSingleRegionRpcRetryingCaller.ScanControllerState</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/IsolationLevel.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">IsolationLevel</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/SnapshotType.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">SnapshotType</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/RequestController.ReturnCode.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">RequestController.ReturnCode</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/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/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/ScannerCallable.MoreResults.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">ScannerCallable.MoreResults</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/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/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/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/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/AsyncRequestFutureImpl.Retry.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">AsyncRequestFutureImpl.Retry</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/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/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/AsyncProcessTask.SubmittedRows.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">AsyncProcessTask.SubmittedRows</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/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/MobCompactPartitionPolicy.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">MobCompactPartitionPolicy</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/CompactType.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">CompactType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/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/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/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/RequestController.ReturnCode.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">RequestController.ReturnCode</span></a></li>
 </ul>
 </li>
 </ul>
index a29add4..230c444 100644 (file)
@@ -18,7 +18,7 @@
     catch(err) {
     }
 //-->
-var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10,"i16":10,"i17":10,"i18":10,"i19":10};
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10,"i16":10,"i17":10,"i18":10,"i19":10,"i20":10,"i21":10};
 var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
 var altColor = "altColor";
 var rowColor = "rowColor";
@@ -279,22 +279,32 @@ implements <a href="../../../../../org/apache/hadoop/hbase/coprocessor/RegionCop
 </tr>
 <tr id="i16" class="altColor">
 <td class="colFirst"><code>private void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/coprocessor/MetaTableMetrics.ExampleRegionObserverMeta.html#registerAndMarkMeterIfNotPresent-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-">registerAndMarkMeterIfNotPresent</a></span>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/RegionCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">RegionCoprocessorEnvironment</a>&gt;&nbsp;e,
+                                <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)</code>&nbsp;</td>
+</tr>
+<tr id="i17" class="rowColor">
+<td class="colFirst"><code>private void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/coprocessor/MetaTableMetrics.ExampleRegionObserverMeta.html#registerAndMarkMetrics-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.Row-">registerAndMarkMetrics</a></span>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/RegionCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">RegionCoprocessorEnvironment</a>&gt;&nbsp;e,
+                      <a href="../../../../../org/apache/hadoop/hbase/client/Row.html" title="interface in org.apache.hadoop.hbase.client">Row</a>&nbsp;row)</code>&nbsp;</td>
+</tr>
+<tr id="i18" class="altColor">
+<td class="colFirst"><code>private void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/coprocessor/MetaTableMetrics.ExampleRegionObserverMeta.html#registerLossyCountingMeterIfNotPresent-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-org.apache.hadoop.hbase.util.LossyCounting-">registerLossyCountingMeterIfNotPresent</a></span>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/RegionCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">RegionCoprocessorEnvironment</a>&gt;&nbsp;e,
                                       <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;requestMeter,
                                       <a href="../../../../../org/apache/hadoop/hbase/util/LossyCounting.html" title="class in org.apache.hadoop.hbase.util">LossyCounting</a>&nbsp;lossyCounting)</code>
 <div class="block">Registers and counts lossyCount for Meters that kept by lossy counting.</div>
 </td>
 </tr>
-<tr id="i17" class="rowColor">
+<tr id="i19" class="rowColor">
 <td class="colFirst"><code>private void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/coprocessor/MetaTableMetrics.ExampleRegionObserverMeta.html#registerMeterIfNotPresent-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-">registerMeterIfNotPresent</a></span>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/RegionCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">RegionCoprocessorEnvironment</a>&gt;&nbsp;e,
                          <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;requestMeter)</code>&nbsp;</td>
 </tr>
-<tr id="i18" class="altColor">
+<tr id="i20" class="altColor">
 <td class="colFirst"><code>private <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/coprocessor/MetaTableMetrics.ExampleRegionObserverMeta.html#tableMeterName-java.lang.String-">tableMeterName</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;tableName)</code>&nbsp;</td>
 </tr>
-<tr id="i19" class="rowColor">
+<tr id="i21" class="rowColor">
 <td class="colFirst"><code>private void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/coprocessor/MetaTableMetrics.ExampleRegionObserverMeta.html#tableMetricRegisterAndMark-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.Row-">tableMetricRegisterAndMark</a></span>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/RegionCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">RegionCoprocessorEnvironment</a>&gt;&nbsp;e,
                           <a href="../../../../../org/apache/hadoop/hbase/client/Row.html" title="interface in org.apache.hadoop.hbase.client">Row</a>&nbsp;op)</code>&nbsp;</td>
@@ -407,7 +417,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/coprocessor/RegionCop
 <ul class="blockList">
 <li class="blockList">
 <h4>prePut</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/coprocessor/MetaTableMetrics.ExampleRegionObserverMeta.html#line.89">prePut</a>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/RegionCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">RegionCoprocessorEnvironment</a>&gt;&nbsp;e,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/coprocessor/MetaTableMetrics.ExampleRegionObserverMeta.html#line.82">prePut</a>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/RegionCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">RegionCoprocessorEnvironment</a>&gt;&nbsp;e,
                    <a href="../../../../../org/apache/hadoop/hbase/client/Put.html" title="class in org.apache.hadoop.hbase.client">Put</a>&nbsp;put,
                    <a href="../../../../../org/apache/hadoop/hbase/wal/WALEdit.html" title="class in org.apache.hadoop.hbase.wal">WALEdit</a>&nbsp;edit,
                    <a href="../../../../../org/apache/hadoop/hbase/client/Durability.html" title="enum in org.apache.hadoop.hbase.client">Durability</a>&nbsp;durability)
@@ -439,7 +449,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/coprocessor/RegionCop
 <ul class="blockList">
 <li class="blockList">
 <h4>preDelete</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/coprocessor/MetaTableMetrics.ExampleRegionObserverMeta.html#line.102">preDelete</a>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/RegionCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">RegionCoprocessorEnvironment</a>&gt;&nbsp;e,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/coprocessor/MetaTableMetrics.ExampleRegionObserverMeta.html#line.88">preDelete</a>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/RegionCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">RegionCoprocessorEnvironment</a>&gt;&nbsp;e,
                       <a href="../../../../../org/apache/hadoop/hbase/client/Delete.html" title="class in org.apache.hadoop.hbase.client">Delete</a>&nbsp;delete,
                       <a href="../../../../../org/apache/hadoop/hbase/wal/WALEdit.html" title="class in org.apache.hadoop.hbase.wal">WALEdit</a>&nbsp;edit,
                       <a href="../../../../../org/apache/hadoop/hbase/client/Durability.html" title="enum in org.apache.hadoop.hbase.client">Durability</a>&nbsp;durability)
@@ -465,13 +475,23 @@ implements <a href="../../../../../org/apache/hadoop/hbase/coprocessor/RegionCop
 </dl>
 </li>
 </ul>
+<a name="registerAndMarkMetrics-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.Row-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>registerAndMarkMetrics</h4>
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/coprocessor/MetaTableMetrics.ExampleRegionObserverMeta.html#line.93">registerAndMarkMetrics</a>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/RegionCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">RegionCoprocessorEnvironment</a>&gt;&nbsp;e,
+                                    <a href="../../../../../org/apache/hadoop/hbase/client/Row.html" title="interface in org.apache.hadoop.hbase.client">Row</a>&nbsp;row)</pre>
+</li>
+</ul>
 <a name="markMeterIfPresent-java.lang.String-">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>markMeterIfPresent</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/coprocessor/MetaTableMetrics.ExampleRegionObserverMeta.html#line.114">markMeterIfPresent</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;requestMeter)</pre>
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/coprocessor/MetaTableMetrics.ExampleRegionObserverMeta.html#line.104">markMeterIfPresent</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;requestMeter)</pre>
 </li>
 </ul>
 <a name="registerMeterIfNotPresent-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-">
@@ -480,7 +500,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/coprocessor/RegionCop
 <ul class="blockList">
 <li class="blockList">
 <h4>registerMeterIfNotPresent</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/coprocessor/MetaTableMetrics.ExampleRegionObserverMeta.html#line.125">registerMeterIfNotPresent</a>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/RegionCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">RegionCoprocessorEnvironment</a>&gt;&nbsp;e,
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/coprocessor/MetaTableMetrics.ExampleRegionObserverMeta.html#line.115">registerMeterIfNotPresent</a>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/RegionCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">RegionCoprocessorEnvironment</a>&gt;&nbsp;e,
                                        <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;requestMeter)</pre>
 </li>
 </ul>
@@ -490,12 +510,12 @@ implements <a href="../../../../../org/apache/hadoop/hbase/coprocessor/RegionCop
 <ul class="blockList">
 <li class="blockList">
 <h4>registerLossyCountingMeterIfNotPresent</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/coprocessor/MetaTableMetrics.ExampleRegionObserverMeta.html#line.146">registerLossyCountingMeterIfNotPresent</a>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/RegionCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">RegionCoprocessorEnvironment</a>&gt;&nbsp;e,
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/coprocessor/MetaTableMetrics.ExampleRegionObserverMeta.html#line.136">registerLossyCountingMeterIfNotPresent</a>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/RegionCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">RegionCoprocessorEnvironment</a>&gt;&nbsp;e,
                                                     <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;requestMeter,
                                                     <a href="../../../../../org/apache/hadoop/hbase/util/LossyCounting.html" title="class in org.apache.hadoop.hbase.util">LossyCounting</a>&nbsp;lossyCounting)</pre>
 <div class="block">Registers and counts lossyCount for Meters that kept by lossy counting.
  By using lossy count to maintain meters, at most 7 / e meters will be kept  (e is error rate)
- e.g. when e is 0.02 by default, at most 50 Clients request metrics will be kept
+ e.g. when e is 0.02 by default, at most 350 Clients request metrics will be kept
       also, all kept elements have frequency higher than e * N. (N is total count)</div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
@@ -511,7 +531,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/coprocessor/RegionCop
 <ul class="blockList">
 <li class="blockList">
 <h4>getTableNameFromOp</h4>
-<pre>private&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/coprocessor/MetaTableMetrics.ExampleRegionObserverMeta.html#line.175">getTableNameFromOp</a>(<a href="../../../../../org/apache/hadoop/hbase/client/Row.html" title="interface in org.apache.hadoop.hbase.client">Row</a>&nbsp;op)</pre>
+<pre>private&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/coprocessor/MetaTableMetrics.ExampleRegionObserverMeta.html#line.165">getTableNameFromOp</a>(<a href="../../../../../org/apache/hadoop/hbase/client/Row.html" title="interface in org.apache.hadoop.hbase.client">Row</a>&nbsp;op)</pre>
 <div class="block">Get table name from Ops such as: get, put, delete.</div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
@@ -525,7 +545,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/coprocessor/RegionCop
 <ul class="blockList">
 <li class="blockList">
 <h4>getRegionIdFromOp</h4>
-<pre>private&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/coprocessor/MetaTableMetrics.ExampleRegionObserverMeta.html#line.189">getRegionIdFromOp</a>(<a href="../../../../../org/apache/hadoop/hbase/client/Row.html" title="interface in org.apache.hadoop.hbase.client">Row</a>&nbsp;op)</pre>
+<pre>private&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/coprocessor/MetaTableMetrics.ExampleRegionObserverMeta.html#line.179">getRegionIdFromOp</a>(<a href="../../../../../org/apache/hadoop/hbase/client/Row.html" title="interface in org.apache.hadoop.hbase.client">Row</a>&nbsp;op)</pre>
 <div class="block">Get regionId from Ops such as: get, put, delete.</div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
@@ -539,7 +559,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/coprocessor/RegionCop
 <ul class="blockList">
 <li class="blockList">
 <h4>isMetaTableOp</h4>
-<pre>private&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/coprocessor/MetaTableMetrics.ExampleRegionObserverMeta.html#line.199">isMetaTableOp</a>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/RegionCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">RegionCoprocessorEnvironment</a>&gt;&nbsp;e)</pre>
+<pre>private&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/coprocessor/MetaTableMetrics.ExampleRegionObserverMeta.html#line.189">isMetaTableOp</a>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/RegionCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">RegionCoprocessorEnvironment</a>&gt;&nbsp;e)</pre>
 </li>
 </ul>
 <a name="clientMetricRegisterAndMark-org.apache.hadoop.hbase.coprocessor.ObserverContext-">
@@ -548,7 +568,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/coprocessor/RegionCop
 <ul class="blockList">
 <li class="blockList">
 <h4>clientMetricRegisterAndMark</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/coprocessor/MetaTableMetrics.ExampleRegionObserverMeta.html#line.204">clientMetricRegisterAndMark</a>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/RegionCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">RegionCoprocessorEnvironment</a>&gt;&nbsp;e)</pre>
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/coprocessor/MetaTableMetrics.ExampleRegionObserverMeta.html#line.194">clientMetricRegisterAndMark</a>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/RegionCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">RegionCoprocessorEnvironment</a>&gt;&nbsp;e)</pre>
 </li>
 </ul>
 <a name="tableMetricRegisterAndMark-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.Row-">
@@ -557,7 +577,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/coprocessor/RegionCop
 <ul class="blockList">
 <li class="blockList">
 <h4>tableMetricRegisterAndMark</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/coprocessor/MetaTableMetrics.ExampleRegionObserverMeta.html#line.212">tableMetricRegisterAndMark</a>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/RegionCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">RegionCoprocessorEnvironment</a>&gt;&nbsp;e,
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/coprocessor/MetaTableMetrics.ExampleRegionObserverMeta.html#line.203">tableMetricRegisterAndMark</a>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/RegionCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">RegionCoprocessorEnvironment</a>&gt;&nbsp;e,
                                         <a href="../../../../../org/apache/hadoop/hbase/client/Row.html" title="interface in org.apache.hadoop.hbase.client">Row</a>&nbsp;op)</pre>
 </li>
 </ul>
@@ -567,7 +587,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/coprocessor/RegionCop
 <ul class="blockList">
 <li class="blockList">
 <h4>regionMetricRegisterAndMark</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/coprocessor/MetaTableMetrics.ExampleRegionObserverMeta.html#line.221">regionMetricRegisterAndMark</a>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/RegionCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">RegionCoprocessorEnvironment</a>&gt;&nbsp;e,
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/coprocessor/MetaTableMetrics.ExampleRegionObserverMeta.html#line.211">regionMetricRegisterAndMark</a>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/RegionCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">RegionCoprocessorEnvironment</a>&gt;&nbsp;e,
                                          <a href="../../../../../org/apache/hadoop/hbase/client/Row.html" title="interface in org.apache.hadoop.hbase.client">Row</a>&nbsp;op)</pre>
 </li>
 </ul>
@@ -577,7 +597,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/coprocessor/RegionCop
 <ul class="blockList">
 <li class="blockList">
 <h4>opMetricRegisterAndMark</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/coprocessor/MetaTableMetrics.ExampleRegionObserverMeta.html#line.230">opMetricRegisterAndMark</a>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/RegionCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">RegionCoprocessorEnvironment</a>&gt;&nbsp;e,
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/coprocessor/MetaTableMetrics.ExampleRegionObserverMeta.html#line.219">opMetricRegisterAndMark</a>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/RegionCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">RegionCoprocessorEnvironment</a>&gt;&nbsp;e,
                                      <a href="../../../../../org/apache/hadoop/hbase/client/Row.html" title="interface in org.apache.hadoop.hbase.client">Row</a>&nbsp;op)</pre>
 </li>
 </ul>
@@ -587,17 +607,27 @@ implements <a href="../../../../../org/apache/hadoop/hbase/coprocessor/RegionCop
 <ul class="blockList">
 <li class="blockList">
 <h4>opWithClientMetricRegisterAndMark</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/coprocessor/MetaTableMetrics.ExampleRegionObserverMeta.html#line.237">opWithClientMetricRegisterAndMark</a>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/RegionCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">RegionCoprocessorEnvironment</a>&gt;&nbsp;e,
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/coprocessor/MetaTableMetrics.ExampleRegionObserverMeta.html#line.226">opWithClientMetricRegisterAndMark</a>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/RegionCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">RegionCoprocessorEnvironment</a>&gt;&nbsp;e,
                                                <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;op)</pre>
 </li>
 </ul>
+<a name="registerAndMarkMeterIfNotPresent-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>registerAndMarkMeterIfNotPresent</h4>
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/coprocessor/MetaTableMetrics.ExampleRegionObserverMeta.html#line.234">registerAndMarkMeterIfNotPresent</a>(<a href="../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/RegionCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">RegionCoprocessorEnvironment</a>&gt;&nbsp;e,
+                                              <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>
+</li>
+</ul>
 <a name="opWithClientMeterName-java.lang.Object-">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>opWithClientMeterName</h4>
-<pre>private&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/coprocessor/MetaTableMetrics.ExampleRegionObserverMeta.html#line.244">opWithClientMeterName</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;op)</pre>
+<pre>private&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/coprocessor/MetaTableMetrics.ExampleRegionObserverMeta.html#line.240">opWithClientMeterName</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;op)</pre>
 </li>
 </ul>
 <a name="opMeterName-java.lang.Object-">
@@ -606,7 +636,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/coprocessor/RegionCop
 <ul class="blockList">
 <li class="blockList">
 <h4>opMeterName</h4>
-<pre>private&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/coprocessor/MetaTableMetrics.ExampleRegionObserverMeta.html#line.267">opMeterName</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;op)</pre>
+<pre>private&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/coprocessor/MetaTableMetrics.ExampleRegionObserverMeta.html#line.264">opMeterName</a>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;op)</pre>
 </li>
 </ul>
 <a name="tableMeterName-java.lang.String-">
@@ -615,7 +645,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/coprocessor/RegionCop
 <ul class="blockList">
 <li class="blockList">
 <h4>tableMeterName</h4>
-<pre>private&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/coprocessor/MetaTableMetrics.ExampleRegionObserverMeta.html#line.286">tableMeterName</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;tableName)</pre>
+<pre>private&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/coprocessor/MetaTableMetrics.ExampleRegionObserverMeta.html#line.284">tableMeterName</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;tableName)</pre>
 </li>
 </ul>
 <a name="clientRequestMeterName-java.lang.String-">
@@ -624,7 +654,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/coprocessor/RegionCop
 <ul class="blockList">
 <li class="blockList">
 <h4>clientRequestMeterName</h4>
-<pre>private&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/coprocessor/MetaTableMetrics.ExampleRegionObserverMeta.html#line.290">clientRequestMeterName</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;clientIP)</pre>
+<pre>private&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/coprocessor/MetaTableMetrics.ExampleRegionObserverMeta.html#line.289">clientRequestMeterName</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;clientIP)</pre>
 </li>
 </ul>
 <a name="regionMeterName-java.lang.String-">
index 715df79..cb55f15 100644 (file)
@@ -376,7 +376,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/coprocessor/RegionCop
 <ul class="blockList">
 <li class="blockList">
 <h4>getRegionObserver</h4>
-<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Optional.html?is-external=true" title="class or interface in java.util">Optional</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/RegionObserver.html" title="interface in org.apache.hadoop.hbase.coprocessor">RegionObserver</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/coprocessor/MetaTableMetrics.html#line.303">getRegionObserver</a>()</pre>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Optional.html?is-external=true" title="class or interface in java.util">Optional</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/coprocessor/RegionObserver.html" title="interface in org.apache.hadoop.hbase.coprocessor">RegionObserver</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/coprocessor/MetaTableMetrics.html#line.304">getRegionObserver</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/coprocessor/RegionCoprocessor.html#getRegionObserver--">getRegionObserver</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/coprocessor/RegionCoprocessor.html" title="interface in org.apache.hadoop.hbase.coprocessor">RegionCoprocessor</a></code></dd>
@@ -389,7 +389,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/coprocessor/RegionCop
 <ul class="blockList">
 <li class="blockList">
 <h4>start</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/coprocessor/MetaTableMetrics.html#line.308">start</a>(<a href="../../../../../org/apache/hadoop/hbase/CoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase">CoprocessorEnvironment</a>&nbsp;env)
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/coprocessor/MetaTableMetrics.html#line.309">start</a>(<a href="../../../../../org/apache/hadoop/hbase/CoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase">CoprocessorEnvironment</a>&nbsp;env)
            throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/Coprocessor.html#start-org.apache.hadoop.hbase.CoprocessorEnvironment-">Coprocessor</a></code></span></div>
 <div class="block">Called by the <a href="../../../../../org/apache/hadoop/hbase/CoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase"><code>CoprocessorEnvironment</code></a> during it's own startup to initialize the
@@ -408,7 +408,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/coprocessor/RegionCop
 <ul class="blockListLast">
 <li class="blockList">
 <h4>stop</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/coprocessor/MetaTableMetrics.html#line.325">stop</a>(<a href="../../../../../org/apache/hadoop/hbase/CoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase">CoprocessorEnvironment</a>&nbsp;env)
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/coprocessor/MetaTableMetrics.html#line.324">stop</a>(<a href="../../../../../org/apache/hadoop/hbase/CoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase">CoprocessorEnvironment</a>&nbsp;env)
           throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/Coprocessor.html#stop-org.apache.hadoop.hbase.CoprocessorEnvironment-">Coprocessor</a></code></span></div>
 <div class="block">Called by the <a href="../../../../../org/apache/hadoop/hbase/CoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase"><code>CoprocessorEnvironment</code></a> during it's own shutdown to stop the
index 89d2a04..640a595 100644 (file)
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>private void</code></td>
+<td class="colLast"><span class="typeNameLabel">MetaTableMetrics.ExampleRegionObserverMeta.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MetaTableMetrics.ExampleRegionObserverMeta.html#registerAndMarkMeterIfNotPresent-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-">registerAndMarkMeterIfNotPresent</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/RegionCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">RegionCoprocessorEnvironment</a>&gt;&nbsp;e,
+                                <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)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>private void</code></td>
+<td class="colLast"><span class="typeNameLabel">MetaTableMetrics.ExampleRegionObserverMeta.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MetaTableMetrics.ExampleRegionObserverMeta.html#registerAndMarkMetrics-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.Row-">registerAndMarkMetrics</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/RegionCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">RegionCoprocessorEnvironment</a>&gt;&nbsp;e,
+                      <a href="../../../../../../org/apache/hadoop/hbase/client/Row.html" title="interface in org.apache.hadoop.hbase.client">Row</a>&nbsp;row)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>private void</code></td>
 <td class="colLast"><span class="typeNameLabel">MetaTableMetrics.ExampleRegionObserverMeta.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MetaTableMetrics.ExampleRegionObserverMeta.html#registerLossyCountingMeterIfNotPresent-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-org.apache.hadoop.hbase.util.LossyCounting-">registerLossyCountingMeterIfNotPresent</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/RegionCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">RegionCoprocessorEnvironment</a>&gt;&nbsp;e,
                                       <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;requestMeter,
                                       <a href="../../../../../../org/apache/hadoop/hbase/util/LossyCounting.html" title="class in org.apache.hadoop.hbase.util">LossyCounting</a>&nbsp;lossyCounting)</code>
index 5bdd720..028ca8d 100644 (file)
 </tr>
 <tr class="altColor">
 <td class="colFirst"><code>private void</code></td>
+<td class="colLast"><span class="typeNameLabel">MetaTableMetrics.ExampleRegionObserverMeta.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MetaTableMetrics.ExampleRegionObserverMeta.html#registerAndMarkMeterIfNotPresent-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-">registerAndMarkMeterIfNotPresent</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/RegionCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">RegionCoprocessorEnvironment</a>&gt;&nbsp;e,
+                                <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)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>private void</code></td>
+<td class="colLast"><span class="typeNameLabel">MetaTableMetrics.ExampleRegionObserverMeta.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MetaTableMetrics.ExampleRegionObserverMeta.html#registerAndMarkMetrics-org.apache.hadoop.hbase.coprocessor.ObserverContext-org.apache.hadoop.hbase.client.Row-">registerAndMarkMetrics</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/RegionCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">RegionCoprocessorEnvironment</a>&gt;&nbsp;e,
+                      <a href="../../../../../../org/apache/hadoop/hbase/client/Row.html" title="interface in org.apache.hadoop.hbase.client">Row</a>&nbsp;row)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>private void</code></td>
 <td class="colLast"><span class="typeNameLabel">MetaTableMetrics.ExampleRegionObserverMeta.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/coprocessor/MetaTableMetrics.ExampleRegionObserverMeta.html#registerLossyCountingMeterIfNotPresent-org.apache.hadoop.hbase.coprocessor.ObserverContext-java.lang.String-org.apache.hadoop.hbase.util.LossyCounting-">registerLossyCountingMeterIfNotPresent</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/ObserverContext.html" title="interface in org.apache.hadoop.hbase.coprocessor">ObserverContext</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/coprocessor/RegionCoprocessorEnvironment.html" title="interface in org.apache.hadoop.hbase.coprocessor">RegionCoprocessorEnvironment</a>&gt;&nbsp;e,
                                       <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;requestMeter,
                                       <a href="../../../../../../org/apache/hadoop/hbase/util/LossyCounting.html" title="class in org.apache.hadoop.hbase.util">LossyCounting</a>&nbsp;lossyCounting)</code>
index 2bcc38f..bbc6726 100644 (file)
 <li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
 <ul>
 <li type="circle">org.apache.hadoop.hbase.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/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/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.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/CompareFilter.CompareOp.html" title="enum in org.apache.hadoop.hbase.filter"><span class="typeNameLink">CompareFilter.CompareOp</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.filter.<a href="../../../../../org/apache/hadoop/hbase/filter/BitComparator.BitwiseOp.html" title="enum in org.apache.hadoop.hbase.filter"><span class="typeNameLink">BitComparator.BitwiseOp</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.filter.<a href="../../../../../org/apache/hadoop/hbase/filter/RegexStringComparator.EngineType.html" title="enum in org.apache.hadoop.hbase.filter"><span class="typeNameLink">RegexStringComparator.EngineType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.filter.<a href="../../../../../org/apache/hadoop/hbase/filter/FilterList.Operator.html" title="enum in org.apache.hadoop.hbase.filter"><span class="typeNameLink">FilterList.Operator</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.filter.<a href="../../../../../org/apache/hadoop/hbase/filter/FuzzyRowFilter.Order.html" title="enum in org.apache.hadoop.hbase.filter"><span class="typeNameLink">FuzzyRowFilter.Order</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.filter.<a href="../../../../../org/apache/hadoop/hbase/filter/BitComparator.BitwiseOp.html" title="enum in org.apache.hadoop.hbase.filter"><span class="typeNameLink">BitComparator.BitwiseOp</span></a></li>
 </ul>
 </li>
 </ul>
index 2ff67f0..afac2a6 100644 (file)
 <ul>
 <li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
 <ul>
-<li type="circle">org.apache.hadoop.hbase.io.hfile.<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockPriority.html" title="enum in org.apache.hadoop.hbase.io.hfile"><span class="typeNameLink">BlockPriority</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.io.hfile.<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockType.BlockCategory.html" title="enum in org.apache.hadoop.hbase.io.hfile"><span class="typeNameLink">BlockType.BlockCategory</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.io.hfile.<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/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/Cacheable.MemoryType.html" title="enum in org.apache.hadoop.hbase.io.hfile"><span class="typeNameLink">Cacheable.MemoryType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.io.hfile.<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlock.Writer.State.html" title="enum in org.apache.hadoop.hbase.io.hfile"><span class="typeNameLink">HFileBlock.Writer.State</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.io.hfile.<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockCacheFactory.ExternalBlockCaches.html" title="enum in org.apache.hadoop.hbase.io.hfile"><span class="typeNameLink">BlockCacheFactory.ExternalBlockCaches</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.io.hfile.<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockPriority.html" title="enum in org.apache.hadoop.hbase.io.hfile"><span class="typeNameLink">BlockPriority</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.io.hfile.<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockType.html" title="enum in org.apache.hadoop.hbase.io.hfile"><span class="typeNameLink">BlockType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.io.hfile.<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/Cacheable.MemoryType.html" title="enum in org.apache.hadoop.hbase.io.hfile"><span class="typeNameLink">Cacheable.MemoryType</span></a></li>
 </ul>
 </li>
 </ul>
index d288952..05f6fbe 100644 (file)
 <li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
 <ul>
 <li type="circle">org.apache.hadoop.hbase.ipc.<a href="../../../../../org/apache/hadoop/hbase/ipc/CallEvent.Type.html" title="enum in org.apache.hadoop.hbase.ipc"><span class="typeNameLink">CallEvent.Type</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.ipc.<a href="../../../../../org/apache/hadoop/hbase/ipc/BufferCallBeforeInitHandler.BufferCallAction.html" title="enum in org.apache.hadoop.hbase.ipc"><span class="typeNameLink">BufferCallBeforeInitHandler.BufferCallAction</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.ipc.<a href="../../../../../org/apache/hadoop/hbase/ipc/MetricsHBaseServerSourceFactoryImpl.SourceStorage.html" title="enum in org.apache.hadoop.hbase.ipc"><span class="typeNameLink">MetricsHBaseServerSourceFactoryImpl.SourceStorage</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.ipc.<a href="../../../../../org/apache/hadoop/hbase/ipc/BufferCallBeforeInitHandler.BufferCallAction.html" title="enum in org.apache.hadoop.hbase.ipc"><span class="typeNameLink">BufferCallBeforeInitHandler.BufferCallAction</span></a></li>
 </ul>
 </li>
 </ul>
index 248cd20..5af518b 100644 (file)
 <ul>
 <li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
 <ul>
-<li type="circle">org.apache.hadoop.hbase.mapreduce.<a href="../../../../../org/apache/hadoop/hbase/mapreduce/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/CellCounter.CellCounterMapper.Counters.html" title="enum in org.apache.hadoop.hbase.mapreduce"><span class="typeNameLink">CellCounter.CellCounterMapper.Counters</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.mapreduce.<a href="../../../../../org/apache/hadoop/hbase/mapreduce/SyncTable.SyncMapper.Counter.html" title="enum in org.apache.hadoop.hbase.mapreduce"><span class="typeNameLink">SyncTable.SyncMapper.Counter</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.mapreduce.<a href="../../../../../org/apache/hadoop/hbase/mapreduce/RowCounter.RowCounterMapper.Counters.html" title="enum in org.apache.hadoop.hbase.mapreduce"><span class="typeNameLink">RowCounter.RowCounterMapper.Counters</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.mapreduce.<a href="../../../../../org/apache/hadoop/hbase/mapreduce/TableSplit.Version.html" title="enum in org.apache.hadoop.hbase.mapreduce"><span class="typeNameLink">TableSplit.Version</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.mapreduce.<a href="../../../../../org/apache/hadoop/hbase/mapreduce/CellCounter.CellCounterMapper.Counters.html" title="enum in org.apache.hadoop.hbase.mapreduce"><span class="typeNameLink">CellCounter.CellCounterMapper.Counters</span></a></li>
 </ul>
 </li>
 </ul>
index c49c655..848d41f 100644 (file)
 <ul>
 <li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
 <ul>
-<li type="circle">org.apache.hadoop.hbase.master.balancer.<a href="../../../../../../org/apache/hadoop/hbase/master/balancer/BaseLoadBalancer.Cluster.LocalityType.html" title="enum in org.apache.hadoop.hbase.master.balancer"><span class="typeNameLink">BaseLoadBalancer.Cluster.LocalityType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.master.balancer.<a href="../../../../../../org/apache/hadoop/hbase/master/balancer/BaseLoadBalancer.Cluster.Action.Type.html" title="enum in org.apache.hadoop.hbase.master.balancer"><span class="typeNameLink">BaseLoadBalancer.Cluster.Action.Type</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.master.balancer.<a href="../../../../../../org/apache/hadoop/hbase/master/balancer/BaseLoadBalancer.Cluster.LocalityType.html" title="enum in org.apache.hadoop.hbase.master.balancer"><span class="typeNameLink">BaseLoadBalancer.Cluster.LocalityType</span></a></li>
 </ul>
 </li>
 </ul>
index 9be45b0..46eea35 100644 (file)
 <ul>
 <li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
 <ul>
+<li type="circle">org.apache.hadoop.hbase.master.<a href="../../../../../org/apache/hadoop/hbase/master/SplitLogManager.TerminationStatus.html" title="enum in org.apache.hadoop.hbase.master"><span class="typeNameLink">SplitLogManager.TerminationStatus</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.master.<a href="../../../../../org/apache/hadoop/hbase/master/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/MetricsMasterSourceFactoryImpl.FactoryStorage.html" title="enum in org.apache.hadoop.hbase.master"><span class="typeNameLink">MetricsMasterSourceFactoryImpl.FactoryStorage</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.master.<a href="../../../../../org/apache/hadoop/hbase/master/RegionState.State.html" title="enum in org.apache.hadoop.hbase.master"><span class="typeNameLink">RegionState.State</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.master.<a href="../../../../../org/apache/hadoop/hbase/master/SplitLogManager.ResubmitDirective.html" title="enum in org.apache.hadoop.hbase.master"><span class="typeNameLink">SplitLogManager.ResubmitDirective</span></a></li>
-<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/MasterRpcServices.BalanceSwitchMode.html" title="enum in org.apache.hadoop.hbase.master"><span class="typeNameLink">MasterRpcServices.BalanceSwitchMode</span></a></li>
 </ul>
 </li>
 </ul>
index 36bb580..c6c3fb8 100644 (file)
 <ul>
 <li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
 <ul>
-<li type="circle">org.apache.hadoop.hbase.master.procedure.<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/ServerProcedureInterface.ServerOperationType.html" title="enum in org.apache.hadoop.hbase.master.procedure"><span class="typeNameLink">ServerProcedureInterface.ServerOperationType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.master.procedure.<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/MetaProcedureInterface.MetaOperationType.html" title="enum in org.apache.hadoop.hbase.master.procedure"><span class="typeNameLink">MetaProcedureInterface.MetaOperationType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.master.procedure.<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/TableProcedureInterface.TableOperationType.html" title="enum in org.apache.hadoop.hbase.master.procedure"><span class="typeNameLink">TableProcedureInterface.TableOperationType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.master.procedure.<a href="../../../../../../org/apache/hadoop/hbase/master/procedure/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/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/MetaProcedureInterface.MetaOperationType.html" title="enum in org.apache.hadoop.hbase.master.procedure"><span class="typeNameLink">MetaProcedureInterface.MetaOperationType</span></a></li>
 </ul>
 </li>
 </ul>
index aae4ab6..3d27f65 100644 (file)
 <ul>
 <li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
 <ul>
-<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/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/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/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/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/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/CompatibilitySingletonFactory.SingletonStorage.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">CompatibilitySingletonFactory.SingletonStorage</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/MetaTableAccessor.QueryType.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">MetaTableAccessor.QueryType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/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/CompareOperator.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">CompareOperator</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/ClusterMetrics.Option.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">ClusterMetrics.Option</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/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/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/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/CompatibilitySingletonFactory.SingletonStorage.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">CompatibilitySingletonFactory.SingletonStorage</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/HealthChecker.HealthCheckerExitStatus.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">HealthChecker.HealthCheckerExitStatus</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/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/HConstants.OperationStatusCode.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">HConstants.OperationStatusCode</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/Size.Unit.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">Size.Unit</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/Coprocessor.State.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">Coprocessor.State</span></a></li>
 </ul>
 </li>
 </ul>
index e96aa97..a199a8f 100644 (file)
 <li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
 <ul>
 <li type="circle">org.apache.hadoop.hbase.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/LockType.html" title="enum in org.apache.hadoop.hbase.procedure2"><span class="typeNameLink">LockType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.procedure2.<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.LockState.html" title="enum in org.apache.hadoop.hbase.procedure2"><span class="typeNameLink">Procedure.LockState</span></a></li>
 <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/RootProcedureState.State.html" title="enum in org.apache.hadoop.hbase.procedure2"><span class="typeNameLink">RootProcedureState.State</span></a></li>
 </ul>
 </li>
index c7d640b..16a9f85 100644 (file)
 <ul>
 <li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
 <ul>
+<li type="circle">org.apache.hadoop.hbase.quotas.<a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">ThrottlingException.Type</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.quotas.<a href="../../../../../org/apache/hadoop/hbase/quotas/QuotaType.html" title="enum in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">QuotaType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.quotas.<a href="../../../../../org/apache/hadoop/hbase/quotas/OperationQuota.OperationType.html" title="enum in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">OperationQuota.OperationType</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.quotas.<a href="../../../../../org/apache/hadoop/hbase/quotas/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/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/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/ThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">ThrottlingException.Type</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.quotas.<a href="../../../../../org/apache/hadoop/hbase/quotas/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/RpcThrottlingException.Type.html" title="enum in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">RpcThrottlingException.Type</span></a></li>
 </ul>
 </li>
 </ul>
index 17fc7f1..84d3218 100644 (file)
 <ul>
 <li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
 <ul>
-<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/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/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/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/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/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/ChunkCreator.ChunkType.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">ChunkCreator.ChunkType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.FlushResult.Result.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">HRegion.FlushResult.Result</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/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.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/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/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/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/CompactingMemStore.IndexType.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">CompactingMemStore.IndexType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/FlushType.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">FlushType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/ScanType.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">ScanType</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/ChunkCreator.ChunkType.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">ChunkCreator.ChunkType</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/BloomType.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">BloomType</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/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/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/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>
 </ul>
 </li>
 </ul>
index fff141d..a3a51d8 100644 (file)
 <ul>
 <li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
 <ul>
-<li type="circle">org.apache.hadoop.hbase.replication.<a href="../../../../../org/apache/hadoop/hbase/replication/ReplicationPeer.PeerState.html" title="enum in org.apache.hadoop.hbase.replication"><span class="typeNameLink">ReplicationPeer.PeerState</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.replication.<a href="../../../../../org/apache/hadoop/hbase/replication/SyncReplicationState.html" title="enum in org.apache.hadoop.hbase.replication"><span class="typeNameLink">SyncReplicationState</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.replication.<a href="../../../../../org/apache/hadoop/hbase/replication/ReplicationPeer.PeerState.html" title="enum in org.apache.hadoop.hbase.replication"><span class="typeNameLink">ReplicationPeer.PeerState</span></a></li>
 </ul>
 </li>
 </ul>
index 9a2ed16..19d2ff4 100644 (file)
 <ul>
 <li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
 <ul>
-<li type="circle">org.apache.hadoop.hbase.replication.regionserver.<a href="../../../../../../org/apache/hadoop/hbase/replication/regionserver/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>
+<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>
 </ul>
 </li>
 </ul>
index d0e4edd..bbc384d 100644 (file)
 <ul>
 <li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
 <ul>
-<li type="circle">org.apache.hadoop.hbase.security.access.<a href="../../../../../../org/apache/hadoop/hbase/security/access/Permission.Action.html" title="enum in org.apache.hadoop.hbase.security.access"><span class="typeNameLink">Permission.Action</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.security.access.<a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessControlFilter.Strategy.html" title="enum in org.apache.hadoop.hbase.security.access"><span class="typeNameLink">AccessControlFilter.Strategy</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.security.access.<a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessController.OpType.html" title="enum in org.apache.hadoop.hbase.security.access"><span class="typeNameLink">AccessController.OpType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.security.access.<a href="../../../../../../org/apache/hadoop/hbase/security/access/Permission.Scope.html" title="enum in org.apache.hadoop.hbase.security.access"><span class="typeNameLink">Permission.Scope</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.security.access.<a href="../../../../../../org/apache/hadoop/hbase/security/access/Permission.Action.html" title="enum in org.apache.hadoop.hbase.security.access"><span class="typeNameLink">Permission.Action</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.security.access.<a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessControlFilter.Strategy.html" title="enum in org.apache.hadoop.hbase.security.access"><span class="typeNameLink">AccessControlFilter.Strategy</span></a></li>
 </ul>
 </li>
 </ul>
index 3fa6ecd..4cad661 100644 (file)
 <ul>
 <li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
 <ul>
-<li type="circle">org.apache.hadoop.hbase.security.<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/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/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>
 </ul>
 </li>
 </ul>
index 7edef14..82c818f 100644 (file)
 <ul>
 <li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
 <ul>
-<li type="circle">org.apache.hadoop.hbase.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/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/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>
index bb042f9..9e9bbb4 100644 (file)
@@ -110,7 +110,7 @@ var activeTableTab = "activeTableTab";
 <hr>
 <br>
 <pre>@InterfaceAudience.Public
-public class <a href="../../../../../src-html/org/apache/hadoop/hbase/util/LossyCounting.html#line.48">LossyCounting</a>
+public class <a href="../../../../../src-html/org/apache/hadoop/hbase/util/LossyCounting.html#line.47">LossyCounting</a>
 extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></pre>
 <div class="block">LossyCounting utility, bounded data structure that maintains approximate high frequency
  elements in data stream.
@@ -213,7 +213,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 </tr>
 <tr id="i3" class="rowColor">
 <td class="colFirst"><code>long</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/LossyCounting.html#getBuketSize--">getBuketSize</a></span>()</code>&nbsp;</td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/util/LossyCounting.html#getBucketSize--">getBucketSize</a></span>()</code>&nbsp;</td>
 </tr>
 <tr id="i4" class="altColor">
 <td class="colFirst"><code>long</code></td>
@@ -257,7 +257,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>LOG</h4>
-<pre>private static final&nbsp;org.slf4j.Logger <a href="../../../../../src-html/org/apache/hadoop/hbase/util/LossyCounting.html#line.49">LOG</a></pre>
+<pre>private static final&nbsp;org.slf4j.Logger <a href="../../../../../src-html/org/apache/hadoop/hbase/util/LossyCounting.html#line.48">LOG</a></pre>
 </li>
 </ul>
 <a name="bucketSize">
@@ -266,7 +266,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>bucketSize</h4>
-<pre>private&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/util/LossyCounting.html#line.50">bucketSize</a></pre>
+<pre>private&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/util/LossyCounting.html#line.49">bucketSize</a></pre>
 </li>
 </ul>
 <a name="currentTerm">
@@ -275,7 +275,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>currentTerm</h4>
-<pre>private&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/util/LossyCounting.html#line.51">currentTerm</a></pre>
+<pre>private&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/util/LossyCounting.html#line.50">currentTerm</a></pre>
 </li>
 </ul>
 <a name="errorRate">
@@ -284,7 +284,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>errorRate</h4>
-<pre>private&nbsp;double <a href="../../../../../src-html/org/apache/hadoop/hbase/util/LossyCounting.html#line.52">errorRate</a></pre>
+<pre>private&nbsp;double <a href="../../../../../src-html/org/apache/hadoop/hbase/util/LossyCounting.html#line.51">errorRate</a></pre>
 </li>
 </ul>
 <a name="data">
@@ -293,7 +293,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>data</h4>
-<pre>private&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="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="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&gt; <a href="../../../../../src-html/org/apache/hadoop/hbase/util/LossyCounting.html#line.53">data</a></pre>
+<pre>private&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<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="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&gt; <a href="../../../../../src-html/org/apache/hadoop/hbase/util/LossyCounting.html#line.52">data</a></pre>
 </li>
 </ul>
 <a name="totalDataCount">
@@ -302,7 +302,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockListLast">
 <li class="blockList">
 <h4>totalDataCount</h4>
-<pre>private&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/util/LossyCounting.html#line.54">totalDataCount</a></pre>
+<pre>private&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/util/LossyCounting.html#line.53">totalDataCount</a></pre>
 </li>
 </ul>
 </li>
@@ -319,7 +319,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>LossyCounting</h4>
-<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/LossyCounting.html#line.56">LossyCounting</a>(double&nbsp;errorRate)</pre>
+<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/LossyCounting.html#line.55">LossyCounting</a>(double&nbsp;errorRate)</pre>
 </li>
 </ul>
 <a name="LossyCounting--">
@@ -328,7 +328,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockListLast">
 <li class="blockList">
 <h4>LossyCounting</h4>
-<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/LossyCounting.html#line.69">LossyCounting</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/LossyCounting.html#line.67">LossyCounting</a>()</pre>
 </li>
 </ul>
 </li>
@@ -345,7 +345,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>addByOne</h4>
-<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/LossyCounting.html#line.79">addByOne</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;key)</pre>
+<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/LossyCounting.html#line.71">addByOne</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;key)</pre>
 </li>
 </ul>
 <a name="sweep--">
@@ -354,7 +354,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>sweep</h4>
-<pre>private&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/LossyCounting.html#line.98">sweep</a>()</pre>
+<pre>private&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/LossyCounting.html#line.86">sweep</a>()</pre>
 <div class="block">sweep low frequency data</div>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
@@ -368,17 +368,17 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>calculateCurrentTerm</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/LossyCounting.html#line.115">calculateCurrentTerm</a>()</pre>
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/LossyCounting.html#line.103">calculateCurrentTerm</a>()</pre>
 <div class="block">Calculate and set current term</div>
 </li>
 </ul>
-<a name="getBuketSize--">
+<a name="getBucketSize--">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
-<h4>getBuketSize</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/LossyCounting.html#line.119">getBuketSize</a>()</pre>
+<h4>getBucketSize</h4>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/LossyCounting.html#line.107">getBucketSize</a>()</pre>
 </li>
 </ul>
 <a name="getDataSize--">
@@ -387,7 +387,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>getDataSize</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/LossyCounting.html#line.123">getDataSize</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/LossyCounting.html#line.111">getDataSize</a>()</pre>
 </li>
 </ul>
 <a name="contains-java.lang.String-">
@@ -396,7 +396,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockList">
 <li class="blockList">
 <h4>contains</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/LossyCounting.html#line.127">contains</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;key)</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/LossyCounting.html#line.115">contains</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;key)</pre>
 </li>
 </ul>
 <a name="getCurrentTerm--">
@@ -405,7 +405,7 @@ extends <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html
 <ul class="blockListLast">
 <li class="blockList">
 <h4>getCurrentTerm</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/LossyCounting.html#line.131">getCurrentTerm</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/util/LossyCounting.html#line.119">getCurrentTerm</a>()</pre>
 </li>
 </ul>
 </li>
index cf41c70..f56d047 100644 (file)
 <li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
 <ul>
 <li type="circle">org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/HBaseFsck.ErrorReporter.ERROR_CODE.html" title="enum in org.apache.hadoop.hbase.util"><span class="typeNameLink">HBaseFsck.ErrorReporter.ERROR_CODE</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/PoolMap.PoolType.html" title="enum in org.apache.hadoop.hbase.util"><span class="typeNameLink">PoolMap.PoolType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/Order.html" title="enum in org.apache.hadoop.hbase.util"><span class="typeNameLink">Order</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/Bytes.LexicographicalComparerHolder.UnsafeComparer.html" title="enum in org.apache.hadoop.hbase.util"><span class="typeNameLink">Bytes.LexicographicalComparerHolder.UnsafeComparer</span></a> (implements org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/Bytes.Comparer.html" title="interface in org.apache.hadoop.hbase.util">Bytes.Comparer</a>&lt;T&gt;)</li>
+<li type="circle">org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/PrettyPrinter.Unit.html" title="enum in org.apache.hadoop.hbase.util"><span class="typeNameLink">PrettyPrinter.Unit</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/ChecksumType.html" title="enum in org.apache.hadoop.hbase.util"><span class="typeNameLink">ChecksumType</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/PoolMap.PoolType.html" title="enum in org.apache.hadoop.hbase.util"><span class="typeNameLink">PoolMap.PoolType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/IdReadWriteLock.ReferenceType.html" title="enum in org.apache.hadoop.hbase.util"><span class="typeNameLink">IdReadWriteLock.ReferenceType</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/PrettyPrinter.Unit.html" title="enum in org.apache.hadoop.hbase.util"><span class="typeNameLink">PrettyPrinter.Unit</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/Bytes.LexicographicalComparerHolder.PureJavaComparer.html" title="enum in org.apache.hadoop.hbase.util"><span class="typeNameLink">Bytes.LexicographicalComparerHolder.PureJavaComparer</span></a> (implements org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/Bytes.Comparer.html" title="interface in org.apache.hadoop.hbase.util">Bytes.Comparer</a>&lt;T&gt;)</li>
-<li type="circle">org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/Order.html" title="enum in org.apache.hadoop.hbase.util"><span class="typeNameLink">Order</span></a></li>
 </ul>
 </li>
 </ul>
index 951fb0c..cb3db44 100644 (file)
 <ul>
 <li type="circle">java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Enum.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Enum</span></a>&lt;E&gt; (implements java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</a>&lt;T&gt;, java.io.<a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
 <ul>
-<li type="circle">org.apache.hadoop.hbase.wal.<a href="../../../../../org/apache/hadoop/hbase/wal/WALFactory.Providers.html" title="enum in org.apache.hadoop.hbase.wal"><span class="typeNameLink">WALFactory.Providers</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.wal.<a href="../../../../../org/apache/hadoop/hbase/wal/RegionGroupingProvider.Strategies.html" title="enum in org.apache.hadoop.hbase.wal"><span class="typeNameLink">RegionGroupingProvider.Strategies</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.wal.<a href="../../../../../org/apache/hadoop/hbase/wal/WALFactory.Providers.html" title="enum in org.apache.hadoop.hbase.wal"><span class="typeNameLink">WALFactory.Providers</span></a></li>
 </ul>
 </li>
 </ul>
index bedbf48..80f37fa 100644 (file)
@@ -18,9 +18,9 @@
 <span class="sourceLineNo">010</span>  public static final String version = "3.0.0-SNAPSHOT";<a name="line.10"></a>
 <span class="sourceLineNo">011</span>  public static final String revision = "";<a name="line.11"></a>
 <span class="sourceLineNo">012</span>  public static final String user = "jenkins";<a name="line.12"></a>
-<span class="sourceLineNo">013</span>  public static final String date = "Fri Feb  8 14:38:15 UTC 2019";<a name="line.13"></a>
+<span class="sourceLineNo">013</span>  public static final String date = "Sat Feb  9 14:39:33 UTC 2019";<a name="line.13"></a>
 <span class="sourceLineNo">014</span>  public static final String url = "git://jenkins-websites1.apache.org/home/jenkins/jenkins-slave/workspace/hbase_generate_website/hbase";<a name="line.14"></a>
-<span class="sourceLineNo">015</span>  public static final String srcChecksum = "df02cec456136adb32e486f495015764";<a name="line.15"></a>
+<span class="sourceLineNo">015</span>  public static final String srcChecksum = "aedd507004ce91ad86a5f879dcdfee69";<a name="line.15"></a>
 <span class="sourceLineNo">016</span>}<a name="line.16"></a>
 
 
index bd3c957..2e36f92 100644 (file)
 <span class="sourceLineNo">075</span>    @Override<a name="line.75"></a>
 <span class="sourceLineNo">076</span>    public void preGetOp(ObserverContext&lt;RegionCoprocessorEnvironment&gt; e, Get get,<a name="line.76"></a>
 <span class="sourceLineNo">077</span>        List&lt;Cell&gt; results) throws IOException {<a name="line.77"></a>
-<span class="sourceLineNo">078</span>      if (!active || !isMetaTableOp(e)) {<a name="line.78"></a>
-<span class="sourceLineNo">079</span>        return;<a name="line.79"></a>
-<span class="sourceLineNo">080</span>      }<a name="line.80"></a>
-<span class="sourceLineNo">081</span>      tableMetricRegisterAndMark(e, get);<a name="line.81"></a>
-<span class="sourceLineNo">082</span>      clientMetricRegisterAndMark(e);<a name="line.82"></a>
-<span class="sourceLineNo">083</span>      regionMetricRegisterAndMark(e, get);<a name="line.83"></a>
-<span class="sourceLineNo">084</span>      opMetricRegisterAndMark(e, get);<a name="line.84"></a>
-<span class="sourceLineNo">085</span>      opWithClientMetricRegisterAndMark(e, get);<a name="line.85"></a>
-<span class="sourceLineNo">086</span>    }<a name="line.86"></a>
-<span class="sourceLineNo">087</span><a name="line.87"></a>
-<span class="sourceLineNo">088</span>    @Override<a name="line.88"></a>
-<span class="sourceLineNo">089</span>    public void prePut(ObserverContext&lt;RegionCoprocessorEnvironment&gt; e, Put put, WALEdit edit,<a name="line.89"></a>
-<span class="sourceLineNo">090</span>        Durability durability) throws IOException {<a name="line.90"></a>
-<span class="sourceLineNo">091</span>      if (!active || !isMetaTableOp(e)) {<a name="line.91"></a>
-<span class="sourceLineNo">092</span>        return;<a name="line.92"></a>
-<span class="sourceLineNo">093</span>      }<a name="line.93"></a>
-<span class="sourceLineNo">094</span>      tableMetricRegisterAndMark(e, put);<a name="line.94"></a>
-<span class="sourceLineNo">095</span>      clientMetricRegisterAndMark(e);<a name="line.95"></a>
-<span class="sourceLineNo">096</span>      regionMetricRegisterAndMark(e, put);<a name="line.96"></a>
-<span class="sourceLineNo">097</span>      opMetricRegisterAndMark(e, put);<a name="line.97"></a>
-<span class="sourceLineNo">098</span>      opWithClientMetricRegisterAndMark(e, put);<a name="line.98"></a>
-<span class="sourceLineNo">099</span>    }<a name="line.99"></a>
-<span class="sourceLineNo">100</span><a name="line.100"></a>
-<span class="sourceLineNo">101</span>    @Override<a name="line.101"></a>
-<span class="sourceLineNo">102</span>    public void preDelete(ObserverContext&lt;RegionCoprocessorEnvironment&gt; e, Delete delete,<a name="line.102"></a>
-<span class="sourceLineNo">103</span>        WALEdit edit, Durability durability) throws IOException {<a name="line.103"></a>
-<span class="sourceLineNo">104</span>      if (!active || !isMetaTableOp(e)) {<a name="line.104"></a>
-<span class="sourceLineNo">105</span>        return;<a name="line.105"></a>
-<span class="sourceLineNo">106</span>      }<a name="line.106"></a>
-<span class="sourceLineNo">107</span>      tableMetricRegisterAndMark(e, delete);<a name="line.107"></a>
-<span class="sourceLineNo">108</span>      clientMetricRegisterAndMark(e);<a name="line.108"></a>
-<span class="sourceLineNo">109</span>      regionMetricRegisterAndMark(e, delete);<a name="line.109"></a>
-<span class="sourceLineNo">110</span>      opMetricRegisterAndMark(e, delete);<a name="line.110"></a>
-<span class="sourceLineNo">111</span>      opWithClientMetricRegisterAndMark(e, delete);<a name="line.111"></a>
-<span class="sourceLineNo">112</span>    }<a name="line.112"></a>
-<span class="sourceLineNo">113</span><a name="line.113"></a>
-<span class="sourceLineNo">114</span>    private void markMeterIfPresent(String requestMeter) {<a name="line.114"></a>
-<span class="sourceLineNo">115</span>      if (requestMeter.isEmpty()) {<a name="line.115"></a>
-<span class="sourceLineNo">116</span>        return;<a name="line.116"></a>
-<span class="sourceLineNo">117</span>      }<a name="line.117"></a>
-<span class="sourceLineNo">118</span>      Metric metric =<a name="line.118"></a>
-<span class="sourceLineNo">119</span>          requestsMap.get(requestMeter).isPresent() ? requestsMap.get(requestMeter).get() : null;<a name="line.119"></a>
-<span class="sourceLineNo">120</span>      if (metric != null) {<a name="line.120"></a>
-<span class="sourceLineNo">121</span>        ((Meter) metric).mark();<a name="line.121"></a>
-<span class="sourceLineNo">122</span>      }<a name="line.122"></a>
-<span class="sourceLineNo">123</span>    }<a name="line.123"></a>
-<span class="sourceLineNo">124</span><a name="line.124"></a>
-<span class="sourceLineNo">125</span>    private void registerMeterIfNotPresent(ObserverContext&lt;RegionCoprocessorEnvironment&gt; e,<a name="line.125"></a>
-<span class="sourceLineNo">126</span>        String requestMeter) {<a name="line.126"></a>
-<span class="sourceLineNo">127</span>      if (requestMeter.isEmpty()) {<a name="line.127"></a>
-<span class="sourceLineNo">128</span>        return;<a name="line.128"></a>
-<span class="sourceLineNo">129</span>      }<a name="line.129"></a>
-<span class="sourceLineNo">130</span>      if (!requestsMap.containsKey(requestMeter)) {<a name="line.130"></a>
-<span class="sourceLineNo">131</span>        MetricRegistry registry = regionCoprocessorEnv.getMetricRegistryForRegionServer();<a name="line.131"></a>
-<span class="sourceLineNo">132</span>        registry.meter(requestMeter);<a name="line.132"></a>
-<span class="sourceLineNo">133</span>        requestsMap.put(requestMeter, registry.get(requestMeter));<a name="line.133"></a>
-<span class="sourceLineNo">134</span>      }<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>     * Registers and counts lossyCount for Meters that kept by lossy counting.<a name="line.138"></a>
-<span class="sourceLineNo">139</span>     * By using lossy count to maintain meters, at most 7 / e meters will be kept  (e is error rate)<a name="line.139"></a>
-<span class="sourceLineNo">140</span>     * e.g. when e is 0.02 by default, at most 50 Clients request metrics will be kept<a name="line.140"></a>
-<span class="sourceLineNo">141</span>     *      also, all kept elements have frequency higher than e * N. (N is total count)<a name="line.141"></a>
-<span class="sourceLineNo">142</span>     * @param e Region coprocessor environment<a name="line.142"></a>
-<span class="sourceLineNo">143</span>     * @param requestMeter meter to be registered<a name="line.143"></a>
-<span class="sourceLineNo">144</span>     * @param lossyCounting lossyCounting object for one type of meters.<a name="line.144"></a>
-<span class="sourceLineNo">145</span>     */<a name="line.145"></a>
-<span class="sourceLineNo">146</span>    private void registerLossyCountingMeterIfNotPresent(<a name="line.146"></a>
-<span class="sourceLineNo">147</span>        ObserverContext&lt;RegionCoprocessorEnvironment&gt; e,<a name="line.147"></a>
-<span class="sourceLineNo">148</span>        String requestMeter, LossyCounting lossyCounting) {<a name="line.148"></a>
-<span class="sourceLineNo">149</span>      if (requestMeter.isEmpty()) {<a name="line.149"></a>
-<span class="sourceLineNo">150</span>        return;<a name="line.150"></a>
-<span class="sourceLineNo">151</span>      }<a name="line.151"></a>
-<span class="sourceLineNo">152</span>      Set&lt;String&gt; metersToBeRemoved = lossyCounting.addByOne(requestMeter);<a name="line.152"></a>
-<span class="sourceLineNo">153</span>      if(!requestsMap.containsKey(requestMeter) &amp;&amp; metersToBeRemoved.contains(requestMeter)){<a name="line.153"></a>
-<span class="sourceLineNo">154</span>        for(String meter: metersToBeRemoved) {<a name="line.154"></a>
-<span class="sourceLineNo">155</span>          //cleanup requestsMap according swept data from lossy count;<a name="line.155"></a>
-<span class="sourceLineNo">156</span>          requestsMap.remove(meter);<a name="line.156"></a>
-<span class="sourceLineNo">157</span>          MetricRegistry registry = regionCoprocessorEnv.getMetricRegistryForRegionServer();<a name="line.157"></a>
-<span class="sourceLineNo">158</span>          registry.remove(meter);<a name="line.158"></a>
-<span class="sourceLineNo">159</span>        }<a name="line.159"></a>
-<span class="sourceLineNo">160</span>        // newly added meter is swept by lossy counting cleanup. No need to put it into requestsMap.<a name="line.160"></a>
-<span class="sourceLineNo">161</span>        return;<a name="line.161"></a>
-<span class="sourceLineNo">162</span>      }<a name="line.162"></a>
-<span class="sourceLineNo">163</span><a name="line.163"></a>
-<span class="sourceLineNo">164</span>      if (!requestsMap.containsKey(requestMeter)) {<a name="line.164"></a>
-<span class="sourceLineNo">165</span>        MetricRegistry registry = regionCoprocessorEnv.getMetricRegistryForRegionServer();<a name="line.165"></a>
-<span class="sourceLineNo">166</span>        registry.meter(requestMeter);<a name="line.166"></a>
-<span class="sourceLineNo">167</span>        requestsMap.put(requestMeter, registry.get(requestMeter));<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>     * Get table name from Ops such as: get, put, delete.<a name="line.172"></a>
-<span class="sourceLineNo">173</span>     * @param op such as get, put or delete.<a name="line.173"></a>
-<span class="sourceLineNo">174</span>     */<a name="line.174"></a>
-<span class="sourceLineNo">175</span>    private String getTableNameFromOp(Row op) {<a name="line.175"></a>
-<span class="sourceLineNo">176</span>      String tableName = null;<a name="line.176"></a>
-<span class="sourceLineNo">177</span>      String tableRowKey = new String(((Row) op).getRow(), StandardCharsets.UTF_8);<a name="line.177"></a>
-<span class="sourceLineNo">178</span>      if (tableRowKey.isEmpty()) {<a name="line.178"></a>
-<span class="sourceLineNo">179</span>        return null;<a name="line.179"></a>
-<span class="sourceLineNo">180</span>      }<a name="line.180"></a>
-<span class="sourceLineNo">181</span>      tableName = tableRowKey.split(",").length &gt; 0 ? tableRowKey.split(",")[0] : null;<a name="line.181"></a>
-<span class="sourceLineNo">182</span>      return tableName;<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>    /**<a name="line.185"></a>
-<span class="sourceLineNo">186</span>     * Get regionId from Ops such as: get, put, delete.<a name="line.186"></a>
-<span class="sourceLineNo">187</span>     * @param op  such as get, put or delete.<a name="line.187"></a>
-<span class="sourceLineNo">188</span>     */<a name="line.188"></a>
-<span class="sourceLineNo">189</span>    private String getRegionIdFromOp(Row op) {<a name="line.189"></a>
-<span class="sourceLineNo">190</span>      String regionId = null;<a name="line.190"></a>
-<span class="sourceLineNo">191</span>      String tableRowKey = new String(((Row) op).getRow(), StandardCharsets.UTF_8);<a name="line.191"></a>
-<span class="sourceLineNo">192</span>      if (tableRowKey.isEmpty()) {<a name="line.192"></a>
-<span class="sourceLineNo">193</span>        return null;<a name="line.193"></a>
-<span class="sourceLineNo">194</span>      }<a name="line.194"></a>
-<span class="sourceLineNo">195</span>      regionId = tableRowKey.split(",").length &gt; 2 ? tableRowKey.split(",")[2] : null;<a name="line.195"></a>
-<span class="sourceLineNo">196</span>      return regionId;<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>    private boolean isMetaTableOp(ObserverContext&lt;RegionCoprocessorEnvironment&gt; e) {<a name="line.199"></a>
-<span class="sourceLineNo">200</span>      return TableName.META_TABLE_NAME<a name="line.200"></a>
-<span class="sourceLineNo">201</span>          .equals(e.getEnvironment().getRegionInfo().getTable());<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>    private void clientMetricRegisterAndMark(ObserverContext&lt;RegionCoprocessorEnvironment&gt; e) {<a name="line.204"></a>
-<span class="sourceLineNo">205</span>      String clientIP = RpcServer.getRemoteIp() != null ? RpcServer.getRemoteIp().toString() : "";<a name="line.205"></a>
-<span class="sourceLineNo">206</span><a name="line.206"></a>
-<span class="sourceLineNo">207</span>      String clientRequestMeter = clientRequestMeterName(clientIP);<a name="line.207"></a>
-<span class="sourceLineNo">208</span>      registerLossyCountingMeterIfNotPresent(e, clientRequestMeter, clientMetricsLossyCounting);<a name="line.208"></a>
-<span class="sourceLineNo">209</span>      markMeterIfPresent(clientRequestMeter);<a name="line.209"></a>
-<span class="sourceLineNo">210</span>    }<a name="line.210"></a>
-<span class="sourceLineNo">211</span><a name="line.211"></a>
-<span class="sourceLineNo">212</span>    private void tableMetricRegisterAndMark(ObserverContext&lt;RegionCoprocessorEnvironment&gt; e,<a name="line.212"></a>
-<span class="sourceLineNo">213</span>        Row op) {<a name="line.213"></a>
-<span class="sourceLineNo">214</span>      // Mark the meta table meter whenever the coprocessor is called<a name="line.214"></a>
-<span class="sourceLineNo">215</span>      String tableName = getTableNameFromOp(op);<a name="line.215"></a>
-<span class="sourceLineNo">216</span>      String tableRequestMeter = tableMeterName(tableName);<a name="line.216"></a>
-<span class="sourceLineNo">217</span>      registerMeterIfNotPresent(e, tableRequestMeter);<a name="line.217"></a>
-<span class="sourceLineNo">218</span>      markMeterIfPresent(tableRequestMeter);<a name="line.218"></a>
-<span class="sourceLineNo">219</span>    }<a name="line.219"></a>
-<span class="sourceLineNo">220</span><a name="line.220"></a>
-<span class="sourceLineNo">221</span>    private void regionMetricRegisterAndMark(ObserverContext&lt;RegionCoprocessorEnvironment&gt; e,<a name="line.221"></a>
-<span class="sourceLineNo">222</span>        Row op) {<a name="line.222"></a>
-<span class="sourceLineNo">223</span>      // Mark the meta table meter whenever the coprocessor is called<a name="line.223"></a>
-<span class="sourceLineNo">224</span>      String regionId = getRegionIdFromOp(op);<a name="line.224"></a>
-<span class="sourceLineNo">225</span>      String regionRequestMeter = regionMeterName(regionId);<a name="line.225"></a>
-<span class="sourceLineNo">226</span>      registerMeterIfNotPresent(e, regionRequestMeter);<a name="line.226"></a>
-<span class="sourceLineNo">227</span>      markMeterIfPresent(regionRequestMeter);<a name="line.227"></a>
-<span class="sourceLineNo">228</span>    }<a name="line.228"></a>
-<span class="sourceLineNo">229</span><a name="line.229"></a>
-<span class="sourceLineNo">230</span>    private void opMetricRegisterAndMark(ObserverContext&lt;RegionCoprocessorEnvironment&gt; e,<a name="line.230"></a>
-<span class="sourceLineNo">231</span>        Row op) {<a name="line.231"></a>
-<span class="sourceLineNo">232</span>      String opMeterName = opMeterName(op);<a name="line.232"></a>
-<span class="sourceLineNo">233</span>      registerMeterIfNotPresent(e, opMeterName);<a name="line.233"></a>
-<span class="sourceLineNo">234</span>      markMeterIfPresent(opMeterName);<a name="line.234"></a>
-<span class="sourceLineNo">235</span>    }<a name="line.235"></a>
-<span class="sourceLineNo">236</span><a name="line.236"></a>
-<span class="sourceLineNo">237</span>    private void opWithClientMetricRegisterAndMark(ObserverContext&lt;RegionCoprocessorEnvironment&gt; e,<a name="line.237"></a>
-<span class="sourceLineNo">238</span>        Object op) {<a name="line.238"></a>
-<span class="sourceLineNo">239</span>      String opWithClientMeterName = opWithClientMeterName(op);<a name="line.239"></a>
-<span class="sourceLineNo">240</span>      registerMeterIfNotPresent(e, opWithClientMeterName);<a name="line.240"></a>
-<span class="sourceLineNo">241</span>      markMeterIfPresent(opWithClientMeterName);<a name="line.241"></a>
-<span class="sourceLineNo">242</span>    }<a name="line.242"></a>
-<span class="sourceLineNo">243</span><a name="line.243"></a>
-<span class="sourceLineNo">244</span>    private String opWithClientMeterName(Object op) {<a name="line.244"></a>
-<span class="sourceLineNo">245</span>      String clientIP = RpcServer.getRemoteIp() != null ? RpcServer.getRemoteIp().toString() : "";<a name="line.245"></a>
-<span class="sourceLineNo">246</span>      if (clientIP.isEmpty()) {<a name="line.246"></a>
-<span class="sourceLineNo">247</span>        return "";<a name="line.247"></a>
-<span class="sourceLineNo">248</span>      }<a name="line.248"></a>
-<span class="sourceLineNo">249</span>      MetaTableOps ops = opsNameMap.get(op.getClass());<a name="line.249"></a>
-<span class="sourceLineNo">250</span>      String opWithClientMeterName = "";<a name="line.250"></a>
-<span class="sourceLineNo">251</span>      switch (ops) {<a name="line.251"></a>
-<span class="sourceLineNo">252</span>        case GET:<a name="line.252"></a>
-<span class="sourceLineNo">253</span>          opWithClientMeterName = String.format("MetaTable_client_%s_get_request", clientIP);<a name="line.253"></a>
+<span class="sourceLineNo">078</span>      registerAndMarkMetrics(e, get);<a name="line.78"></a>
+<span class="sourceLineNo">079</span>    }<a name="line.79"></a>
+<span class="sourceLineNo">080</span><a name="line.80"></a>
+<span class="sourceLineNo">081</span>    @Override<a name="line.81"></a>
+<span class="sourceLineNo">082</span>    public void prePut(ObserverContext&lt;RegionCoprocessorEnvironment&gt; e, Put put, WALEdit edit,<a name="line.82"></a>
+<span class="sourceLineNo">083</span>        Durability durability) throws IOException {<a name="line.83"></a>
+<span class="sourceLineNo">084</span>      registerAndMarkMetrics(e, put);<a name="line.84"></a>
+<span class="sourceLineNo">085</span>    }<a name="line.85"></a>
+<span class="sourceLineNo">086</span><a name="line.86"></a>
+<span class="sourceLineNo">087</span>    @Override<a name="line.87"></a>
+<span class="sourceLineNo">088</span>    public void preDelete(ObserverContext&lt;RegionCoprocessorEnvironment&gt; e, Delete delete,<a name="line.88"></a>
+<span class="sourceLineNo">089</span>        WALEdit edit, Durability durability) throws IOException {<a name="line.89"></a>
+<span class="sourceLineNo">090</span>      registerAndMarkMetrics(e, delete);<a name="line.90"></a>
+<span class="sourceLineNo">091</span>    }<a name="line.91"></a>
+<span class="sourceLineNo">092</span><a name="line.92"></a>
+<span class="sourceLineNo">093</span>    private void registerAndMarkMetrics(ObserverContext&lt;RegionCoprocessorEnvironment&gt; e, Row row){<a name="line.93"></a>
+<span class="sourceLineNo">094</span>      if (!active || !isMetaTableOp(e)) {<a name="line.94"></a>
+<span class="sourceLineNo">095</span>        return;<a name="line.95"></a>
+<span class="sourceLineNo">096</span>      }<a name="line.96"></a>
+<span class="sourceLineNo">097</span>      tableMetricRegisterAndMark(e, row);<a name="line.97"></a>
+<span class="sourceLineNo">098</span>      clientMetricRegisterAndMark(e);<a name="line.98"></a>
+<span class="sourceLineNo">099</span>      regionMetricRegisterAndMark(e, row);<a name="line.99"></a>
+<span class="sourceLineNo">100</span>      opMetricRegisterAndMark(e, row);<a name="line.100"></a>
+<span class="sourceLineNo">101</span>      opWithClientMetricRegisterAndMark(e, row);<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>    private void markMeterIfPresent(String requestMeter) {<a name="line.104"></a>
+<span class="sourceLineNo">105</span>      if (requestMeter.isEmpty()) {<a name="line.105"></a>
+<span class="sourceLineNo">106</span>        return;<a name="line.106"></a>
+<span class="sourceLineNo">107</span>      }<a name="line.107"></a>
+<span class="sourceLineNo">108</span><a name="line.108"></a>
+<span class="sourceLineNo">109</span>      if (requestsMap.containsKey(requestMeter) &amp;&amp; requestsMap.get(requestMeter).isPresent()) {<a name="line.109"></a>
+<span class="sourceLineNo">110</span>        Meter metric = (Meter) requestsMap.get(requestMeter).get();<a name="line.110"></a>
+<span class="sourceLineNo">111</span>        metric.mark();<a name="line.111"></a>
+<span class="sourceLineNo">112</span>      }<a name="line.112"></a>
+<span class="sourceLineNo">113</span>    }<a name="line.113"></a>
+<span class="sourceLineNo">114</span><a name="line.114"></a>
+<span class="sourceLineNo">115</span>    private void registerMeterIfNotPresent(ObserverContext&lt;RegionCoprocessorEnvironment&gt; e,<a name="line.115"></a>
+<span class="sourceLineNo">116</span>        String requestMeter) {<a name="line.116"></a>
+<span class="sourceLineNo">117</span>      if (requestMeter.isEmpty()) {<a name="line.117"></a>
+<span class="sourceLineNo">118</span>        return;<a name="line.118"></a>
+<span class="sourceLineNo">119</span>      }<a name="line.119"></a>
+<span class="sourceLineNo">120</span>      if (!requestsMap.containsKey(requestMeter)) {<a name="line.120"></a>
+<span class="sourceLineNo">121</span>        MetricRegistry registry = regionCoprocessorEnv.getMetricRegistryForRegionServer();<a name="line.121"></a>
+<span class="sourceLineNo">122</span>        registry.meter(requestMeter);<a name="line.122"></a>
+<span class="sourceLineNo">123</span>        requestsMap.put(requestMeter, registry.get(requestMeter));<a name="line.123"></a>
+<span class="sourceLineNo">124</span>      }<a name="line.124"></a>
+<span class="sourceLineNo">125</span>    }<a name="line.125"></a>
+<span class="sourceLineNo">126</span><a name="line.126"></a>
+<span class="sourceLineNo">127</span>    /**<a name="line.127"></a>
+<span class="sourceLineNo">128</span>     * Registers and counts lossyCount for Meters that kept by lossy counting.<a name="line.128"></a>
+<span class="sourceLineNo">129</span>     * By using lossy count to maintain meters, at most 7 / e meters will be kept  (e is error rate)<a name="line.129"></a>
+<span class="sourceLineNo">130</span>     * e.g. when e is 0.02 by default, at most 350 Clients request metrics will be kept<a name="line.130"></a>
+<span class="sourceLineNo">131</span>     *      also, all kept elements have frequency higher than e * N. (N is total count)<a name="line.131"></a>
+<span class="sourceLineNo">132</span>     * @param e Region coprocessor environment<a name="line.132"></a>
+<span class="sourceLineNo">133</span>     * @param requestMeter meter to be registered<a name="line.133"></a>
+<span class="sourceLineNo">134</span>     * @param lossyCounting lossyCounting object for one type of meters.<a name="line.134"></a>
+<span class="sourceLineNo">135</span>     */<a name="line.135"></a>
+<span class="sourceLineNo">136</span>    private void registerLossyCountingMeterIfNotPresent(<a name="line.136"></a>
+<span class="sourceLineNo">137</span>        ObserverContext&lt;RegionCoprocessorEnvironment&gt; e,<a name="line.137"></a>
+<span class="sourceLineNo">138</span>        String requestMeter, LossyCounting lossyCounting) {<a name="line.138"></a>
+<span class="sourceLineNo">139</span>      if (requestMeter.isEmpty()) {<a name="line.139"></a>
+<span class="sourceLineNo">140</span>        return;<a name="line.140"></a>
+<span class="sourceLineNo">141</span>      }<a name="line.141"></a>
+<span class="sourceLineNo">142</span>      Set&lt;String&gt; metersToBeRemoved = lossyCounting.addByOne(requestMeter);<a name="line.142"></a>
+<span class="sourceLineNo">143</span>      if(!requestsMap.containsKey(requestMeter) &amp;&amp; metersToBeRemoved.contains(requestMeter)){<a name="line.143"></a>
+<span class="sourceLineNo">144</span>        for(String meter: metersToBeRemoved) {<a name="line.144"></a>
+<span class="sourceLineNo">145</span>          //cleanup requestsMap according swept data from lossy count;<a name="line.145"></a>
+<span class="sourceLineNo">146</span>          requestsMap.remove(meter);<a name="line.146"></a>
+<span class="sourceLineNo">147</span>          MetricRegistry registry = regionCoprocessorEnv.getMetricRegistryForRegionServer();<a name="line.147"></a>
+<span class="sourceLineNo">148</span>          registry.remove(meter);<a name="line.148"></a>
+<span class="sourceLineNo">149</span>        }<a name="line.149"></a>
+<span class="sourceLineNo">150</span>        // newly added meter is swept by lossy counting cleanup. No need to put it into requestsMap.<a name="line.150"></a>
+<span class="sourceLineNo">151</span>        return;<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>      if (!requestsMap.containsKey(requestMeter)) {<a name="line.154"></a>
+<span class="sourceLineNo">155</span>        MetricRegistry registry = regionCoprocessorEnv.getMetricRegistryForRegionServer();<a name="line.155"></a>
+<span class="sourceLineNo">156</span>        registry.meter(requestMeter);<a name="line.156"></a>
+<span class="sourceLineNo">157</span>        requestsMap.put(requestMeter, registry.get(requestMeter));<a name="line.157"></a>
+<span class="sourceLineNo">158</span>      }<a name="line.158"></a>
+<span class="sourceLineNo">159</span>    }<a name="line.159"></a>
+<span class="sourceLineNo">160</span><a name="line.160"></a>
+<span class="sourceLineNo">161</span>    /**<a name="line.161"></a>
+<span class="sourceLineNo">162</span>     * Get table name from Ops such as: get, put, delete.<a name="line.162"></a>
+<span class="sourceLineNo">163</span>     * @param op such as get, put or delete.<a name="line.163"></a>
+<span class="sourceLineNo">164</span>     */<a name="line.164"></a>
+<span class="sourceLineNo">165</span>    private String getTableNameFromOp(Row op) {<a name="line.165"></a>
+<span class="sourceLineNo">166</span>      String tableName = null;<a name="line.166"></a>
+<span class="sourceLineNo">167</span>      String tableRowKey = new String(((Row) op).getRow(), StandardCharsets.UTF_8);<a name="line.167"></a>
+<span class="sourceLineNo">168</span>      if (tableRowKey.isEmpty()) {<a name="line.168"></a>
+<span class="sourceLineNo">169</span>        return null;<a name="line.169"></a>
+<span class="sourceLineNo">170</span>      }<a name="line.170"></a>
+<span class="sourceLineNo">171</span>      tableName = tableRowKey.split(",").length &gt; 0 ? tableRowKey.split(",")[0] : null;<a name="line.171"></a>
+<span class="sourceLineNo">172</span>      return tableName;<a name="line.172"></a>
+<span class="sourceLineNo">173</span>    }<a name="line.173"></a>
+<span class="sourceLineNo">174</span><a name="line.174"></a>
+<span class="sourceLineNo">175</span>    /**<a name="line.175"></a>
+<span class="sourceLineNo">176</span>     * Get regionId from Ops such as: get, put, delete.<a name="line.176"></a>
+<span class="sourceLineNo">177</span>     * @param op  such as get, put or delete.<a name="line.177"></a>
+<span class="sourceLineNo">178</span>     */<a name="line.178"></a>
+<span class="sourceLineNo">179</span>    private String getRegionIdFromOp(Row op) {<a name="line.179"></a>
+<span class="sourceLineNo">180</span>      String regionId = null;<a name="line.180"></a>
+<span class="sourceLineNo">181</span>      String tableRowKey = new String(((Row) op).getRow(), StandardCharsets.UTF_8);<a name="line.181"></a>
+<span class="sourceLineNo">182</span>      if (tableRowKey.isEmpty()) {<a name="line.182"></a>
+<span class="sourceLineNo">183</span>        return null;<a name="line.183"></a>
+<span class="sourceLineNo">184</span>      }<a name="line.184"></a>
+<span class="sourceLineNo">185</span>      regionId = tableRowKey.split(",").length &gt; 2 ? tableRowKey.split(",")[2] : null;<a name="line.185"></a>
+<span class="sourceLineNo">186</span>      return regionId;<a name="line.186"></a>
+<span class="sourceLineNo">187</span>    }<a name="line.187"></a>
+<span class="sourceLineNo">188</span><a name="line.188"></a>
+<span class="sourceLineNo">189</span>    private boolean isMetaTableOp(ObserverContext&lt;RegionCoprocessorEnvironment&gt; e) {<a name="line.189"></a>
+<span class="sourceLineNo">190</span>      return TableName.META_TABLE_NAME<a name="line.190"></a>
+<span class="sourceLineNo">191</span>          .equals(e.getEnvironment().getRegionInfo().getTable());<a name="line.191"></a>
+<span class="sourceLineNo">192</span>    }<a name="line.192"></a>
+<span class="sourceLineNo">193</span><a name="line.193"></a>
+<span class="sourceLineNo">194</span>    private void clientMetricRegisterAndMark(ObserverContext&lt;RegionCoprocessorEnvironment&gt; e) {<a name="line.194"></a>
+<span class="sourceLineNo">195</span>      // Mark client metric<a name="line.195"></a>
+<span class="sourceLineNo">196</span>      String clientIP = RpcServer.getRemoteIp() != null ? RpcServer.getRemoteIp().toString() : "";<a name="line.196"></a>
+<span class="sourceLineNo">197</span><a name="line.197"></a>
+<span class="sourceLineNo">198</span>      String clientRequestMeter = clientRequestMeterName(clientIP);<a name="line.198"></a>
+<span class="sourceLineNo">199</span>      registerLossyCountingMeterIfNotPresent(e, clientRequestMeter, clientMetricsLossyCounting);<a name="line.199"></a>
+<span class="sourceLineNo">200</span>      markMeterIfPresent(clientRequestMeter);<a name="line.200"></a>
+<span class="sourceLineNo">201</span>    }<a name="line.201"></a>
+<span class="sourceLineNo">202</span><a name="line.202"></a>
+<span class="sourceLineNo">203</span>    private void tableMetricRegisterAndMark(ObserverContext&lt;RegionCoprocessorEnvironment&gt; e,<a name="line.203"></a>
+<span class="sourceLineNo">204</span>        Row op) {<a name="line.204"></a>
+<span class="sourceLineNo">205</span>      // Mark table metric<a name="line.205"></a>
+<span class="sourceLineNo">206</span>      String tableName = getTableNameFromOp(op);<a name="line.206"></a>
+<span class="sourceLineNo">207</span>      String tableRequestMeter = tableMeterName(tableName);<a name="line.207"></a>
+<span class="sourceLineNo">208</span>      registerAndMarkMeterIfNotPresent(e, tableRequestMeter);<a name="line.208"></a>
+<span class="sourceLineNo">209</span>    }<a name="line.209"></a>
+<span class="sourceLineNo">210</span><a name="line.210"></a>
+<span class="sourceLineNo">211</span>    private void regionMetricRegisterAndMark(ObserverContext&lt;RegionCoprocessorEnvironment&gt; e,<a name="line.211"></a>
+<span class="sourceLineNo">212</span>        Row op) {<a name="line.212"></a>
+<span class="sourceLineNo">213</span>      // Mark region metric<a name="line.213"></a>
+<span class="sourceLineNo">214</span>      String regionId = getRegionIdFromOp(op);<a name="line.214"></a>
+<span class="sourceLineNo">215</span>      String regionRequestMeter = regionMeterName(regionId);<a name="line.215"></a>
+<span class="sourceLineNo">216</span>      registerAndMarkMeterIfNotPresent(e, regionRequestMeter);<a name="line.216"></a>
+<span class="sourceLineNo">217</span>    }<a name="line.217"></a>
+<span class="sourceLineNo">218</span><a name="line.218"></a>
+<span class="sourceLineNo">219</span>    private void opMetricRegisterAndMark(ObserverContext&lt;RegionCoprocessorEnvironment&gt; e,<a name="line.219"></a>
+<span class="sourceLineNo">220</span>        Row op) {<a name="line.220"></a>
+<span class="sourceLineNo">221</span>      // Mark access type ["get", "put", "delete"] metric<a name="line.221"></a>
+<span class="sourceLineNo">222</span>      String opMeterName = opMeterName(op);<a name="line.222"></a>
+<span class="sourceLineNo">223</span>      registerAndMarkMeterIfNotPresent(e, opMeterName);<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>    private void opWithClientMetricRegisterAndMark(ObserverContext&lt;RegionCoprocessorEnvironment&gt; e,<a name="line.226"></a>
+<span class="sourceLineNo">227</span>        Object op) {<a name="line.227"></a>
+<span class="sourceLineNo">228</span>      // // Mark client + access type metric<a name="line.228"></a>
+<span class="sourceLineNo">229</span>      String opWithClientMeterName = opWithClientMeterName(op);<a name="line.229"></a>
+<span class="sourceLineNo">230</span>      registerAndMarkMeterIfNotPresent(e, opWithClientMeterName);<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>    // Helper function to register and mark meter if not present<a name="line.233"></a>
+<span class="sourceLineNo">234</span>    private void registerAndMarkMeterIfNotPresent(ObserverContext&lt;RegionCoprocessorEnvironment&gt; e,<a name="line.234"></a>
+<span class="sourceLineNo">235</span>        String name) {<a name="line.235"></a>
+<span class="sourceLineNo">236</span>      registerMeterIfNotPresent(e, name);<a name="line.236"></a>
+<span class="sourceLineNo">237</span>      markMeterIfPresent(name);<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>    private String opWithClientMeterName(Object op) {<a name="line.240"></a>
+<span class="sourceLineNo">241</span>      // Extract meter name containing the client IP<a name="line.241"></a>
+<span class="sourceLineNo">242</span>      String clientIP = RpcServer.getRemoteIp() != null ? RpcServer.getRemoteIp().toString() : "";<a name="line.242"></a>
+<span class="sourceLineNo">243</span>      if (clientIP.isEmpty()) {<a name="line.243"></a>
+<span class="sourceLineNo">244</span>        return "";<a name="line.244"></a>
+<span class="sourceLineNo">245</span>      }<a name="line.245"></a>
+<span class="sourceLineNo">246</span>      MetaTableOps ops = opsNameMap.get(op.getClass());<a name="line.246"></a>
+<span class="sourceLineNo">247</span>      String opWithClientMeterName = "";<a name="line.247"></a>
+<span class="sourceLineNo">248</span>      switch (ops) {<a name="line.248"></a>
+<span class="sourceLineNo">249</span>        case GET:<a name="line.249"></a>
+<span class="sourceLineNo">250</span>          opWithClientMeterName = String.format("MetaTable_client_%s_get_request", clientIP);<a name="line.250"></a>
+<span class="sourceLineNo">251</span>          break;<a name="line.251"></a>
+<span class="sourceLineNo">252</span>        case PUT:<a name="line.252"></a>
+<span class="sourceLineNo">253</span>          opWithClientMeterName = String.format("MetaTable_client_%s_put_request", clientIP);<a name="line.253"></a>
 <span class="sourceLineNo">254</span>          break;<a name="line.254"></a>
-<span class="sourceLineNo">255</span>        case PUT:<a name="line.255"></a>
-<span class="sourceLineNo">256</span>          opWithClientMeterName = String.format("MetaTable_client_%s_put_request", clientIP);<a name="line.256"></a>
+<span class="sourceLineNo">255</span>        case DELETE:<a name="line.255"></a>
+<span class="sourceLineNo">256</span>          opWithClientMeterName = String.format("MetaTable_client_%s_delete_request", clientIP);<a name="line.256"></a>
 <span class="sourceLineNo">257</span>          break;<a name="line.257"></a>
-<span class="sourceLineNo">258</span>        case DELETE:<a name="line.258"></a>
-<span class="sourceLineNo">259</span>          opWithClientMeterName = String.format("MetaTable_client_%s_delete_request", clientIP);<a name="line.259"></a>
-<span class="sourceLineNo">260</span>          break;<a name="line.260"></a>
-<span class="sourceLineNo">261</span>        default:<a name="line.261"></a>
-<span class="sourceLineNo">262</span>          break;<a name="line.262"></a>
-<span class="sourceLineNo">263</span>      }<a name="line.263"></a>
-<span class="sourceLineNo">264</span>      return opWithClientMeterName;<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>    private String opMeterName(Object op) {<a name="line.267"></a>
-<span class="sourceLineNo">268</span>      MetaTableOps ops = opsNameMap.get(op.getClass());<a name="line.268"></a>
-<span class="sourceLineNo">269</span>      String opMeterName = "";<a name="line.269"></a>
-<span class="sourceLineNo">270</span>      switch (ops) {<a name="line.270"></a>
-<span class="sourceLineNo">271</span>        case GET:<a name="line.271"></a>
-<span class="sourceLineNo">272</span>          opMeterName = "MetaTable_get_request";<a name="line.272"></a>
-<span class="sourceLineNo">273</span>          break;<a name="line.273"></a>
-<span class="sourceLineNo">274</span>        case PUT:<a name="line.274"></a>
-<span class="sourceLineNo">275</span>          opMeterName = "MetaTable_put_request";<a name="line.275"></a>
-<span class="sourceLineNo">276</span>          break;<a name="line.276"></a>
-<span class="sourceLineNo">277</span>        case DELETE:<a name="line.277"></a>
-<span class="sourceLineNo">278</span>          opMeterName = "MetaTable_delete_request";<a name="line.278"></a>
+<span class="sourceLineNo">258</span>        default:<a name="line.258"></a>
+<span class="sourceLineNo">259</span>          break;<a name="line.259"></a>
+<span class="sourceLineNo">260</span>      }<a name="line.260"></a>
+<span class="sourceLineNo">261</span>      return opWithClientMeterName;<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>    private String opMeterName(Object op) {<a name="line.264"></a>
+<span class="sourceLineNo">265</span>      // Extract meter name containing the access type<a name="line.265"></a>
+<span class="sourceLineNo">266</span>      MetaTableOps ops = opsNameMap.get(op.getClass());<a name="line.266"></a>
+<span class="sourceLineNo">267</span>      String opMeterName = "";<a name="line.267"></a>
+<span class="sourceLineNo">268</span>      switch (ops) {<a name="line.268"></a>
+<span class="sourceLineNo">269</span>        case GET:<a name="line.269"></a>
+<span class="sourceLineNo">270</span>          opMeterName = "MetaTable_get_request";<a name="line.270"></a>
+<span class="sourceLineNo">271</span>          break;<a name="line.271"></a>
+<span class="sourceLineNo">272</span>        case PUT:<a name="line.272"></a>
+<span class="sourceLineNo">273</span>          opMeterName = "MetaTable_put_request";<a name="line.273"></a>
+<span class="sourceLineNo">274</span>          break;<a name="line.274"></a>
+<span class="sourceLineNo">275</span>        case DELETE:<a name="line.275"></a>
+<span class="sourceLineNo">276</span>          opMeterName = "MetaTable_delete_request";<a name="line.276"></a>
+<span class="sourceLineNo">277</span>          break;<a name="line.277"></a>
+<span class="sourceLineNo">278</span>        default:<a name="line.278"></a>
 <span class="sourceLineNo">279</span>          break;<a name="line.279"></a>
-<span class="sourceLineNo">280</span>        default:<a name="line.280"></a>
-<span class="sourceLineNo">281</span>          break;<a name="line.281"></a>
-<span class="sourceLineNo">282</span>      }<a name="line.282"></a>
-<span class="sourceLineNo">283</span>      return opMeterName;<a name="line.283"></a>
-<span class="sourceLineNo">284</span>    }<a name="line.284"></a>
-<span class="sourceLineNo">285</span><a name="line.285"></a>
-<span class="sourceLineNo">286</span>    private String tableMeterName(String tableName) {<a name="line.286"></a>
-<span class="sourceLineNo">287</span>      return String.format("MetaTable_table_%s_request", tableName);<a name="line.287"></a>
-<span class="sourceLineNo">288</span>    }<a name="line.288"></a>
-<span class="sourceLineNo">289</span><a name="line.289"></a>
-<span class="sourceLineNo">290</span>    private String clientRequestMeterName(String clientIP) {<a name="line.290"></a>
+<span class="sourceLineNo">280</span>      }<a name="line.280"></a>
+<span class="sourceLineNo">281</span>      return opMeterName;<a name="line.281"></a>
+<span class="sourceLineNo">282</span>    }<a name="line.282"></a>
+<span class="sourceLineNo">283</span><a name="line.283"></a>
+<span class="sourceLineNo">284</span>    private String tableMeterName(String tableName) {<a name="line.284"></a>
+<span class="sourceLineNo">285</span>      // Extract meter name containing the table name<a name="line.285"></a>
+<span class="sourceLineNo">286</span>      return String.format("MetaTable_table_%s_request", tableName);<a name="line.286"></a>
+<span class="sourceLineNo">287</span>    }<a name="line.287"></a>
+<span class="sourceLineNo">288</span><a name="line.288"></a>
+<span class="sourceLineNo">289</span>    private String clientRequestMeterName(String clientIP) {<a name="line.289"></a>
+<span class="sourceLineNo">290</span>      // Extract meter name containing the client IP<a name="line.290"></a>
 <span class="sourceLineNo">291</span>      if (clientIP.isEmpty()) {<a name="line.291"></a>
 <span class="sourceLineNo">292</span>        return "";<a name="line.292"></a>
 <span class="sourceLineNo">293</span>      }<a name="line.293"></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>    private String regionMeterName(String regionId) {<a name="line.297"></a>
-<span class="sourceLineNo">298</span>      return String.format("MetaTable_region_%s_request", regionId);<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><a name="line.301"></a>
-<span class="sourceLineNo">302</span>  @Override<a name="line.302"></a>
-<span class="sourceLineNo">303</span>  public Optional&lt;RegionObserver&gt; getRegionObserver() {<a name="line.303"></a>
-<span class="sourceLineNo">304</span>    return Optional.of(observer);<a name="line.304"></a>
-<span class="sourceLineNo">305</span>  }<a name="line.305"></a>
-<span class="sourceLineNo">306</span><a name="line.306"></a>
-<span class="sourceLineNo">307</span>  @Override<a name="line.307"></a>
-<span class="sourceLineNo">308</span>  public void start(CoprocessorEnvironment env) throws IOException {<a name="line.308"></a>
-<span class="sourceLineNo">309</span>    if (env instanceof RegionCoprocessorEnvironment<a name="line.309"></a>
-<span class="sourceLineNo">310</span>        &amp;&amp; ((RegionCoprocessorEnvironment) env).getRegionInfo().getTable() != null<a name="line.310"></a>
-<span class="sourceLineNo">311</span>        &amp;&amp; ((RegionCoprocessorEnvironment) env).getRegionInfo().getTable()<a name="line.311"></a>
-<span class="sourceLineNo">312</span>          .equals(TableName.META_TABLE_NAME)) {<a name="line.312"></a>
-<span class="sourceLineNo">313</span>      regionCoprocessorEnv = (RegionCoprocessorEnvironment) env;<a name="line.313"></a>
-<span class="sourceLineNo">314</span>      observer = new ExampleRegionObserverMeta();<a name="line.314"></a>
-<span class="sourceLineNo">315</span>      requestsMap = new ConcurrentHashMap&lt;&gt;();<a name="line.315"></a>
-<span class="sourceLineNo">316</span>      clientMetricsLossyCounting = new LossyCounting();<a name="line.316"></a>
-<span class="sourceLineNo">317</span>      // only be active mode when this region holds meta table.<a name="line.317"></a>
-<span class="sourceLineNo">318</span>      active = true;<a name="line.318"></a>
-<span class="sourceLineNo">319</span>    } else {<a name="line.319"></a>
-<span class="sourceLineNo">320</span>      observer = new ExampleRegionObserverMeta();<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>  @Override<a name="line.324"></a>
-<span class="sourceLineNo">325</span>  public void stop(CoprocessorEnvironment env) throws IOException {<a name="line.325"></a>
-<span class="sourceLineNo">326</span>    // since meta region can move around, clear stale metrics when stop.<a name="line.326"></a>
-<span class="sourceLineNo">327</span>    if (requestsMap != null) {<a name="line.327"></a>
+<span class="sourceLineNo">298</span>      // Extract meter name containing the region ID<a name="line.298"></a>
+<span class="sourceLineNo">299</span>      return String.format("MetaTable_region_%s_request", regionId);<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>  @Override<a name="line.303"></a>
+<span class="sourceLineNo">304</span>  public Optional&lt;RegionObserver&gt; getRegionObserver() {<a name="line.304"></a>
+<span class="sourceLineNo">305</span>    return Optional.of(observer);<a name="line.305"></a>
+<span class="sourceLineNo">306</span>  }<a name="line.306"></a>
+<span class="sourceLineNo">307</span><a name="line.307"></a>
+<span class="sourceLineNo">308</span>  @Override<a name="line.308"></a>
+<span class="sourceLineNo">309</span>  public void start(CoprocessorEnvironment env) throws IOException {<a name="line.309"></a>
+<span class="sourceLineNo">310</span>    observer = new ExampleRegionObserverMeta();<a name="line.310"></a>
+<span class="sourceLineNo">311</span>    if (env instanceof RegionCoprocessorEnvironment<a name="line.311"></a>
+<span class="sourceLineNo">312</span>        &amp;&amp; ((RegionCoprocessorEnvironment) env).getRegionInfo().getTable() != null<a name="line.312"></a>
+<span class="sourceLineNo">313</span>        &amp;&amp; ((RegionCoprocessorEnvironment) env).getRegionInfo().getTable()<a name="line.313"></a>
+<span class="sourceLineNo">314</span>          .equals(TableName.META_TABLE_NAME)) {<a name="line.314"></a>
+<span class="sourceLineNo">315</span>      regionCoprocessorEnv = (RegionCoprocessorEnvironment) env;<a name="line.315"></a>
+<span class="sourceLineNo">316</span>      requestsMap = new ConcurrentHashMap&lt;&gt;();<a name="line.316"></a>
+<span class="sourceLineNo">317</span>      clientMetricsLossyCounting = new LossyCounting();<a name="line.317"></a>
+<span class="sourceLineNo">318</span>      // only be active mode when this region holds meta table.<a name="line.318"></a>
+<span class="sourceLineNo">319</span>      active = true;<a name="line.319"></a>
+<span class="sourceLineNo">320</span>    }<a name="line.320"></a>
+<span class="sourceLineNo">321</span>  }<a name="line.321"></a>
+<span class="sourceLineNo">322</span><a name="line.322"></a>
+<span class="sourceLineNo">323</span>  @Override<a name="line.323"></a>
+<span class="sourceLineNo">324</span>  public void stop(CoprocessorEnvironment env) throws IOException {<a name="line.324"></a>
+<span class="sourceLineNo">325</span>    // since meta region can move around, clear stale metrics when stop.<a name="line.325"></a>
+<span class="sourceLineNo">326</span>    if (requestsMap != null) {<a name="line.326"></a>
+<span class="sourceLineNo">327</span>      MetricRegistry registry = regionCoprocessorEnv.getMetricRegistryForRegionServer();<a name="line.327"></a>
 <span class="sourceLineNo">328</span>      for (String meterName : requestsMap.keySet()) {<a name="line.328"></a>
-<span class="sourceLineNo">329</span>        MetricRegistry registry = regionCoprocessorEnv.getMetricRegistryForRegionServer();<a name="line.329"></a>
-<span class="sourceLineNo">330</span>        registry.remove(meterName);<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><a name="line.334"></a>
-<span class="sourceLineNo">335</span>}<a name="line.335"></a>
+<span class="sourceLineNo">329</span>        registry.remove(meterName);<a name="line.329"></a>
+<span class="sourceLineNo">330</span>      }<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>
 
 
 
index bd3c957..2e36f92 100644 (file)
 <span class="sourceLineNo">075</span>    @Override<a name="line.75"></a>
 <span class="sourceLineNo">076</span>    public void preGetOp(ObserverContext&lt;RegionCoprocessorEnvironment&gt; e, Get get,<a name="line.76"></a>
 <span class="sourceLineNo">077</span>        List&lt;Cell&gt; results) throws IOException {<a name="line.77"></a>
-<span class="sourceLineNo">078</span>      if (!active || !isMetaTableOp(e)) {<a name="line.78"></a>
-<span class="sourceLineNo">079</span>        return;<a name="line.79"></a>
-<span class="sourceLineNo">080</span>      }<a name="line.80"></a>
-<span class="sourceLineNo">081</span>      tableMetricRegisterAndMark(e, get);<a name="line.81"></a>
-<span class="sourceLineNo">082</span>      clientMetricRegisterAndMark(e);<a name="line.82"></a>
-<span class="sourceLineNo">083</span>      regionMetricRegisterAndMark(e, get);<a name="line.83"></a>
-<span class="sourceLineNo">084</span>      opMetricRegisterAndMark(e, get);<a name="line.84"></a>
-<span class="sourceLineNo">085</span>      opWithClientMetricRegisterAndMark(e, get);<a name="line.85"></a>
-<span class="sourceLineNo">086</span>    }<a name="line.86"></a>
-<span class="sourceLineNo">087</span><a name="line.87"></a>
-<span class="sourceLineNo">088</span>    @Override<a name="line.88"></a>
-<span class="sourceLineNo">089</span>    public void prePut(ObserverContext&lt;RegionCoprocessorEnvironment&gt; e, Put put, WALEdit edit,<a name="line.89"></a>
-<span class="sourceLineNo">090</span>        Durability durability) throws IOException {<a name="line.90"></a>
-<span class="sourceLineNo">091</span>      if (!active || !isMetaTableOp(e)) {<a name="line.91"></a>
-<span class="sourceLineNo">092</span>        return;<a name="line.92"></a>
-<span class="sourceLineNo">093</span>      }<a name="line.93"></a>
-<span class="sourceLineNo">094</span>      tableMetricRegisterAndMark(e, put);<a name="line.94"></a>
-<span class="sourceLineNo">095</span>      clientMetricRegisterAndMark(e);<a name="line.95"></a>
-<span class="sourceLineNo">096</span>      regionMetricRegisterAndMark(e, put);<a name="line.96"></a>
-<span class="sourceLineNo">097</span>      opMetricRegisterAndMark(e, put);<a name="line.97"></a>
-<span class="sourceLineNo">098</span>      opWithClientMetricRegisterAndMark(e, put);<a name="line.98"></a>
-<span class="sourceLineNo">099</span>    }<a name="line.99"></a>
-<span class="sourceLineNo">100</span><a name="line.100"></a>
-<span class="sourceLineNo">101</span>    @Override<a name="line.101"></a>
-<span class="sourceLineNo">102</span>    public void preDelete(ObserverContext&lt;RegionCoprocessorEnvironment&gt; e, Delete delete,<a name="line.102"></a>
-<span class="sourceLineNo">103</span>        WALEdit edit, Durability durability) throws IOException {<a name="line.103"></a>
-<span class="sourceLineNo">104</span>      if (!active || !isMetaTableOp(e)) {<a name="line.104"></a>
-<span class="sourceLineNo">105</span>        return;<a name="line.105"></a>
-<span class="sourceLineNo">106</span>      }<a name="line.106"></a>
-<span class="sourceLineNo">107</span>      tableMetricRegisterAndMark(e, delete);<a name="line.107"></a>
-<span class="sourceLineNo">108</span>      clientMetricRegisterAndMark(e);<a name="line.108"></a>
-<span class="sourceLineNo">109</span>      regionMetricRegisterAndMark(e, delete);<a name="line.109"></a>
-<span class="sourceLineNo">110</span>      opMetricRegisterAndMark(e, delete);<a name="line.110"></a>
-<span class="sourceLineNo">111</span>      opWithClientMetricRegisterAndMark(e, delete);<a name="line.111"></a>
-<span class="sourceLineNo">112</span>    }<a name="line.112"></a>
-<span class="sourceLineNo">113</span><a name="line.113"></a>
-<span class="sourceLineNo">114</span>    private void markMeterIfPresent(String requestMeter) {<a name="line.114"></a>
-<span class="sourceLineNo">115</span>      if (requestMeter.isEmpty()) {<a name="line.115"></a>
-<span class="sourceLineNo">116</span>        return;<a name="line.116"></a>
-<span class="sourceLineNo">117</span>      }<a name="line.117"></a>
-<span class="sourceLineNo">118</span>      Metric metric =<a name="line.118"></a>
-<span class="sourceLineNo">119</span>          requestsMap.get(requestMeter).isPresent() ? requestsMap.get(requestMeter).get() : null;<a name="line.119"></a>
-<span class="sourceLineNo">120</span>      if (metric != null) {<a name="line.120"></a>
-<span class="sourceLineNo">121</span>        ((Meter) metric).mark();<a name="line.121"></a>
-<span class="sourceLineNo">122</span>      }<a name="line.122"></a>
-<span class="sourceLineNo">123</span>    }<a name="line.123"></a>
-<span class="sourceLineNo">124</span><a name="line.124"></a>
-<span class="sourceLineNo">125</span>    private void registerMeterIfNotPresent(ObserverContext&lt;RegionCoprocessorEnvironment&gt; e,<a name="line.125"></a>
-<span class="sourceLineNo">126</span>        String requestMeter) {<a name="line.126"></a>
-<span class="sourceLineNo">127</span>      if (requestMeter.isEmpty()) {<a name="line.127"></a>
-<span class="sourceLineNo">128</span>        return;<a name="line.128"></a>
-<span class="sourceLineNo">129</span>      }<a name="line.129"></a>
-<span class="sourceLineNo">130</span>      if (!requestsMap.containsKey(requestMeter)) {<a name="line.130"></a>
-<span class="sourceLineNo">131</span>        MetricRegistry registry = regionCoprocessorEnv.getMetricRegistryForRegionServer();<a name="line.131"></a>
-<span class="sourceLineNo">132</span>        registry.meter(requestMeter);<a name="line.132"></a>
-<span class="sourceLineNo">133</span>        requestsMap.put(requestMeter, registry.get(requestMeter));<a name="line.133"></a>
-<span class="sourceLineNo">134</span>      }<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>     * Registers and counts lossyCount for Meters that kept by lossy counting.<a name="line.138"></a>
-<span class="sourceLineNo">139</span>     * By using lossy count to maintain meters, at most 7 / e meters will be kept  (e is error rate)<a name="line.139"></a>
-<span class="sourceLineNo">140</span>     * e.g. when e is 0.02 by default, at most 50 Clients request metrics will be kept<a name="line.140"></a>
-<span class="sourceLineNo">141</span>     *      also, all kept elements have frequency higher than e * N. (N is total count)<a name="line.141"></a>
-<span class="sourceLineNo">142</span>     * @param e Region coprocessor environment<a name="line.142"></a>
-<span class="sourceLineNo">143</span>     * @param requestMeter meter to be registered<a name="line.143"></a>
-<span class="sourceLineNo">144</span>     * @param lossyCounting lossyCounting object for one type of meters.<a name="line.144"></a>
-<span class="sourceLineNo">145</span>     */<a name="line.145"></a>
-<span class="sourceLineNo">146</span>    private void registerLossyCountingMeterIfNotPresent(<a name="line.146"></a>
-<span class="sourceLineNo">147</span>        ObserverContext&lt;RegionCoprocessorEnvironment&gt; e,<a name="line.147"></a>
-<span class="sourceLineNo">148</span>        String requestMeter, LossyCounting lossyCounting) {<a name="line.148"></a>
-<span class="sourceLineNo">149</span>      if (requestMeter.isEmpty()) {<a name="line.149"></a>
-<span class="sourceLineNo">150</span>        return;<a name="line.150"></a>
-<span class="sourceLineNo">151</span>      }<a name="line.151"></a>
-<span class="sourceLineNo">152</span>      Set&lt;String&gt; metersToBeRemoved = lossyCounting.addByOne(requestMeter);<a name="line.152"></a>
-<span class="sourceLineNo">153</span>      if(!requestsMap.containsKey(requestMeter) &amp;&amp; metersToBeRemoved.contains(requestMeter)){<a name="line.153"></a>
-<span class="sourceLineNo">154</span>        for(String meter: metersToBeRemoved) {<a name="line.154"></a>
-<span class="sourceLineNo">155</span>          //cleanup requestsMap according swept data from lossy count;<a name="line.155"></a>
-<span class="sourceLineNo">156</span>          requestsMap.remove(meter);<a name="line.156"></a>
-<span class="sourceLineNo">157</span>          MetricRegistry registry = regionCoprocessorEnv.getMetricRegistryForRegionServer();<a name="line.157"></a>
-<span class="sourceLineNo">158</span>          registry.remove(meter);<a name="line.158"></a>
-<span class="sourceLineNo">159</span>        }<a name="line.159"></a>
-<span class="sourceLineNo">160</span>        // newly added meter is swept by lossy counting cleanup. No need to put it into requestsMap.<a name="line.160"></a>
-<span class="sourceLineNo">161</span>        return;<a name="line.161"></a>
-<span class="sourceLineNo">162</span>      }<a name="line.162"></a>
-<span class="sourceLineNo">163</span><a name="line.163"></a>
-<span class="sourceLineNo">164</span>      if (!requestsMap.containsKey(requestMeter)) {<a name="line.164"></a>
-<span class="sourceLineNo">165</span>        MetricRegistry registry = regionCoprocessorEnv.getMetricRegistryForRegionServer();<a name="line.165"></a>
-<span class="sourceLineNo">166</span>        registry.meter(requestMeter);<a name="line.166"></a>
-<span class="sourceLineNo">167</span>        requestsMap.put(requestMeter, registry.get(requestMeter));<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>     * Get table name from Ops such as: get, put, delete.<a name="line.172"></a>
-<span class="sourceLineNo">173</span>     * @param op such as get, put or delete.<a name="line.173"></a>
-<span class="sourceLineNo">174</span>     */<a name="line.174"></a>
-<span class="sourceLineNo">175</span>    private String getTableNameFromOp(Row op) {<a name="line.175"></a>
-<span class="sourceLineNo">176</span>      String tableName = null;<a name="line.176"></a>
-<span class="sourceLineNo">177</span>      String tableRowKey = new String(((Row) op).getRow(), StandardCharsets.UTF_8);<a name="line.177"></a>
-<span class="sourceLineNo">178</span>      if (tableRowKey.isEmpty()) {<a name="line.178"></a>
-<span class="sourceLineNo">179</span>        return null;<a name="line.179"></a>
-<span class="sourceLineNo">180</span>      }<a name="line.180"></a>
-<span class="sourceLineNo">181</span>      tableName = tableRowKey.split(",").length &gt; 0 ? tableRowKey.split(",")[0] : null;<a name="line.181"></a>
-<span class="sourceLineNo">182</span>      return tableName;<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>    /**<a name="line.185"></a>
-<span class="sourceLineNo">186</span>     * Get regionId from Ops such as: get, put, delete.<a name="line.186"></a>
-<span class="sourceLineNo">187</span>     * @param op  such as get, put or delete.<a name="line.187"></a>
-<span class="sourceLineNo">188</span>     */<a name="line.188"></a>
-<span class="sourceLineNo">189</span>    private String getRegionIdFromOp(Row op) {<a name="line.189"></a>
-<span class="sourceLineNo">190</span>      String regionId = null;<a name="line.190"></a>
-<span class="sourceLineNo">191</span>      String tableRowKey = new String(((Row) op).getRow(), StandardCharsets.UTF_8);<a name="line.191"></a>
-<span class="sourceLineNo">192</span>      if (tableRowKey.isEmpty()) {<a name="line.192"></a>
-<span class="sourceLineNo">193</span>        return null;<a name="line.193"></a>
-<span class="sourceLineNo">194</span>      }<a name="line.194"></a>
-<span class="sourceLineNo">195</span>      regionId = tableRowKey.split(",").length &gt; 2 ? tableRowKey.split(",")[2] : null;<a name="line.195"></a>
-<span class="sourceLineNo">196</span>      return regionId;<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>    private boolean isMetaTableOp(ObserverContext&lt;RegionCoprocessorEnvironment&gt; e) {<a name="line.199"></a>
-<span class="sourceLineNo">200</span>      return TableName.META_TABLE_NAME<a name="line.200"></a>
-<span class="sourceLineNo">201</span>          .equals(e.getEnvironment().getRegionInfo().getTable());<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>    private void clientMetricRegisterAndMark(ObserverContext&lt;RegionCoprocessorEnvironment&gt; e) {<a name="line.204"></a>
-<span class="sourceLineNo">205</span>      String clientIP = RpcServer.getRemoteIp() != null ? RpcServer.getRemoteIp().toString() : "";<a name="line.205"></a>
-<span class="sourceLineNo">206</span><a name="line.206"></a>
-<span class="sourceLineNo">207</span>      String clientRequestMeter = clientRequestMeterName(clientIP);<a name="line.207"></a>
-<span class="sourceLineNo">208</span>      registerLossyCountingMeterIfNotPresent(e, clientRequestMeter, clientMetricsLossyCounting);<a name="line.208"></a>
-<span class="sourceLineNo">209</span>      markMeterIfPresent(clientRequestMeter);<a name="line.209"></a>
-<span class="sourceLineNo">210</span>    }<a name="line.210"></a>
-<span class="sourceLineNo">211</span><a name="line.211"></a>
-<span class="sourceLineNo">212</span>    private void tableMetricRegisterAndMark(ObserverContext&lt;RegionCoprocessorEnvironment&gt; e,<a name="line.212"></a>
-<span class="sourceLineNo">213</span>        Row op) {<a name="line.213"></a>
-<span class="sourceLineNo">214</span>      // Mark the meta table meter whenever the coprocessor is called<a name="line.214"></a>
-<span class="sourceLineNo">215</span>      String tableName = getTableNameFromOp(op);<a name="line.215"></a>
-<span class="sourceLineNo">216</span>      String tableRequestMeter = tableMeterName(tableName);<a name="line.216"></a>
-<span class="sourceLineNo">217</span>      registerMeterIfNotPresent(e, tableRequestMeter);<a name="line.217"></a>
-<span class="sourceLineNo">218</span>      markMeterIfPresent(tableRequestMeter);<a name="line.218"></a>
-<span class="sourceLineNo">219</span>    }<a name="line.219"></a>
-<span class="sourceLineNo">220</span><a name="line.220"></a>
-<span class="sourceLineNo">221</span>    private void regionMetricRegisterAndMark(ObserverContext&lt;RegionCoprocessorEnvironment&gt; e,<a name="line.221"></a>
-<span class="sourceLineNo">222</span>        Row op) {<a name="line.222"></a>
-<span class="sourceLineNo">223</span>      // Mark the meta table meter whenever the coprocessor is called<a name="line.223"></a>
-<span class="sourceLineNo">224</span>      String regionId = getRegionIdFromOp(op);<a name="line.224"></a>
-<span class="sourceLineNo">225</span>      String regionRequestMeter = regionMeterName(regionId);<a name="line.225"></a>
-<span class="sourceLineNo">226</span>      registerMeterIfNotPresent(e, regionRequestMeter);<a name="line.226"></a>
-<span class="sourceLineNo">227</span>      markMeterIfPresent(regionRequestMeter);<a name="line.227"></a>
-<span class="sourceLineNo">228</span>    }<a name="line.228"></a>
-<span class="sourceLineNo">229</span><a name="line.229"></a>
-<span class="sourceLineNo">230</span>    private void opMetricRegisterAndMark(ObserverContext&lt;RegionCoprocessorEnvironment&gt; e,<a name="line.230"></a>
-<span class="sourceLineNo">231</span>        Row op) {<a name="line.231"></a>
-<span class="sourceLineNo">232</span>      String opMeterName = opMeterName(op);<a name="line.232"></a>
-<span class="sourceLineNo">233</span>      registerMeterIfNotPresent(e, opMeterName);<a name="line.233"></a>
-<span class="sourceLineNo">234</span>      markMeterIfPresent(opMeterName);<a name="line.234"></a>
-<span class="sourceLineNo">235</span>    }<a name="line.235"></a>
-<span class="sourceLineNo">236</span><a name="line.236"></a>
-<span class="sourceLineNo">237</span>    private void opWithClientMetricRegisterAndMark(ObserverContext&lt;RegionCoprocessorEnvironment&gt; e,<a name="line.237"></a>
-<span class="sourceLineNo">238</span>        Object op) {<a name="line.238"></a>
-<span class="sourceLineNo">239</span>      String opWithClientMeterName = opWithClientMeterName(op);<a name="line.239"></a>
-<span class="sourceLineNo">240</span>      registerMeterIfNotPresent(e, opWithClientMeterName);<a name="line.240"></a>
-<span class="sourceLineNo">241</span>      markMeterIfPresent(opWithClientMeterName);<a name="line.241"></a>
-<span class="sourceLineNo">242</span>    }<a name="line.242"></a>
-<span class="sourceLineNo">243</span><a name="line.243"></a>
-<span class="sourceLineNo">244</span>    private String opWithClientMeterName(Object op) {<a name="line.244"></a>
-<span class="sourceLineNo">245</span>      String clientIP = RpcServer.getRemoteIp() != null ? RpcServer.getRemoteIp().toString() : "";<a name="line.245"></a>
-<span class="sourceLineNo">246</span>      if (clientIP.isEmpty()) {<a name="line.246"></a>
-<span class="sourceLineNo">247</span>        return "";<a name="line.247"></a>
-<span class="sourceLineNo">248</span>      }<a name="line.248"></a>
-<span class="sourceLineNo">249</span>      MetaTableOps ops = opsNameMap.get(op.getClass());<a name="line.249"></a>
-<span class="sourceLineNo">250</span>      String opWithClientMeterName = "";<a name="line.250"></a>
-<span class="sourceLineNo">251</span>      switch (ops) {<a name="line.251"></a>
-<span class="sourceLineNo">252</span>        case GET:<a name="line.252"></a>
-<span class="sourceLineNo">253</span>          opWithClientMeterName = String.format("MetaTable_client_%s_get_request", clientIP);<a name="line.253"></a>
+<span class="sourceLineNo">078</span>      registerAndMarkMetrics(e, get);<a name="line.78"></a>
+<span class="sourceLineNo">079</span>    }<a name="line.79"></a>
+<span class="sourceLineNo">080</span><a name="line.80"></a>
+<span class="sourceLineNo">081</span>    @Override<a name="line.81"></a>
+<span class="sourceLineNo">082</span>    public void prePut(ObserverContext&lt;RegionCoprocessorEnvironment&gt; e, Put put, WALEdit edit,<a name="line.82"></a>
+<span class="sourceLineNo">083</span>        Durability durability) throws IOException {<a name="line.83"></a>
+<span class="sourceLineNo">084</span>      registerAndMarkMetrics(e, put);<a name="line.84"></a>
+<span class="sourceLineNo">085</span>    }<a name="line.85"></a>
+<span class="sourceLineNo">086</span><a name="line.86"></a>
+<span class="sourceLineNo">087</span>    @Override<a name="line.87"></a>
+<span class="sourceLineNo">088</span>    public void preDelete(ObserverContext&lt;RegionCoprocessorEnvironment&gt; e, Delete delete,<a name="line.88"></a>
+<span class="sourceLineNo">089</span>        WALEdit edit, Durability durability) throws IOException {<a name="line.89"></a>
+<span class="sourceLineNo">090</span>      registerAndMarkMetrics(e, delete);<a name="line.90"></a>
+<span class="sourceLineNo">091</span>    }<a name="line.91"></a>
+<span class="sourceLineNo">092</span><a name="line.92"></a>
+<span class="sourceLineNo">093</span>    private void registerAndMarkMetrics(ObserverContext&lt;RegionCoprocessorEnvironment&gt; e, Row row){<a name="line.93"></a>
+<span class="sourceLineNo">094</span>      if (!active || !isMetaTableOp(e)) {<a name="line.94"></a>
+<span class="sourceLineNo">095</span>        return;<a name="line.95"></a>
+<span class="sourceLineNo">096</span>      }<a name="line.96"></a>
+<span class="sourceLineNo">097</span>      tableMetricRegisterAndMark(e, row);<a name="line.97"></a>
+<span class="sourceLineNo">098</span>      clientMetricRegisterAndMark(e);<a name="line.98"></a>
+<span class="sourceLineNo">099</span>      regionMetricRegisterAndMark(e, row);<a name="line.99"></a>
+<span class="sourceLineNo">100</span>      opMetricRegisterAndMark(e, row);<a name="line.100"></a>
+<span class="sourceLineNo">101</span>      opWithClientMetricRegisterAndMark(e, row);<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>    private void markMeterIfPresent(String requestMeter) {<a name="line.104"></a>
+<span class="sourceLineNo">105</span>      if (requestMeter.isEmpty()) {<a name="line.105"></a>
+<span class="sourceLineNo">106</span>        return;<a name="line.106"></a>
+<span class="sourceLineNo">107</span>      }<a name="line.107"></a>
+<span class="sourceLineNo">108</span><a name="line.108"></a>
+<span class="sourceLineNo">109</span>      if (requestsMap.containsKey(requestMeter) &amp;&amp; requestsMap.get(requestMeter).isPresent()) {<a name="line.109"></a>
+<span class="sourceLineNo">110</span>        Meter metric = (Meter) requestsMap.get(requestMeter).get();<a name="line.110"></a>
+<span class="sourceLineNo">111</span>        metric.mark();<a name="line.111"></a>
+<span class="sourceLineNo">112</span>      }<a name="line.112"></a>
+<span class="sourceLineNo">113</span>    }<a name="line.113"></a>
+<span class="sourceLineNo">114</span><a name="line.114"></a>
+<span class="sourceLineNo">115</span>    private void registerMeterIfNotPresent(ObserverContext&lt;RegionCoprocessorEnvironment&gt; e,<a name="line.115"></a>
+<span class="sourceLineNo">116</span>        String requestMeter) {<a name="line.116"></a>
+<span class="sourceLineNo">117</span>      if (requestMeter.isEmpty()) {<a name="line.117"></a>
+<span class="sourceLineNo">118</span>        return;<a name="line.118"></a>
+<span class="sourceLineNo">119</span>      }<a name="line.119"></a>
+<span class="sourceLineNo">120</span>      if (!requestsMap.containsKey(requestMeter)) {<a name="line.120"></a>
+<span class="sourceLineNo">121</span>        MetricRegistry registry = regionCoprocessorEnv.getMetricRegistryForRegionServer();<a name="line.121"></a>
+<span class="sourceLineNo">122</span>        registry.meter(requestMeter);<a name="line.122"></a>
+<span class="sourceLineNo">123</span>        requestsMap.put(requestMeter, registry.get(requestMeter));<a name="line.123"></a>
+<span class="sourceLineNo">124</span>      }<a name="line.124"></a>
+<span class="sourceLineNo">125</span>    }<a name="line.125"></a>
+<span class="sourceLineNo">126</span><a name="line.126"></a>
+<span class="sourceLineNo">127</span>    /**<a name="line.127"></a>
+<span class="sourceLineNo">128</span>     * Registers and counts lossyCount for Meters that kept by lossy counting.<a name="line.128"></a>
+<span class="sourceLineNo">129</span>     * By using lossy count to maintain meters, at most 7 / e meters will be kept  (e is error rate)<a name="line.129"></a>
+<span class="sourceLineNo">130</span>     * e.g. when e is 0.02 by default, at most 350 Clients request metrics will be kept<a name="line.130"></a>
+<span class="sourceLineNo">131</span>     *      also, all kept elements have frequency higher than e * N. (N is total count)<a name="line.131"></a>
+<span class="sourceLineNo">132</span>     * @param e Region coprocessor environment<a name="line.132"></a>
+<span class="sourceLineNo">133</span>     * @param requestMeter meter to be registered<a name="line.133"></a>
+<span class="sourceLineNo">134</span>     * @param lossyCounting lossyCounting object for one type of meters.<a name="line.134"></a>
+<span class="sourceLineNo">135</span>     */<a name="line.135"></a>
+<span class="sourceLineNo">136</span>    private void registerLossyCountingMeterIfNotPresent(<a name="line.136"></a>
+<span class="sourceLineNo">137</span>        ObserverContext&lt;RegionCoprocessorEnvironment&gt; e,<a name="line.137"></a>
+<span class="sourceLineNo">138</span>        String requestMeter, LossyCounting lossyCounting) {<a name="line.138"></a>
+<span class="sourceLineNo">139</span>      if (requestMeter.isEmpty()) {<a name="line.139"></a>
+<span class="sourceLineNo">140</span>        return;<a name="line.140"></a>
+<span class="sourceLineNo">141</span>      }<a name="line.141"></a>
+<span class="sourceLineNo">142</span>      Set&lt;String&gt; metersToBeRemoved = lossyCounting.addByOne(requestMeter);<a name="line.142"></a>
+<span class="sourceLineNo">143</span>      if(!requestsMap.containsKey(requestMeter) &amp;&amp; metersToBeRemoved.contains(requestMeter)){<a name="line.143"></a>
+<span class="sourceLineNo">144</span>        for(String meter: metersToBeRemoved) {<a name="line.144"></a>
+<span class="sourceLineNo">145</span>          //cleanup requestsMap according swept data from lossy count;<a name="line.145"></a>
+<span class="sourceLineNo">146</span>          requestsMap.remove(meter);<a name="line.146"></a>
+<span class="sourceLineNo">147</span>          MetricRegistry registry = regionCoprocessorEnv.getMetricRegistryForRegionServer();<a name="line.147"></a>
+<span class="sourceLineNo">148</span>          registry.remove(meter);<a name="line.148"></a>
+<span class="sourceLineNo">149</span>        }<a name="line.149"></a>
+<span class="sourceLineNo">150</span>        // newly added meter is swept by lossy counting cleanup. No need to put it into requestsMap.<a name="line.150"></a>
+<span class="sourceLineNo">151</span>        return;<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>      if (!requestsMap.containsKey(requestMeter)) {<a name="line.154"></a>
+<span class="sourceLineNo">155</span>        MetricRegistry registry = regionCoprocessorEnv.getMetricRegistryForRegionServer();<a name="line.155"></a>
+<span class="sourceLineNo">156</span>        registry.meter(requestMeter);<a name="line.156"></a>
+<span class="sourceLineNo">157</span>        requestsMap.put(requestMeter, registry.get(requestMeter));<a name="line.157"></a>
+<span class="sourceLineNo">158</span>      }<a name="line.158"></a>
+<span class="sourceLineNo">159</span>    }<a name="line.159"></a>
+<span class="sourceLineNo">160</span><a name="line.160"></a>
+<span class="sourceLineNo">161</span>    /**<a name="line.161"></a>
+<span class="sourceLineNo">162</span>     * Get table name from Ops such as: get, put, delete.<a name="line.162"></a>
+<span class="sourceLineNo">163</span>     * @param op such as get, put or delete.<a name="line.163"></a>
+<span class="sourceLineNo">164</span>     */<a name="line.164"></a>
+<span class="sourceLineNo">165</span>    private String getTableNameFromOp(Row op) {<a name="line.165"></a>
+<span class="sourceLineNo">166</span>      String tableName = null;<a name="line.166"></a>
+<span class="sourceLineNo">167</span>      String tableRowKey = new String(((Row) op).getRow(), StandardCharsets.UTF_8);<a name="line.167"></a>
+<span class="sourceLineNo">168</span>      if (tableRowKey.isEmpty()) {<a name="line.168"></a>
+<span class="sourceLineNo">169</span>        return null;<a name="line.169"></a>
+<span class="sourceLineNo">170</span>      }<a name="line.170"></a>
+<span class="sourceLineNo">171</span>      tableName = tableRowKey.split(",").length &gt; 0 ? tableRowKey.split(",")[0] : null;<a name="line.171"></a>
+<span class="sourceLineNo">172</span>      return tableName;<a name="line.172"></a>
+<span class="sourceLineNo">173</span>    }<a name="line.173"></a>
+<span class="sourceLineNo">174</span><a name="line.174"></a>
+<span class="sourceLineNo">175</span>    /**<a name="line.175"></a>
+<span class="sourceLineNo">176</span>     * Get regionId from Ops such as: get, put, delete.<a name="line.176"></a>
+<span class="sourceLineNo">177</span>     * @param op  such as get, put or delete.<a name="line.177"></a>
+<span class="sourceLineNo">178</span>     */<a name="line.178"></a>
+<span class="sourceLineNo">179</span>    private String getRegionIdFromOp(Row op) {<a name="line.179"></a>
+<span class="sourceLineNo">180</span>      String regionId = null;<a name="line.180"></a>
+<span class="sourceLineNo">181</span>      String tableRowKey = new String(((Row) op).getRow(), StandardCharsets.UTF_8);<a name="line.181"></a>
+<span class="sourceLineNo">182</span>      if (tableRowKey.isEmpty()) {<a name="line.182"></a>
+<span class="sourceLineNo">183</span>        return null;<a name="line.183"></a>
+<span class="sourceLineNo">184</span>      }<a name="line.184"></a>
+<span class="sourceLineNo">185</span>      regionId = tableRowKey.split(",").length &gt; 2 ? tableRowKey.split(",")[2] : null;<a name="line.185"></a>
+<span class="sourceLineNo">186</span>      return regionId;<a name="line.186"></a>
+<span class="sourceLineNo">187</span>    }<a name="line.187"></a>
+<span class="sourceLineNo">188</span><a name="line.188"></a>
+<span class="sourceLineNo">189</span>    private boolean isMetaTableOp(ObserverContext&lt;RegionCoprocessorEnvironment&gt; e) {<a name="line.189"></a>
+<span class="sourceLineNo">190</span>      return TableName.META_TABLE_NAME<a name="line.190"></a>
+<span class="sourceLineNo">191</span>          .equals(e.getEnvironment().getRegionInfo().getTable());<a name="line.191"></a>
+<span class="sourceLineNo">192</span>    }<a name="line.192"></a>
+<span class="sourceLineNo">193</span><a name="line.193"></a>
+<span class="sourceLineNo">194</span>    private void clientMetricRegisterAndMark(ObserverContext&lt;RegionCoprocessorEnvironment&gt; e) {<a name="line.194"></a>
+<span class="sourceLineNo">195</span>      // Mark client metric<a name="line.195"></a>
+<span class="sourceLineNo">196</span>      String clientIP = RpcServer.getRemoteIp() != null ? RpcServer.getRemoteIp().toString() : "";<a name="line.196"></a>
+<span class="sourceLineNo">197</span><a name="line.197"></a>
+<span class="sourceLineNo">198</span>      String clientRequestMeter = clientRequestMeterName(clientIP);<a name="line.198"></a>
+<span class="sourceLineNo">199</span>      registerLossyCountingMeterIfNotPresent(e, clientRequestMeter, clientMetricsLossyCounting);<a name="line.199"></a>
+<span class="sourceLineNo">200</span>      markMeterIfPresent(clientRequestMeter);<a name="line.200"></a>
+<span class="sourceLineNo">201</span>    }<a name="line.201"></a>
+<span class="sourceLineNo">202</span><a name="line.202"></a>
+<span class="sourceLineNo">203</span>    private void tableMetricRegisterAndMark(ObserverContext&lt;RegionCoprocessorEnvironment&gt; e,<a name="line.203"></a>
+<span class="sourceLineNo">204</span>        Row op) {<a name="line.204"></a>
+<span class="sourceLineNo">205</span>      // Mark table metric<a name="line.205"></a>
+<span class="sourceLineNo">206</span>      String tableName = getTableNameFromOp(op);<a name="line.206"></a>
+<span class="sourceLineNo">207</span>      String tableRequestMeter = tableMeterName(tableName);<a name="line.207"></a>
+<span class="sourceLineNo">208</span>      registerAndMarkMeterIfNotPresent(e, tableRequestMeter);<a name="line.208"></a>
+<span class="sourceLineNo">209</span>    }<a name="line.209"></a>
+<span class="sourceLineNo">210</span><a name="line.210"></a>
+<span class="sourceLineNo">211</span>    private void regionMetricRegisterAndMark(ObserverContext&lt;RegionCoprocessorEnvironment&gt; e,<a name="line.211"></a>
+<span class="sourceLineNo">212</span>        Row op) {<a name="line.212"></a>
+<span class="sourceLineNo">213</span>      // Mark region metric<a name="line.213"></a>
+<span class="sourceLineNo">214</span>      String regionId = getRegionIdFromOp(op);<a name="line.214"></a>
+<span class="sourceLineNo">215</span>      String regionRequestMeter = regionMeterName(regionId);<a name="line.215"></a>
+<span class="sourceLineNo">216</span>      registerAndMarkMeterIfNotPresent(e, regionRequestMeter);<a name="line.216"></a>
+<span class="sourceLineNo">217</span>    }<a name="line.217"></a>
+<span class="sourceLineNo">218</span><a name="line.218"></a>
+<span class="sourceLineNo">219</span>    private void opMetricRegisterAndMark(ObserverContext&lt;RegionCoprocessorEnvironment&gt; e,<a name="line.219"></a>
+<span class="sourceLineNo">220</span>        Row op) {<a name="line.220"></a>
+<span class="sourceLineNo">221</span>      // Mark access type ["get", "put", "delete"] metric<a name="line.221"></a>
+<span class="sourceLineNo">222</span>      String opMeterName = opMeterName(op);<a name="line.222"></a>
+<span class="sourceLineNo">223</span>      registerAndMarkMeterIfNotPresent(e, opMeterName);<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>    private void opWithClientMetricRegisterAndMark(ObserverContext&lt;RegionCoprocessorEnvironment&gt; e,<a name="line.226"></a>
+<span class="sourceLineNo">227</span>        Object op) {<a name="line.227"></a>
+<span class="sourceLineNo">228</span>      // // Mark client + access type metric<a name="line.228"></a>
+<span class="sourceLineNo">229</span>      String opWithClientMeterName = opWithClientMeterName(op);<a name="line.229"></a>
+<span class="sourceLineNo">230</span>      registerAndMarkMeterIfNotPresent(e, opWithClientMeterName);<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>    // Helper function to register and mark meter if not present<a name="line.233"></a>
+<span class="sourceLineNo">234</span>    private void registerAndMarkMeterIfNotPresent(ObserverContext&lt;RegionCoprocessorEnvironment&gt; e,<a name="line.234"></a>
+<span class="sourceLineNo">235</span>        String name) {<a name="line.235"></a>
+<span class="sourceLineNo">236</span>      registerMeterIfNotPresent(e, name);<a name="line.236"></a>
+<span class="sourceLineNo">237</span>      markMeterIfPresent(name);<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>    private String opWithClientMeterName(Object op) {<a name="line.240"></a>
+<span class="sourceLineNo">241</span>      // Extract meter name containing the client IP<a name="line.241"></a>
+<span class="sourceLineNo">242</span>      String clientIP = RpcServer.getRemoteIp() != null ? RpcServer.getRemoteIp().toString() : "";<a name="line.242"></a>
+<span class="sourceLineNo">243</span>      if (clientIP.isEmpty()) {<a name="line.243"></a>
+<span class="sourceLineNo">244</span>        return "";<a name="line.244"></a>
+<span class="sourceLineNo">245</span>      }<a name="line.245"></a>
+<span class="sourceLineNo">246</span>      MetaTableOps ops = opsNameMap.get(op.getClass());<a name="line.246"></a>
+<span class="sourceLineNo">247</span>      String opWithClientMeterName = "";<a name="line.247"></a>
+<span class="sourceLineNo">248</span>      switch (ops) {<a name="line.248"></a>
+<span class="sourceLineNo">249</span>        case GET:<a name="line.249"></a>
+<span class="sourceLineNo">250</span>          opWithClientMeterName = String.format("MetaTable_client_%s_get_request", clientIP);<a name="line.250"></a>
+<span class="sourceLineNo">251</span>          break;<a name="line.251"></a>
+<span class="sourceLineNo">252</span>        case PUT:<a name="line.252"></a>
+<span class="sourceLineNo">253</span>          opWithClientMeterName = String.format("MetaTable_client_%s_put_request", clientIP);<a name="line.253"></a>
 <span class="sourceLineNo">254</span>          break;<a name="line.254"></a>
-<span class="sourceLineNo">255</span>        case PUT:<a name="line.255"></a>
-<span class="sourceLineNo">256</span>          opWithClientMeterName = String.format("MetaTable_client_%s_put_request", clientIP);<a name="line.256"></a>
+<span class="sourceLineNo">255</span>        case DELETE:<a name="line.255"></a>
+<span class="sourceLineNo">256</span>          opWithClientMeterName = String.format("MetaTable_client_%s_delete_request", clientIP);<a name="line.256"></a>
 <span class="sourceLineNo">257</span>          break;<a name="line.257"></a>
-<span class="sourceLineNo">258</span>        case DELETE:<a name="line.258"></a>
-<span class="sourceLineNo">259</span>          opWithClientMeterName = String.format("MetaTable_client_%s_delete_request", clientIP);<a name="line.259"></a>
-<span class="sourceLineNo">260</span>          break;<a name="line.260"></a>
-<span class="sourceLineNo">261</span>        default:<a name="line.261"></a>
-<span class="sourceLineNo">262</span>          break;<a name="line.262"></a>
-<span class="sourceLineNo">263</span>      }<a name="line.263"></a>
-<span class="sourceLineNo">264</span>      return opWithClientMeterName;<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>    private String opMeterName(Object op) {<a name="line.267"></a>
-<span class="sourceLineNo">268</span>      MetaTableOps ops = opsNameMap.get(op.getClass());<a name="line.268"></a>
-<span class="sourceLineNo">269</span>      String opMeterName = "";<a name="line.269"></a>
-<span class="sourceLineNo">270</span>      switch (ops) {<a name="line.270"></a>
-<span class="sourceLineNo">271</span>        case GET:<a name="line.271"></a>
-<span class="sourceLineNo">272</span>          opMeterName = "MetaTable_get_request";<a name="line.272"></a>
-<span class="sourceLineNo">273</span>          break;<a name="line.273"></a>
-<span class="sourceLineNo">274</span>        case PUT:<a name="line.274"></a>
-<span class="sourceLineNo">275</span>          opMeterName = "MetaTable_put_request";<a name="line.275"></a>
-<span class="sourceLineNo">276</span>          break;<a name="line.276"></a>
-<span class="sourceLineNo">277</span>        case DELETE:<a name="line.277"></a>
-<span class="sourceLineNo">278</span>          opMeterName = "MetaTable_delete_request";<a name="line.278"></a>
+<span class="sourceLineNo">258</span>        default:<a name="line.258"></a>
+<span class="sourceLineNo">259</span>          break;<a name="line.259"></a>
+<span class="sourceLineNo">260</span>      }<a name="line.260"></a>
+<span class="sourceLineNo">261</span>      return opWithClientMeterName;<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>    private String opMeterName(Object op) {<a name="line.264"></a>
+<span class="sourceLineNo">265</span>      // Extract meter name containing the access type<a name="line.265"></a>
+<span class="sourceLineNo">266</span>      MetaTableOps ops = opsNameMap.get(op.getClass());<a name="line.266"></a>
+<span class="sourceLineNo">267</span>      String opMeterName = "";<a name="line.267"></a>
+<span class="sourceLineNo">268</span>      switch (ops) {<a name="line.268"></a>
+<span class="sourceLineNo">269</span>        case GET:<a name="line.269"></a>
+<span class="sourceLineNo">270</span>          opMeterName = "MetaTable_get_request";<a name="line.270"></a>
+<span class="sourceLineNo">271</span>          break;<a name="line.271"></a>
+<span class="sourceLineNo">272</span>        case PUT:<a name="line.272"></a>
+<span class="sourceLineNo">273</span>          opMeterName = "MetaTable_put_request";<a name="line.273"></a>
+<span class="sourceLineNo">274</span>          break;<a name="line.274"></a>
+<span class="sourceLineNo">275</span>        case DELETE:<a name="line.275"></a>
+<span class="sourceLineNo">276</span>          opMeterName = "MetaTable_delete_request";<a name="line.276"></a>
+<span class="sourceLineNo">277</span>          break;<a name="line.277"></a>
+<span class="sourceLineNo">278</span>        default:<a name="line.278"></a>
 <span class="sourceLineNo">279</span>          break;<a name="line.279"></a>
-<span class="sourceLineNo">280</span>        default:<a name="line.280"></a>
-<span class="sourceLineNo">281</span>          break;<a name="line.281"></a>
-<span class="sourceLineNo">282</span>      }<a name="line.282"></a>
-<span class="sourceLineNo">283</span>      return opMeterName;<a name="line.283"></a>
-<span class="sourceLineNo">284</span>    }<a name="line.284"></a>
-<span class="sourceLineNo">285</span><a name="line.285"></a>
-<span class="sourceLineNo">286</span>    private String tableMeterName(String tableName) {<a name="line.286"></a>
-<span class="sourceLineNo">287</span>      return String.format("MetaTable_table_%s_request", tableName);<a name="line.287"></a>
-<span class="sourceLineNo">288</span>    }<a name="line.288"></a>
-<span class="sourceLineNo">289</span><a name="line.289"></a>
-<span class="sourceLineNo">290</span>    private String clientRequestMeterName(String clientIP) {<a name="line.290"></a>
+<span class="sourceLineNo">280</span>      }<a name="line.280"></a>
+<span class="sourceLineNo">281</span>      return opMeterName;<a name="line.281"></a>
+<span class="sourceLineNo">282</span>    }<a name="line.282"></a>
+<span class="sourceLineNo">283</span><a name="line.283"></a>
+<span class="sourceLineNo">284</span>    private String tableMeterName(String tableName) {<a name="line.284"></a>
+<span class="sourceLineNo">285</span>      // Extract meter name containing the table name<a name="line.285"></a>
+<span class="sourceLineNo">286</span>      return String.format("MetaTable_table_%s_request", tableName);<a name="line.286"></a>
+<span class="sourceLineNo">287</span>    }<a name="line.287"></a>
+<span class="sourceLineNo">288</span><a name="line.288"></a>
+<span class="sourceLineNo">289</span>    private String clientRequestMeterName(String clientIP) {<a name="line.289"></a>
+<span class="sourceLineNo">290</span>      // Extract meter name containing the client IP<a name="line.290"></a>
 <span class="sourceLineNo">291</span>      if (clientIP.isEmpty()) {<a name="line.291"></a>
 <span class="sourceLineNo">292</span>        return "";<a name="line.292"></a>
 <span class="sourceLineNo">293</span>      }<a name="line.293"></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>    private String regionMeterName(String regionId) {<a name="line.297"></a>
-<span class="sourceLineNo">298</span>      return String.format("MetaTable_region_%s_request", regionId);<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><a name="line.301"></a>
-<span class="sourceLineNo">302</span>  @Override<a name="line.302"></a>
-<span class="sourceLineNo">303</span>  public Optional&lt;RegionObserver&gt; getRegionObserver() {<a name="line.303"></a>
-<span class="sourceLineNo">304</span>    return Optional.of(observer);<a name="line.304"></a>
-<span class="sourceLineNo">305</span>  }<a name="line.305"></a>
-<span class="sourceLineNo">306</span><a name="line.306"></a>
-<span class="sourceLineNo">307</span>  @Override<a name="line.307"></a>
-<span class="sourceLineNo">308</span>  public void start(CoprocessorEnvironment env) throws IOException {<a name="line.308"></a>
-<span class="sourceLineNo">309</span>    if (env instanceof RegionCoprocessorEnvironment<a name="line.309"></a>
-<span class="sourceLineNo">310</span>        &amp;&amp; ((RegionCoprocessorEnvironment) env).getRegionInfo().getTable() != null<a name="line.310"></a>
-<span class="sourceLineNo">311</span>        &amp;&amp; ((RegionCoprocessorEnvironment) env).getRegionInfo().getTable()<a name="line.311"></a>
-<span class="sourceLineNo">312</span>          .equals(TableName.META_TABLE_NAME)) {<a name="line.312"></a>
-<span class="sourceLineNo">313</span>      regionCoprocessorEnv = (RegionCoprocessorEnvironment) env;<a name="line.313"></a>
-<span class="sourceLineNo">314</span>      observer = new ExampleRegionObserverMeta();<a name="line.314"></a>
-<span class="sourceLineNo">315</span>      requestsMap = new ConcurrentHashMap&lt;&gt;();<a name="line.315"></a>
-<span class="sourceLineNo">316</span>      clientMetricsLossyCounting = new LossyCounting();<a name="line.316"></a>
-<span class="sourceLineNo">317</span>      // only be active mode when this region holds meta table.<a name="line.317"></a>
-<span class="sourceLineNo">318</span>      active = true;<a name="line.318"></a>
-<span class="sourceLineNo">319</span>    } else {<a name="line.319"></a>
-<span class="sourceLineNo">320</span>      observer = new ExampleRegionObserverMeta();<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>  @Override<a name="line.324"></a>
-<span class="sourceLineNo">325</span>  public void stop(CoprocessorEnvironment env) throws IOException {<a name="line.325"></a>
-<span class="sourceLineNo">326</span>    // since meta region can move around, clear stale metrics when stop.<a name="line.326"></a>
-<span class="sourceLineNo">327</span>    if (requestsMap != null) {<a name="line.327"></a>
+<span class="sourceLineNo">298</span>      // Extract meter name containing the region ID<a name="line.298"></a>
+<span class="sourceLineNo">299</span>      return String.format("MetaTable_region_%s_request", regionId);<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>  @Override<a name="line.303"></a>
+<span class="sourceLineNo">304</span>  public Optional&lt;RegionObserver&gt; getRegionObserver() {<a name="line.304"></a>
+<span class="sourceLineNo">305</span>    return Optional.of(observer);<a name="line.305"></a>
+<span class="sourceLineNo">306</span>  }<a name="line.306"></a>
+<span class="sourceLineNo">307</span><a name="line.307"></a>
+<span class="sourceLineNo">308</span>  @Override<a name="line.308"></a>
+<span class="sourceLineNo">309</span>  public void start(CoprocessorEnvironment env) throws IOException {<a name="line.309"></a>
+<span class="sourceLineNo">310</span>    observer = new ExampleRegionObserverMeta();<a name="line.310"></a>
+<span class="sourceLineNo">311</span>    if (env instanceof RegionCoprocessorEnvironment<a name="line.311"></a>
+<span class="sourceLineNo">312</span>        &amp;&amp; ((RegionCoprocessorEnvironment) env).getRegionInfo().getTable() != null<a name="line.312"></a>
+<span class="sourceLineNo">313</span>        &amp;&amp; ((RegionCoprocessorEnvironment) env).getRegionInfo().getTable()<a name="line.313"></a>
+<span class="sourceLineNo">314</span>          .equals(TableName.META_TABLE_NAME)) {<a name="line.314"></a>
+<span class="sourceLineNo">315</span>      regionCoprocessorEnv = (RegionCoprocessorEnvironment) env;<a name="line.315"></a>
+<span class="sourceLineNo">316</span>      requestsMap = new ConcurrentHashMap&lt;&gt;();<a name="line.316"></a>
+<span class="sourceLineNo">317</span>      clientMetricsLossyCounting = new LossyCounting();<a name="line.317"></a>
+<span class="sourceLineNo">318</span>      // only be active mode when this region holds meta table.<a name="line.318"></a>
+<span class="sourceLineNo">319</span>      active = true;<a name="line.319"></a>
+<span class="sourceLineNo">320</span>    }<a name="line.320"></a>
+<span class="sourceLineNo">321</span>  }<a name="line.321"></a>
+<span class="sourceLineNo">322</span><a name="line.322"></a>
+<span class="sourceLineNo">323</span>  @Override<a name="line.323"></a>
+<span class="sourceLineNo">324</span>  public void stop(CoprocessorEnvironment env) throws IOException {<a name="line.324"></a>
+<span class="sourceLineNo">325</span>    // since meta region can move around, clear stale metrics when stop.<a name="line.325"></a>
+<span class="sourceLineNo">326</span>    if (requestsMap != null) {<a name="line.326"></a>
+<span class="sourceLineNo">327</span>      MetricRegistry registry = regionCoprocessorEnv.getMetricRegistryForRegionServer();<a name="line.327"></a>
 <span class="sourceLineNo">328</span>      for (String meterName : requestsMap.keySet()) {<a name="line.328"></a>
-<span class="sourceLineNo">329</span>        MetricRegistry registry = regionCoprocessorEnv.getMetricRegistryForRegionServer();<a name="line.329"></a>
-<span class="sourceLineNo">330</span>        registry.remove(meterName);<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><a name="line.334"></a>
-<span class="sourceLineNo">335</span>}<a name="line.335"></a>
+<span class="sourceLineNo">329</span>        registry.remove(meterName);<a name="line.329"></a>
+<span class="sourceLineNo">330</span>      }<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>
 
 
 
index bd3c957..2e36f92 100644 (file)
 <span class="sourceLineNo">075</span>    @Override<a name="line.75"></a>
 <span class="sourceLineNo">076</span>    public void preGetOp(ObserverContext&lt;RegionCoprocessorEnvironment&gt; e, Get get,<a name="line.76"></a>
 <span class="sourceLineNo">077</span>        List&lt;Cell&gt; results) throws IOException {<a name="line.77"></a>
-<span class="sourceLineNo">078</span>      if (!active || !isMetaTableOp(e)) {<a name="line.78"></a>
-<span class="sourceLineNo">079</span>        return;<a name="line.79"></a>
-<span class="sourceLineNo">080</span>      }<a name="line.80"></a>
-<span class="sourceLineNo">081</span>      tableMetricRegisterAndMark(e, get);<a name="line.81"></a>
-<span class="sourceLineNo">082</span>      clientMetricRegisterAndMark(e);<a name="line.82"></a>
-<span class="sourceLineNo">083</span>      regionMetricRegisterAndMark(e, get);<a name="line.83"></a>
-<span class="sourceLineNo">084</span>      opMetricRegisterAndMark(e, get);<a name="line.84"></a>
-<span class="sourceLineNo">085</span>      opWithClientMetricRegisterAndMark(e, get);<a name="line.85"></a>
-<span class="sourceLineNo">086</span>    }<a name="line.86"></a>
-<span class="sourceLineNo">087</span><a name="line.87"></a>
-<span class="sourceLineNo">088</span>    @Override<a name="line.88"></a>
-<span class="sourceLineNo">089</span>    public void prePut(ObserverContext&lt;RegionCoprocessorEnvironment&gt; e, Put put, WALEdit edit,<a name="line.89"></a>
-<span class="sourceLineNo">090</span>        Durability durability) throws IOException {<a name="line.90"></a>
-<span class="sourceLineNo">091</span>      if (!active || !isMetaTableOp(e)) {<a name="line.91"></a>
-<span class="sourceLineNo">092</span>        return;<a name="line.92"></a>
-<span class="sourceLineNo">093</span>      }<a name="line.93"></a>
-<span class="sourceLineNo">094</span>      tableMetricRegisterAndMark(e, put);<a name="line.94"></a>
-<span class="sourceLineNo">095</span>      clientMetricRegisterAndMark(e);<a name="line.95"></a>
-<span class="sourceLineNo">096</span>      regionMetricRegisterAndMark(e, put);<a name="line.96"></a>
-<span class="sourceLineNo">097</span>      opMetricRegisterAndMark(e, put);<a name="line.97"></a>
-<span class="sourceLineNo">098</span>      opWithClientMetricRegisterAndMark(e, put);<a name="line.98"></a>
-<span class="sourceLineNo">099</span>    }<a name="line.99"></a>
-<span class="sourceLineNo">100</span><a name="line.100"></a>
-<span class="sourceLineNo">101</span>    @Override<a name="line.101"></a>
-<span class="sourceLineNo">102</span>    public void preDelete(ObserverContext&lt;RegionCoprocessorEnvironment&gt; e, Delete delete,<a name="line.102"></a>
-<span class="sourceLineNo">103</span>        WALEdit edit, Durability durability) throws IOException {<a name="line.103"></a>
-<span class="sourceLineNo">104</span>      if (!active || !isMetaTableOp(e)) {<a name="line.104"></a>
-<span class="sourceLineNo">105</span>        return;<a name="line.105"></a>
-<span class="sourceLineNo">106</span>      }<a name="line.106"></a>
-<span class="sourceLineNo">107</span>      tableMetricRegisterAndMark(e, delete);<a name="line.107"></a>
-<span class="sourceLineNo">108</span>      clientMetricRegisterAndMark(e);<a name="line.108"></a>
-<span class="sourceLineNo">109</span>      regionMetricRegisterAndMark(e, delete);<a name="line.109"></a>
-<span class="sourceLineNo">110</span>      opMetricRegisterAndMark(e, delete);<a name="line.110"></a>
-<span class="sourceLineNo">111</span>      opWithClientMetricRegisterAndMark(e, delete);<a name="line.111"></a>
-<span class="sourceLineNo">112</span>    }<a name="line.112"></a>
-<span class="sourceLineNo">113</span><a name="line.113"></a>
-<span class="sourceLineNo">114</span>    private void markMeterIfPresent(String requestMeter) {<a name="line.114"></a>
-<span class="sourceLineNo">115</span>      if (requestMeter.isEmpty()) {<a name="line.115"></a>
-<span class="sourceLineNo">116</span>        return;<a name="line.116"></a>
-<span class="sourceLineNo">117</span>      }<a name="line.117"></a>
-<span class="sourceLineNo">118</span>      Metric metric =<a name="line.118"></a>
-<span class="sourceLineNo">119</span>          requestsMap.get(requestMeter).isPresent() ? requestsMap.get(requestMeter).get() : null;<a name="line.119"></a>
-<span class="sourceLineNo">120</span>      if (metric != null) {<a name="line.120"></a>
-<span class="sourceLineNo">121</span>        ((Meter) metric).mark();<a name="line.121"></a>
-<span class="sourceLineNo">122</span>      }<a name="line.122"></a>
-<span class="sourceLineNo">123</span>    }<a name="line.123"></a>
-<span class="sourceLineNo">124</span><a name="line.124"></a>
-<span class="sourceLineNo">125</span>    private void registerMeterIfNotPresent(ObserverContext&lt;RegionCoprocessorEnvironment&gt; e,<a name="line.125"></a>
-<span class="sourceLineNo">126</span>        String requestMeter) {<a name="line.126"></a>
-<span class="sourceLineNo">127</span>      if (requestMeter.isEmpty()) {<a name="line.127"></a>
-<span class="sourceLineNo">128</span>        return;<a name="line.128"></a>
-<span class="sourceLineNo">129</span>      }<a name="line.129"></a>
-<span class="sourceLineNo">130</span>      if (!requestsMap.containsKey(requestMeter)) {<a name="line.130"></a>
-<span class="sourceLineNo">131</span>        MetricRegistry registry = regionCoprocessorEnv.getMetricRegistryForRegionServer();<a name="line.131"></a>
-<span class="sourceLineNo">132</span>        registry.meter(requestMeter);<a name="line.132"></a>
-<span class="sourceLineNo">133</span>        requestsMap.put(requestMeter, registry.get(requestMeter));<a name="line.133"></a>
-<span class="sourceLineNo">134</span>      }<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>     * Registers and counts lossyCount for Meters that kept by lossy counting.<a name="line.138"></a>
-<span class="sourceLineNo">139</span>     * By using lossy count to maintain meters, at most 7 / e meters will be kept  (e is error rate)<a name="line.139"></a>
-<span class="sourceLineNo">140</span>     * e.g. when e is 0.02 by default, at most 50 Clients request metrics will be kept<a name="line.140"></a>
-<span class="sourceLineNo">141</span>     *      also, all kept elements have frequency higher than e * N. (N is total count)<a name="line.141"></a>
-<span class="sourceLineNo">142</span>     * @param e Region coprocessor environment<a name="line.142"></a>
-<span class="sourceLineNo">143</span>     * @param requestMeter meter to be registered<a name="line.143"></a>
-<span class="sourceLineNo">144</span>     * @param lossyCounting lossyCounting object for one type of meters.<a name="line.144"></a>
-<span class="sourceLineNo">145</span>     */<a name="line.145"></a>
-<span class="sourceLineNo">146</span>    private void registerLossyCountingMeterIfNotPresent(<a name="line.146"></a>
-<span class="sourceLineNo">147</span>        ObserverContext&lt;RegionCoprocessorEnvironment&gt; e,<a name="line.147"></a>
-<span class="sourceLineNo">148</span>        String requestMeter, LossyCounting lossyCounting) {<a name="line.148"></a>
-<span class="sourceLineNo">149</span>      if (requestMeter.isEmpty()) {<a name="line.149"></a>
-<span class="sourceLineNo">150</span>        return;<a name="line.150"></a>
-<span class="sourceLineNo">151</span>      }<a name="line.151"></a>
-<span class="sourceLineNo">152</span>      Set&lt;String&gt; metersToBeRemoved = lossyCounting.addByOne(requestMeter);<a name="line.152"></a>
-<span class="sourceLineNo">153</span>      if(!requestsMap.containsKey(requestMeter) &amp;&amp; metersToBeRemoved.contains(requestMeter)){<a name="line.153"></a>
-<span class="sourceLineNo">154</span>        for(String meter: metersToBeRemoved) {<a name="line.154"></a>
-<span class="sourceLineNo">155</span>          //cleanup requestsMap according swept data from lossy count;<a name="line.155"></a>
-<span class="sourceLineNo">156</span>          requestsMap.remove(meter);<a name="line.156"></a>
-<span class="sourceLineNo">157</span>          MetricRegistry registry = regionCoprocessorEnv.getMetricRegistryForRegionServer();<a name="line.157"></a>
-<span class="sourceLineNo">158</span>          registry.remove(meter);<a name="line.158"></a>
-<span class="sourceLineNo">159</span>        }<a name="line.159"></a>
-<span class="sourceLineNo">160</span>        // newly added meter is swept by lossy counting cleanup. No need to put it into requestsMap.<a name="line.160"></a>
-<span class="sourceLineNo">161</span>        return;<a name="line.161"></a>
-<span class="sourceLineNo">162</span>      }<a name="line.162"></a>
-<span class="sourceLineNo">163</span><a name="line.163"></a>
-<span class="sourceLineNo">164</span>      if (!requestsMap.containsKey(requestMeter)) {<a name="line.164"></a>
-<span class="sourceLineNo">165</span>        MetricRegistry registry = regionCoprocessorEnv.getMetricRegistryForRegionServer();<a name="line.165"></a>
-<span class="sourceLineNo">166</span>        registry.meter(requestMeter);<a name="line.166"></a>
-<span class="sourceLineNo">167</span>        requestsMap.put(requestMeter, registry.get(requestMeter));<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>     * Get table name from Ops such as: get, put, delete.<a name="line.172"></a>
-<span class="sourceLineNo">173</span>     * @param op such as get, put or delete.<a name="line.173"></a>
-<span class="sourceLineNo">174</span>     */<a name="line.174"></a>
-<span class="sourceLineNo">175</span>    private String getTableNameFromOp(Row op) {<a name="line.175"></a>
-<span class="sourceLineNo">176</span>      String tableName = null;<a name="line.176"></a>
-<span class="sourceLineNo">177</span>      String tableRowKey = new String(((Row) op).getRow(), StandardCharsets.UTF_8);<a name="line.177"></a>
-<span class="sourceLineNo">178</span>      if (tableRowKey.isEmpty()) {<a name="line.178"></a>
-<span class="sourceLineNo">179</span>        return null;<a name="line.179"></a>
-<span class="sourceLineNo">180</span>      }<a name="line.180"></a>
-<span class="sourceLineNo">181</span>      tableName = tableRowKey.split(",").length &gt; 0 ? tableRowKey.split(",")[0] : null;<a name="line.181"></a>
-<span class="sourceLineNo">182</span>      return tableName;<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>    /**<a name="line.185"></a>
-<span class="sourceLineNo">186</span>     * Get regionId from Ops such as: get, put, delete.<a name="line.186"></a>
-<span class="sourceLineNo">187</span>     * @param op  such as get, put or delete.<a name="line.187"></a>
-<span class="sourceLineNo">188</span>     */<a name="line.188"></a>
-<span class="sourceLineNo">189</span>    private String getRegionIdFromOp(Row op) {<a name="line.189"></a>
-<span class="sourceLineNo">190</span>      String regionId = null;<a name="line.190"></a>
-<span class="sourceLineNo">191</span>      String tableRowKey = new String(((Row) op).getRow(), StandardCharsets.UTF_8);<a name="line.191"></a>
-<span class="sourceLineNo">192</span>      if (tableRowKey.isEmpty()) {<a name="line.192"></a>
-<span class="sourceLineNo">193</span>        return null;<a name="line.193"></a>
-<span class="sourceLineNo">194</span>      }<a name="line.194"></a>
-<span class="sourceLineNo">195</span>      regionId = tableRowKey.split(",").length &gt; 2 ? tableRowKey.split(",")[2] : null;<a name="line.195"></a>
-<span class="sourceLineNo">196</span>      return regionId;<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>    private boolean isMetaTableOp(ObserverContext&lt;RegionCoprocessorEnvironment&gt; e) {<a name="line.199"></a>
-<span class="sourceLineNo">200</span>      return TableName.META_TABLE_NAME<a name="line.200"></a>
-<span class="sourceLineNo">201</span>          .equals(e.getEnvironment().getRegionInfo().getTable());<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>    private void clientMetricRegisterAndMark(ObserverContext&lt;RegionCoprocessorEnvironment&gt; e) {<a name="line.204"></a>
-<span class="sourceLineNo">205</span>      String clientIP = RpcServer.getRemoteIp() != null ? RpcServer.getRemoteIp().toString() : "";<a name="line.205"></a>
-<span class="sourceLineNo">206</span><a name="line.206"></a>
-<span class="sourceLineNo">207</span>      String clientRequestMeter = clientRequestMeterName(clientIP);<a name="line.207"></a>
-<span class="sourceLineNo">208</span>      registerLossyCountingMeterIfNotPresent(e, clientRequestMeter, clientMetricsLossyCounting);<a name="line.208"></a>
-<span class="sourceLineNo">209</span>      markMeterIfPresent(clientRequestMeter);<a name="line.209"></a>
-<span class="sourceLineNo">210</span>    }<a name="line.210"></a>
-<span class="sourceLineNo">211</span><a name="line.211"></a>
-<span class="sourceLineNo">212</span>    private void tableMetricRegisterAndMark(ObserverContext&lt;RegionCoprocessorEnvironment&gt; e,<a name="line.212"></a>
-<span class="sourceLineNo">213</span>        Row op) {<a name="line.213"></a>
-<span class="sourceLineNo">214</span>      // Mark the meta table meter whenever the coprocessor is called<a name="line.214"></a>
-<span class="sourceLineNo">215</span>      String tableName = getTableNameFromOp(op);<a name="line.215"></a>
-<span class="sourceLineNo">216</span>      String tableRequestMeter = tableMeterName(tableName);<a name="line.216"></a>
-<span class="sourceLineNo">217</span>      registerMeterIfNotPresent(e, tableRequestMeter);<a name="line.217"></a>
-<span class="sourceLineNo">218</span>      markMeterIfPresent(tableRequestMeter);<a name="line.218"></a>
-<span class="sourceLineNo">219</span>    }<a name="line.219"></a>
-<span class="sourceLineNo">220</span><a name="line.220"></a>
-<span class="sourceLineNo">221</span>    private void regionMetricRegisterAndMark(ObserverContext&lt;RegionCoprocessorEnvironment&gt; e,<a name="line.221"></a>
-<span class="sourceLineNo">222</span>        Row op) {<a name="line.222"></a>
-<span class="sourceLineNo">223</span>      // Mark the meta table meter whenever the coprocessor is called<a name="line.223"></a>
-<span class="sourceLineNo">224</span>      String regionId = getRegionIdFromOp(op);<a name="line.224"></a>
-<span class="sourceLineNo">225</span>      String regionRequestMeter = regionMeterName(regionId);<a name="line.225"></a>
-<span class="sourceLineNo">226</span>      registerMeterIfNotPresent(e, regionRequestMeter);<a name="line.226"></a>
-<span class="sourceLineNo">227</span>      markMeterIfPresent(regionRequestMeter);<a name="line.227"></a>
-<span class="sourceLineNo">228</span>    }<a name="line.228"></a>
-<span class="sourceLineNo">229</span><a name="line.229"></a>
-<span class="sourceLineNo">230</span>    private void opMetricRegisterAndMark(ObserverContext&lt;RegionCoprocessorEnvironment&gt; e,<a name="line.230"></a>
-<span class="sourceLineNo">231</span>        Row op) {<a name="line.231"></a>
-<span class="sourceLineNo">232</span>      String opMeterName = opMeterName(op);<a name="line.232"></a>
-<span class="sourceLineNo">233</span>      registerMeterIfNotPresent(e, opMeterName);<a name="line.233"></a>
-<span class="sourceLineNo">234</span>      markMeterIfPresent(opMeterName);<a name="line.234"></a>
-<span class="sourceLineNo">235</span>    }<a name="line.235"></a>
-<span class="sourceLineNo">236</span><a name="line.236"></a>
-<span class="sourceLineNo">237</span>    private void opWithClientMetricRegisterAndMark(ObserverContext&lt;RegionCoprocessorEnvironment&gt; e,<a name="line.237"></a>
-<span class="sourceLineNo">238</span>        Object op) {<a name="line.238"></a>
-<span class="sourceLineNo">239</span>      String opWithClientMeterName = opWithClientMeterName(op);<a name="line.239"></a>
-<span class="sourceLineNo">240</span>      registerMeterIfNotPresent(e, opWithClientMeterName);<a name="line.240"></a>
-<span class="sourceLineNo">241</span>      markMeterIfPresent(opWithClientMeterName);<a name="line.241"></a>
-<span class="sourceLineNo">242</span>    }<a name="line.242"></a>
-<span class="sourceLineNo">243</span><a name="line.243"></a>
-<span class="sourceLineNo">244</span>    private String opWithClientMeterName(Object op) {<a name="line.244"></a>
-<span class="sourceLineNo">245</span>      String clientIP = RpcServer.getRemoteIp() != null ? RpcServer.getRemoteIp().toString() : "";<a name="line.245"></a>
-<span class="sourceLineNo">246</span>      if (clientIP.isEmpty()) {<a name="line.246"></a>
-<span class="sourceLineNo">247</span>        return "";<a name="line.247"></a>
-<span class="sourceLineNo">248</span>      }<a name="line.248"></a>
-<span class="sourceLineNo">249</span>      MetaTableOps ops = opsNameMap.get(op.getClass());<a name="line.249"></a>
-<span class="sourceLineNo">250</span>      String opWithClientMeterName = "";<a name="line.250"></a>
-<span class="sourceLineNo">251</span>      switch (ops) {<a name="line.251"></a>
-<span class="sourceLineNo">252</span>        case GET:<a name="line.252"></a>
-<span class="sourceLineNo">253</span>          opWithClientMeterName = String.format("MetaTable_client_%s_get_request", clientIP);<a name="line.253"></a>
+<span class="sourceLineNo">078</span>      registerAndMarkMetrics(e, get);<a name="line.78"></a>
+<span class="sourceLineNo">079</span>    }<a name="line.79"></a>
+<span class="sourceLineNo">080</span><a name="line.80"></a>
+<span class="sourceLineNo">081</span>    @Override<a name="line.81"></a>
+<span class="sourceLineNo">082</span>    public void prePut(ObserverContext&lt;RegionCoprocessorEnvironment&gt; e, Put put, WALEdit edit,<a name="line.82"></a>
+<span class="sourceLineNo">083</span>        Durability durability) throws IOException {<a name="line.83"></a>
+<span class="sourceLineNo">084</span>      registerAndMarkMetrics(e, put);<a name="line.84"></a>
+<span class="sourceLineNo">085</span>    }<a name="line.85"></a>
+<span class="sourceLineNo">086</span><a name="line.86"></a>
+<span class="sourceLineNo">087</span>    @Override<a name="line.87"></a>
+<span class="sourceLineNo">088</span>    public void preDelete(ObserverContext&lt;RegionCoprocessorEnvironment&gt; e, Delete delete,<a name="line.88"></a>
+<span class="sourceLineNo">089</span>        WALEdit edit, Durability durability) throws IOException {<a name="line.89"></a>
+<span class="sourceLineNo">090</span>      registerAndMarkMetrics(e, delete);<a name="line.90"></a>
+<span class="sourceLineNo">091</span>    }<a name="line.91"></a>
+<span class="sourceLineNo">092</span><a name="line.92"></a>
+<span class="sourceLineNo">093</span>    private void registerAndMarkMetrics(ObserverContext&lt;RegionCoprocessorEnvironment&gt; e, Row row){<a name="line.93"></a>
+<span class="sourceLineNo">094</span>      if (!active || !isMetaTableOp(e)) {<a name="line.94"></a>
+<span class="sourceLineNo">095</span>        return;<a name="line.95"></a>
+<span class="sourceLineNo">096</span>      }<a name="line.96"></a>
+<span class="sourceLineNo">097</span>      tableMetricRegisterAndMark(e, row);<a name="line.97"></a>
+<span class="sourceLineNo">098</span>      clientMetricRegisterAndMark(e);<a name="line.98"></a>
+<span class="sourceLineNo">099</span>      regionMetricRegisterAndMark(e, row);<a name="line.99"></a>
+<span class="sourceLineNo">100</span>      opMetricRegisterAndMark(e, row);<a name="line.100"></a>
+<span class="sourceLineNo">101</span>      opWithClientMetricRegisterAndMark(e, row);<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>    private void markMeterIfPresent(String requestMeter) {<a name="line.104"></a>
+<span class="sourceLineNo">105</span>      if (requestMeter.isEmpty()) {<a name="line.105"></a>
+<span class="sourceLineNo">106</span>        return;<a name="line.106"></a>
+<span class="sourceLineNo">107</span>      }<a name="line.107"></a>
+<span class="sourceLineNo">108</span><a name="line.108"></a>
+<span class="sourceLineNo">109</span>      if (requestsMap.containsKey(requestMeter) &amp;&amp; requestsMap.get(requestMeter).isPresent()) {<a name="line.109"></a>
+<span class="sourceLineNo">110</span>        Meter metric = (Meter) requestsMap.get(requestMeter).get();<a name="line.110"></a>
+<span class="sourceLineNo">111</span>        metric.mark();<a name="line.111"></a>
+<span class="sourceLineNo">112</span>      }<a name="line.112"></a>
+<span class="sourceLineNo">113</span>    }<a name="line.113"></a>
+<span class="sourceLineNo">114</span><a name="line.114"></a>
+<span class="sourceLineNo">115</span>    private void registerMeterIfNotPresent(ObserverContext&lt;RegionCoprocessorEnvironment&gt; e,<a name="line.115"></a>
+<span class="sourceLineNo">116</span>        String requestMeter) {<a name="line.116"></a>
+<span class="sourceLineNo">117</span>      if (requestMeter.isEmpty()) {<a name="line.117"></a>
+<span class="sourceLineNo">118</span>        return;<a name="line.118"></a>
+<span class="sourceLineNo">119</span>      }<a name="line.119"></a>
+<span class="sourceLineNo">120</span>      if (!requestsMap.containsKey(requestMeter)) {<a name="line.120"></a>
+<span class="sourceLineNo">121</span>        MetricRegistry registry = regionCoprocessorEnv.getMetricRegistryForRegionServer();<a name="line.121"></a>
+<span class="sourceLineNo">122</span>        registry.meter(requestMeter);<a name="line.122"></a>
+<span class="sourceLineNo">123</span>        requestsMap.put(requestMeter, registry.get(requestMeter));<a name="line.123"></a>
+<span class="sourceLineNo">124</span>      }<a name="line.124"></a>
+<span class="sourceLineNo">125</span>    }<a name="line.125"></a>
+<span class="sourceLineNo">126</span><a name="line.126"></a>
+<span class="sourceLineNo">127</span>    /**<a name="line.127"></a>
+<span class="sourceLineNo">128</span>     * Registers and counts lossyCount for Meters that kept by lossy counting.<a name="line.128"></a>
+<span class="sourceLineNo">129</span>     * By using lossy count to maintain meters, at most 7 / e meters will be kept  (e is error rate)<a name="line.129"></a>
+<span class="sourceLineNo">130</span>     * e.g. when e is 0.02 by default, at most 350 Clients request metrics will be kept<a name="line.130"></a>
+<span class="sourceLineNo">131</span>     *      also, all kept elements have frequency higher than e * N. (N is total count)<a name="line.131"></a>
+<span class="sourceLineNo">132</span>     * @param e Region coprocessor environment<a name="line.132"></a>
+<span class="sourceLineNo">133</span>     * @param requestMeter meter to be registered<a name="line.133"></a>
+<span class="sourceLineNo">134</span>     * @param lossyCounting lossyCounting object for one type of meters.<a name="line.134"></a>
+<span class="sourceLineNo">135</span>     */<a name="line.135"></a>
+<span class="sourceLineNo">136</span>    private void registerLossyCountingMeterIfNotPresent(<a name="line.136"></a>
+<span class="sourceLineNo">137</span>        ObserverContext&lt;RegionCoprocessorEnvironment&gt; e,<a name="line.137"></a>
+<span class="sourceLineNo">138</span>        String requestMeter, LossyCounting lossyCounting) {<a name="line.138"></a>
+<span class="sourceLineNo">139</span>      if (requestMeter.isEmpty()) {<a name="line.139"></a>
+<span class="sourceLineNo">140</span>        return;<a name="line.140"></a>
+<span class="sourceLineNo">141</span>      }<a name="line.141"></a>
+<span class="sourceLineNo">142</span>      Set&lt;String&gt; metersToBeRemoved = lossyCounting.addByOne(requestMeter);<a name="line.142"></a>
+<span class="sourceLineNo">143</span>      if(!requestsMap.containsKey(requestMeter) &amp;&amp; metersToBeRemoved.contains(requestMeter)){<a name="line.143"></a>
+<span class="sourceLineNo">144</span>        for(String meter: metersToBeRemoved) {<a name="line.144"></a>
+<span class="sourceLineNo">145</span>          //cleanup requestsMap according swept data from lossy count;<a name="line.145"></a>
+<span class="sourceLineNo">146</span>          requestsMap.remove(meter);<a name="line.146"></a>
+<span class="sourceLineNo">147</span>          MetricRegistry registry = regionCoprocessorEnv.getMetricRegistryForRegionServer();<a name="line.147"></a>
+<span class="sourceLineNo">148</span>          registry.remove(meter);<a name="line.148"></a>
+<span class="sourceLineNo">149</span>        }<a name="line.149"></a>
+<span class="sourceLineNo">150</span>        // newly added meter is swept by lossy counting cleanup. No need to put it into requestsMap.<a name="line.150"></a>
+<span class="sourceLineNo">151</span>        return;<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>      if (!requestsMap.containsKey(requestMeter)) {<a name="line.154"></a>
+<span class="sourceLineNo">155</span>        MetricRegistry registry = regionCoprocessorEnv.getMetricRegistryForRegionServer();<a name="line.155"></a>
+<span class="sourceLineNo">156</span>        registry.meter(requestMeter);<a name="line.156"></a>
+<span class="sourceLineNo">157</span>        requestsMap.put(requestMeter, registry.get(requestMeter));<a name="line.157"></a>
+<span class="sourceLineNo">158</span>      }<a name="line.158"></a>
+<span class="sourceLineNo">159</span>    }<a name="line.159"></a>
+<span class="sourceLineNo">160</span><a name="line.160"></a>
+<span class="sourceLineNo">161</span>    /**<a name="line.161"></a>
+<span class="sourceLineNo">162</span>     * Get table name from Ops such as: get, put, delete.<a name="line.162"></a>
+<span class="sourceLineNo">163</span>     * @param op such as get, put or delete.<a name="line.163"></a>
+<span class="sourceLineNo">164</span>     */<a name="line.164"></a>
+<span class="sourceLineNo">165</span>    private String getTableNameFromOp(Row op) {<a name="line.165"></a>
+<span class="sourceLineNo">166</span>      String tableName = null;<a name="line.166"></a>
+<span class="sourceLineNo">167</span>      String tableRowKey = new String(((Row) op).getRow(), StandardCharsets.UTF_8);<a name="line.167"></a>
+<span class="sourceLineNo">168</span>      if (tableRowKey.isEmpty()) {<a name="line.168"></a>
+<span class="sourceLineNo">169</span>        return null;<a name="line.169"></a>
+<span class="sourceLineNo">170</span>      }<a name="line.170"></a>
+<span class="sourceLineNo">171</span>      tableName = tableRowKey.split(",").length &gt; 0 ? tableRowKey.split(",")[0] : null;<a name="line.171"></a>
+<span class="sourceLineNo">172</span>      return tableName;<a name="line.172"></a>
+<span class="sourceLineNo">173</span>    }<a name="line.173"></a>
+<span class="sourceLineNo">174</span><a name="line.174"></a>
+<span class="sourceLineNo">175</span>    /**<a name="line.175"></a>
+<span class="sourceLineNo">176</span>     * Get regionId from Ops such as: get, put, delete.<a name="line.176"></a>
+<span class="sourceLineNo">177</span>     * @param op  such as get, put or delete.<a name="line.177"></a>
+<span class="sourceLineNo">178</span>     */<a name="line.178"></a>
+<span class="sourceLineNo">179</span>    private String getRegionIdFromOp(Row op) {<a name="line.179"></a>
+<span class="sourceLineNo">180</span>      String regionId = null;<a name="line.180"></a>
+<span class="sourceLineNo">181</span>      String tableRowKey = new String(((Row) op).getRow(), StandardCharsets.UTF_8);<a name="line.181"></a>
+<span class="sourceLineNo">182</span>      if (tableRowKey.isEmpty()) {<a name="line.182"></a>
+<span class="sourceLineNo">183</span>        return null;<a name="line.183"></a>
+<span class="sourceLineNo">184</span>      }<a name="line.184"></a>
+<span class="sourceLineNo">185</span>      regionId = tableRowKey.split(",").length &gt; 2 ? tableRowKey.split(",")[2] : null;<a name="line.185"></a>
+<span class="sourceLineNo">186</span>      return regionId;<a name="line.186"></a>
+<span class="sourceLineNo">187</span>    }<a name="line.187"></a>
+<span class="sourceLineNo">188</span><a name="line.188"></a>
+<span class="sourceLineNo">189</span>    private boolean isMetaTableOp(ObserverContext&lt;RegionCoprocessorEnvironment&gt; e) {<a name="line.189"></a>
+<span class="sourceLineNo">190</span>      return TableName.META_TABLE_NAME<a name="line.190"></a>
+<span class="sourceLineNo">191</span>          .equals(e.getEnvironment().getRegionInfo().getTable());<a name="line.191"></a>
+<span class="sourceLineNo">192</span>    }<a name="line.192"></a>
+<span class="sourceLineNo">193</span><a name="line.193"></a>
+<span class="sourceLineNo">194</span>    private void clientMetricRegisterAndMark(ObserverContext&lt;RegionCoprocessorEnvironment&gt; e) {<a name="line.194"></a>
+<span class="sourceLineNo">195</span>      // Mark client metric<a name="line.195"></a>
+<span class="sourceLineNo">196</span>      String clientIP = RpcServer.getRemoteIp() != null ? RpcServer.getRemoteIp().toString() : "";<a name="line.196"></a>
+<span class="sourceLineNo">197</span><a name="line.197"></a>
+<span class="sourceLineNo">198</span>      String clientRequestMeter = clientRequestMeterName(clientIP);<a name="line.198"></a>
+<span class="sourceLineNo">199</span>      registerLossyCountingMeterIfNotPresent(e, clientRequestMeter, clientMetricsLossyCounting);<a name="line.199"></a>
+<span class="sourceLineNo">200</span>      markMeterIfPresent(clientRequestMeter);<a name="line.200"></a>
+<span class="sourceLineNo">201</span>    }<a name="line.201"></a>
+<span class="sourceLineNo">202</span><a name="line.202"></a>
+<span class="sourceLineNo">203</span>    private void tableMetricRegisterAndMark(ObserverContext&lt;RegionCoprocessorEnvironment&gt; e,<a name="line.203"></a>
+<span class="sourceLineNo">204</span>        Row op) {<a name="line.204"></a>
+<span class="sourceLineNo">205</span>      // Mark table metric<a name="line.205"></a>
+<span class="sourceLineNo">206</span>      String tableName = getTableNameFromOp(op);<a name="line.206"></a>
+<span class="sourceLineNo">207</span>      String tableRequestMeter = tableMeterName(tableName);<a name="line.207"></a>
+<span class="sourceLineNo">208</span>      registerAndMarkMeterIfNotPresent(e, tableRequestMeter);<a name="line.208"></a>
+<span class="sourceLineNo">209</span>    }<a name="line.209"></a>
+<span class="sourceLineNo">210</span><a name="line.210"></a>
+<span class="sourceLineNo">211</span>    private void regionMetricRegisterAndMark(ObserverContext&lt;RegionCoprocessorEnvironment&gt; e,<a name="line.211"></a>
+<span class="sourceLineNo">212</span>        Row op) {<a name="line.212"></a>
+<span class="sourceLineNo">213</span>      // Mark region metric<a name="line.213"></a>
+<span class="sourceLineNo">214</span>      String regionId = getRegionIdFromOp(op);<a name="line.214"></a>
+<span class="sourceLineNo">215</span>      String regionRequestMeter = regionMeterName(regionId);<a name="line.215"></a>
+<span class="sourceLineNo">216</span>      registerAndMarkMeterIfNotPresent(e, regionRequestMeter);<a name="line.216"></a>
+<span class="sourceLineNo">217</span>    }<a name="line.217"></a>
+<span class="sourceLineNo">218</span><a name="line.218"></a>
+<span class="sourceLineNo">219</span>    private void opMetricRegisterAndMark(ObserverContext&lt;RegionCoprocessorEnvironment&gt; e,<a name="line.219"></a>
+<span class="sourceLineNo">220</span>        Row op) {<a name="line.220"></a>
+<span class="sourceLineNo">221</span>      // Mark access type ["get", "put", "delete"] metric<a name="line.221"></a>
+<span class="sourceLineNo">222</span>      String opMeterName = opMeterName(op);<a name="line.222"></a>
+<span class="sourceLineNo">223</span>      registerAndMarkMeterIfNotPresent(e, opMeterName);<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>    private void opWithClientMetricRegisterAndMark(ObserverContext&lt;RegionCoprocessorEnvironment&gt; e,<a name="line.226"></a>
+<span class="sourceLineNo">227</span>        Object op) {<a name="line.227"></a>
+<span class="sourceLineNo">228</span>      // // Mark client + access type metric<a name="line.228"></a>
+<span class="sourceLineNo">229</span>      String opWithClientMeterName = opWithClientMeterName(op);<a name="line.229"></a>
+<span class="sourceLineNo">230</span>      registerAndMarkMeterIfNotPresent(e, opWithClientMeterName);<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>    // Helper function to register and mark meter if not present<a name="line.233"></a>
+<span class="sourceLineNo">234</span>    private void registerAndMarkMeterIfNotPresent(ObserverContext&lt;RegionCoprocessorEnvironment&gt; e,<a name="line.234"></a>
+<span class="sourceLineNo">235</span>        String name) {<a name="line.235"></a>
+<span class="sourceLineNo">236</span>      registerMeterIfNotPresent(e, name);<a name="line.236"></a>
+<span class="sourceLineNo">237</span>      markMeterIfPresent(name);<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>    private String opWithClientMeterName(Object op) {<a name="line.240"></a>
+<span class="sourceLineNo">241</span>      // Extract meter name containing the client IP<a name="line.241"></a>
+<span class="sourceLineNo">242</span>      String clientIP = RpcServer.getRemoteIp() != null ? RpcServer.getRemoteIp().toString() : "";<a name="line.242"></a>
+<span class="sourceLineNo">243</span>      if (clientIP.isEmpty()) {<a name="line.243"></a>
+<span class="sourceLineNo">244</span>        return "";<a name="line.244"></a>
+<span class="sourceLineNo">245</span>      }<a name="line.245"></a>
+<span class="sourceLineNo">246</span>      MetaTableOps ops = opsNameMap.get(op.getClass());<a name="line.246"></a>
+<span class="sourceLineNo">247</span>      String opWithClientMeterName = "";<a name="line.247"></a>
+<span class="sourceLineNo">248</span>      switch (ops) {<a name="line.248"></a>
+<span class="sourceLineNo">249</span>        case GET:<a name="line.249"></a>
+<span class="sourceLineNo">250</span>          opWithClientMeterName = String.format("MetaTable_client_%s_get_request", clientIP);<a name="line.250"></a>
+<span class="sourceLineNo">251</span>          break;<a name="line.251"></a>
+<span class="sourceLineNo">252</span>        case PUT:<a name="line.252"></a>
+<span class="sourceLineNo">253</span>          opWithClientMeterName = String.format("MetaTable_client_%s_put_request", clientIP);<a name="line.253"></a>
 <span class="sourceLineNo">254</span>          break;<a name="line.254"></a>
-<span class="sourceLineNo">255</span>        case PUT:<a name="line.255"></a>
-<span class="sourceLineNo">256</span>          opWithClientMeterName = String.format("MetaTable_client_%s_put_request", clientIP);<a name="line.256"></a>
+<span class="sourceLineNo">255</span>        case DELETE:<a name="line.255"></a>
+<span class="sourceLineNo">256</span>          opWithClientMeterName = String.format("MetaTable_client_%s_delete_request", clientIP);<a name="line.256"></a>
 <span class="sourceLineNo">257</span>          break;<a name="line.257"></a>
-<span class="sourceLineNo">258</span>        case DELETE:<a name="line.258"></a>
-<span class="sourceLineNo">259</span>          opWithClientMeterName = String.format("MetaTable_client_%s_delete_request", clientIP);<a name="line.259"></a>
-<span class="sourceLineNo">260</span>          break;<a name="line.260"></a>
-<span class="sourceLineNo">261</span>        default:<a name="line.261"></a>
-<span class="sourceLineNo">262</span>          break;<a name="line.262"></a>
-<span class="sourceLineNo">263</span>      }<a name="line.263"></a>
-<span class="sourceLineNo">264</span>      return opWithClientMeterName;<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>    private String opMeterName(Object op) {<a name="line.267"></a>
-<span class="sourceLineNo">268</span>      MetaTableOps ops = opsNameMap.get(op.getClass());<a name="line.268"></a>
-<span class="sourceLineNo">269</span>      String opMeterName = "";<a name="line.269"></a>
-<span class="sourceLineNo">270</span>      switch (ops) {<a name="line.270"></a>
-<span class="sourceLineNo">271</span>        case GET:<a name="line.271"></a>
-<span class="sourceLineNo">272</span>          opMeterName = "MetaTable_get_request";<a name="line.272"></a>
-<span class="sourceLineNo">273</span>          break;<a name="line.273"></a>
-<span class="sourceLineNo">274</span>        case PUT:<a name="line.274"></a>
-<span class="sourceLineNo">275</span>          opMeterName = "MetaTable_put_request";<a name="line.275"></a>
-<span class="sourceLineNo">276</span>          break;<a name="line.276"></a>
-<span class="sourceLineNo">277</span>        case DELETE:<a name="line.277"></a>
-<span class="sourceLineNo">278</span>          opMeterName = "MetaTable_delete_request";<a name="line.278"></a>
+<span class="sourceLineNo">258</span>        default:<a name="line.258"></a>
+<span class="sourceLineNo">259</span>          break;<a name="line.259"></a>
+<span class="sourceLineNo">260</span>      }<a name="line.260"></a>
+<span class="sourceLineNo">261</span>      return opWithClientMeterName;<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>    private String opMeterName(Object op) {<a name="line.264"></a>
+<span class="sourceLineNo">265</span>      // Extract meter name containing the access type<a name="line.265"></a>
+<span class="sourceLineNo">266</span>      MetaTableOps ops = opsNameMap.get(op.getClass());<a name="line.266"></a>
+<span class="sourceLineNo">267</span>      String opMeterName = "";<a name="line.267"></a>
+<span class="sourceLineNo">268</span>      switch (ops) {<a name="line.268"></a>
+<span class="sourceLineNo">269</span>        case GET:<a name="line.269"></a>
+<span class="sourceLineNo">270</span>          opMeterName = "MetaTable_get_request";<a name="line.270"></a>
+<span class="sourceLineNo">271</span>          break;<a name="line.271"></a>
+<span class="sourceLineNo">272</span>        case PUT:<a name="line.272"></a>
+<span class="sourceLineNo">273</span>          opMeterName = "MetaTable_put_request";<a name="line.273"></a>
+<span class="sourceLineNo">274</span>          break;<a name="line.274"></a>
+<span class="sourceLineNo">275</span>        case DELETE:<a name="line.275"></a>
+<span class="sourceLineNo">276</span>          opMeterName = "MetaTable_delete_request";<a name="line.276"></a>
+<span class="sourceLineNo">277</span>          break;<a name="line.277"></a>
+<span class="sourceLineNo">278</span>        default:<a name="line.278"></a>
 <span class="sourceLineNo">279</span>          break;<a name="line.279"></a>
-<span class="sourceLineNo">280</span>        default:<a name="line.280"></a>
-<span class="sourceLineNo">281</span>          break;<a name="line.281"></a>
-<span class="sourceLineNo">282</span>      }<a name="line.282"></a>
-<span class="sourceLineNo">283</span>      return opMeterName;<a name="line.283"></a>
-<span class="sourceLineNo">284</span>    }<a name="line.284"></a>
-<span class="sourceLineNo">285</span><a name="line.285"></a>
-<span class="sourceLineNo">286</span>    private String tableMeterName(String tableName) {<a name="line.286"></a>
-<span class="sourceLineNo">287</span>      return String.format("MetaTable_table_%s_request", tableName);<a name="line.287"></a>
-<span class="sourceLineNo">288</span>    }<a name="line.288"></a>
-<span class="sourceLineNo">289</span><a name="line.289"></a>
-<span class="sourceLineNo">290</span>    private String clientRequestMeterName(String clientIP) {<a name="line.290"></a>
+<span class="sourceLineNo">280</span>      }<a name="line.280"></a>
+<span class="sourceLineNo">281</span>      return opMeterName;<a name="line.281"></a>
+<span class="sourceLineNo">282</span>    }<a name="line.282"></a>
+<span class="sourceLineNo">283</span><a name="line.283"></a>
+<span class="sourceLineNo">284</span>    private String tableMeterName(String tableName) {<a name="line.284"></a>
+<span class="sourceLineNo">285</span>      // Extract meter name containing the table name<a name="line.285"></a>
+<span class="sourceLineNo">286</span>      return String.format("MetaTable_table_%s_request", tableName);<a name="line.286"></a>
+<span class="sourceLineNo">287</span>    }<a name="line.287"></a>
+<span class="sourceLineNo">288</span><a name="line.288"></a>
+<span class="sourceLineNo">289</span>    private String clientRequestMeterName(String clientIP) {<a name="line.289"></a>
+<span class="sourceLineNo">290</span>      // Extract meter name containing the client IP<a name="line.290"></a>
 <span class="sourceLineNo">291</span>      if (clientIP.isEmpty()) {<a name="line.291"></a>
 <span class="sourceLineNo">292</span>        return "";<a name="line.292"></a>
 <span class="sourceLineNo">293</span>      }<a name="line.293"></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>    private String regionMeterName(String regionId) {<a name="line.297"></a>
-<span class="sourceLineNo">298</span>      return String.format("MetaTable_region_%s_request", regionId);<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><a name="line.301"></a>
-<span class="sourceLineNo">302</span>  @Override<a name="line.302"></a>
-<span class="sourceLineNo">303</span>  public Optional&lt;RegionObserver&gt; getRegionObserver() {<a name="line.303"></a>
-<span class="sourceLineNo">304</span>    return Optional.of(observer);<a name="line.304"></a>
-<span class="sourceLineNo">305</span>  }<a name="line.305"></a>
-<span class="sourceLineNo">306</span><a name="line.306"></a>
-<span class="sourceLineNo">307</span>  @Override<a name="line.307"></a>
-<span class="sourceLineNo">308</span>  public void start(CoprocessorEnvironment env) throws IOException {<a name="line.308"></a>
-<span class="sourceLineNo">309</span>    if (env instanceof RegionCoprocessorEnvironment<a name="line.309"></a>
-<span class="sourceLineNo">310</span>        &amp;&amp; ((RegionCoprocessorEnvironment) env).getRegionInfo().getTable() != null<a name="line.310"></a>
-<span class="sourceLineNo">311</span>        &amp;&amp; ((RegionCoprocessorEnvironment) env).getRegionInfo().getTable()<a name="line.311"></a>
-<span class="sourceLineNo">312</span>          .equals(TableName.META_TABLE_NAME)) {<a name="line.312"></a>
-<span class="sourceLineNo">313</span>      regionCoprocessorEnv = (RegionCoprocessorEnvironment) env;<a name="line.313"></a>
-<span class="sourceLineNo">314</span>      observer = new ExampleRegionObserverMeta();<a name="line.314"></a>
-<span class="sourceLineNo">315</span>      requestsMap = new ConcurrentHashMap&lt;&gt;();<a name="line.315"></a>
-<span class="sourceLineNo">316</span>      clientMetricsLossyCounting = new LossyCounting();<a name="line.316"></a>
-<span class="sourceLineNo">317</span>      // only be active mode when this region holds meta table.<a name="line.317"></a>
-<span class="sourceLineNo">318</span>      active = true;<a name="line.318"></a>
-<span class="sourceLineNo">319</span>    } else {<a name="line.319"></a>
-<span class="sourceLineNo">320</span>      observer = new ExampleRegionObserverMeta();<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>  @Override<a name="line.324"></a>
-<span class="sourceLineNo">325</span>  public void stop(CoprocessorEnvironment env) throws IOException {<a name="line.325"></a>
-<span class="sourceLineNo">326</span>    // since meta region can move around, clear stale metrics when stop.<a name="line.326"></a>
-<span class="sourceLineNo">327</span>    if (requestsMap != null) {<a name="line.327"></a>
+<span class="sourceLineNo">298</span>      // Extract meter name containing the region ID<a name="line.298"></a>
+<span class="sourceLineNo">299</span>      return String.format("MetaTable_region_%s_request", regionId);<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>  @Override<a name="line.303"></a>
+<span class="sourceLineNo">304</span>  public Optional&lt;RegionObserver&gt; getRegionObserver() {<a name="line.304"></a>
+<span class="sourceLineNo">305</span>    return Optional.of(observer);<a name="line.305"></a>
+<span class="sourceLineNo">306</span>  }<a name="line.306"></a>
+<span class="sourceLineNo">307</span><a name="line.307"></a>
+<span class="sourceLineNo">308</span>  @Override<a name="line.308"></a>
+<span class="sourceLineNo">309</span>  public void start(CoprocessorEnvironment env) throws IOException {<a name="line.309"></a>
+<span class="sourceLineNo">310</span>    observer = new ExampleRegionObserverMeta();<a name="line.310"></a>
+<span class="sourceLineNo">311</span>    if (env instanceof RegionCoprocessorEnvironment<a name="line.311"></a>
+<span class="sourceLineNo">312</span>        &amp;&amp; ((RegionCoprocessorEnvironment) env).getRegionInfo().getTable() != null<a name="line.312"></a>
+<span class="sourceLineNo">313</span>        &amp;&amp; ((RegionCoprocessorEnvironment) env).getRegionInfo().getTable()<a name="line.313"></a>
+<span class="sourceLineNo">314</span>          .equals(TableName.META_TABLE_NAME)) {<a name="line.314"></a>
+<span class="sourceLineNo">315</span>      regionCoprocessorEnv = (RegionCoprocessorEnvironment) env;<a name="line.315"></a>
+<span class="sourceLineNo">316</span>      requestsMap = new ConcurrentHashMap&lt;&gt;();<a name="line.316"></a>
+<span class="sourceLineNo">317</span>      clientMetricsLossyCounting = new LossyCounting();<a name="line.317"></a>
+<span class="sourceLineNo">318</span>      // only be active mode when this region holds meta table.<a name="line.318"></a>
+<span class="sourceLineNo">319</span>      active = true;<a name="line.319"></a>
+<span class="sourceLineNo">320</span>    }<a name="line.320"></a>
+<span class="sourceLineNo">321</span>  }<a name="line.321"></a>
+<span class="sourceLineNo">322</span><a name="line.322"></a>
+<span class="sourceLineNo">323</span>  @Override<a name="line.323"></a>
+<span class="sourceLineNo">324</span>  public void stop(CoprocessorEnvironment env) throws IOException {<a name="line.324"></a>
+<span class="sourceLineNo">325</span>    // since meta region can move around, clear stale metrics when stop.<a name="line.325"></a>
+<span class="sourceLineNo">326</span>    if (requestsMap != null) {<a name="line.326"></a>
+<span class="sourceLineNo">327</span>      MetricRegistry registry = regionCoprocessorEnv.getMetricRegistryForRegionServer();<a name="line.327"></a>
 <span class="sourceLineNo">328</span>      for (String meterName : requestsMap.keySet()) {<a name="line.328"></a>
-<span class="sourceLineNo">329</span>        MetricRegistry registry = regionCoprocessorEnv.getMetricRegistryForRegionServer();<a name="line.329"></a>
-<span class="sourceLineNo">330</span>        registry.remove(meterName);<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><a name="line.334"></a>
-<span class="sourceLineNo">335</span>}<a name="line.335"></a>
+<span class="sourceLineNo">329</span>        registry.remove(meterName);<a name="line.329"></a>
+<span class="sourceLineNo">330</span>      }<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>
 
 
 
index 2cea434..1de0937 100644 (file)
 <span class="sourceLineNo">024</span>import java.util.Set;<a name="line.24"></a>
 <span class="sourceLineNo">025</span>import java.util.concurrent.ConcurrentHashMap;<a name="line.25"></a>
 <span class="sourceLineNo">026</span><a name="line.26"></a>
-<span class="sourceLineNo">027</span>import org.apache.hadoop.conf.Configuration;<a name="line.27"></a>
-<span class="sourceLineNo">028</span>import org.apache.hadoop.hbase.HBaseConfiguration;<a name="line.28"></a>
-<span class="sourceLineNo">029</span>import org.apache.hadoop.hbase.HConstants;<a name="line.29"></a>
-<span class="sourceLineNo">030</span>import org.apache.yetus.audience.InterfaceAudience;<a name="line.30"></a>
-<span class="sourceLineNo">031</span>import org.slf4j.Logger;<a name="line.31"></a>
-<span class="sourceLineNo">032</span>import org.slf4j.LoggerFactory;<a name="line.32"></a>
+<span class="sourceLineNo">027</span>import org.apache.hadoop.hbase.HBaseConfiguration;<a name="line.27"></a>
+<span class="sourceLineNo">028</span>import org.apache.hadoop.hbase.HConstants;<a name="line.28"></a>
+<span class="sourceLineNo">029</span>import org.apache.yetus.audience.InterfaceAudience;<a name="line.29"></a>
+<span class="sourceLineNo">030</span>import org.slf4j.Logger;<a name="line.30"></a>
+<span class="sourceLineNo">031</span>import org.slf4j.LoggerFactory;<a name="line.31"></a>
+<span class="sourceLineNo">032</span><a name="line.32"></a>
 <span class="sourceLineNo">033</span><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>/**<a name="line.36"></a>
-<span class="sourceLineNo">037</span> * LossyCounting utility, bounded data structure that maintains approximate high frequency<a name="line.37"></a>
-<span class="sourceLineNo">038</span> * elements in data stream.<a name="line.38"></a>
-<span class="sourceLineNo">039</span> *<a name="line.39"></a>
-<span class="sourceLineNo">040</span> * Bucket size is 1 / error rate.  (Error rate is 0.02 by default)<a name="line.40"></a>
-<span class="sourceLineNo">041</span> * Lemma If element\ 1 does not appear in set, then is frequency is less than e * N<a name="line.41"></a>
-<span class="sourceLineNo">042</span> *       (N is total element counts until now.)<a name="line.42"></a>
-<span class="sourceLineNo">043</span> * Based on paper:<a name="line.43"></a>
-<span class="sourceLineNo">044</span> * http://www.vldb.org/conf/2002/S10P03.pdf<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>@InterfaceAudience.Public<a name="line.47"></a>
-<span class="sourceLineNo">048</span>public class LossyCounting {<a name="line.48"></a>
-<span class="sourceLineNo">049</span>  private static final Logger LOG = LoggerFactory.getLogger(LossyCounting.class);<a name="line.49"></a>
-<span class="sourceLineNo">050</span>  private long bucketSize;<a name="line.50"></a>
-<span class="sourceLineNo">051</span>  private long currentTerm;<a name="line.51"></a>
-<span class="sourceLineNo">052</span>  private double errorRate;<a name="line.52"></a>
-<span class="sourceLineNo">053</span>  private Map&lt;String, Integer&gt; data;<a name="line.53"></a>
-<span class="sourceLineNo">054</span>  private long totalDataCount;<a name="line.54"></a>
-<span class="sourceLineNo">055</span><a name="line.55"></a>
-<span class="sourceLineNo">056</span>  public LossyCounting(double errorRate) {<a name="line.56"></a>
-<span class="sourceLineNo">057</span>    this.errorRate = errorRate;<a name="line.57"></a>
-<span class="sourceLineNo">058</span>    if (errorRate &lt; 0.0 || errorRate &gt; 1.0) {<a name="line.58"></a>
-<span class="sourceLineNo">059</span>      throw new IllegalArgumentException(" Lossy Counting error rate should be within range [0,1]");<a name="line.59"></a>
-<span class="sourceLineNo">060</span>    }<a name="line.60"></a>
-<span class="sourceLineNo">061</span>    this.bucketSize = (long) Math.ceil(1 / errorRate);<a name="line.61"></a>
-<span class="sourceLineNo">062</span>    this.currentTerm = 1;<a name="line.62"></a>
-<span class="sourceLineNo">063</span>    this.totalDataCount = 0;<a name="line.63"></a>
-<span class="sourceLineNo">064</span>    this.errorRate = errorRate;<a name="line.64"></a>
-<span class="sourceLineNo">065</span>    this.data = new ConcurrentHashMap&lt;&gt;();<a name="line.65"></a>
-<span class="sourceLineNo">066</span>    calculateCurrentTerm();<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>  public LossyCounting() {<a name="line.69"></a>
-<span class="sourceLineNo">070</span>    Configuration conf = HBaseConfiguration.create();<a name="line.70"></a>
-<span class="sourceLineNo">071</span>    this.errorRate = conf.getDouble(HConstants.DEFAULT_LOSSY_COUNTING_ERROR_RATE, 0.02);<a name="line.71"></a>
-<span class="sourceLineNo">072</span>    this.bucketSize = (long) Math.ceil(1.0 / errorRate);<a name="line.72"></a>
-<span class="sourceLineNo">073</span>    this.currentTerm = 1;<a name="line.73"></a>
-<span class="sourceLineNo">074</span>    this.totalDataCount = 0;<a name="line.74"></a>
-<span class="sourceLineNo">075</span>    this.data = new ConcurrentHashMap&lt;&gt;();<a name="line.75"></a>
-<span class="sourceLineNo">076</span>    calculateCurrentTerm();<a name="line.76"></a>
-<span class="sourceLineNo">077</span>  }<a name="line.77"></a>
-<span class="sourceLineNo">078</span><a name="line.78"></a>
-<span class="sourceLineNo">079</span>  public Set&lt;String&gt; addByOne(String key) {<a name="line.79"></a>
-<span class="sourceLineNo">080</span>    if(data.containsKey(key)) {<a name="line.80"></a>
-<span class="sourceLineNo">081</span>      data.put(key, data.get(key) +1);<a name="line.81"></a>
-<span class="sourceLineNo">082</span>    } else {<a name="line.82"></a>
-<span class="sourceLineNo">083</span>      data.put(key, 1);<a name="line.83"></a>
-<span class="sourceLineNo">084</span>    }<a name="line.84"></a>
-<span class="sourceLineNo">085</span>    totalDataCount++;<a name="line.85"></a>
-<span class="sourceLineNo">086</span>    calculateCurrentTerm();<a name="line.86"></a>
+<span class="sourceLineNo">035</span>/**<a name="line.35"></a>
+<span class="sourceLineNo">036</span> * LossyCounting utility, bounded data structure that maintains approximate high frequency<a name="line.36"></a>
+<span class="sourceLineNo">037</span> * elements in data stream.<a name="line.37"></a>
+<span class="sourceLineNo">038</span> *<a name="line.38"></a>
+<span class="sourceLineNo">039</span> * Bucket size is 1 / error rate.  (Error rate is 0.02 by default)<a name="line.39"></a>
+<span class="sourceLineNo">040</span> * Lemma If element\ 1 does not appear in set, then is frequency is less than e * N<a name="line.40"></a>
+<span class="sourceLineNo">041</span> *       (N is total element counts until now.)<a name="line.41"></a>
+<span class="sourceLineNo">042</span> * Based on paper:<a name="line.42"></a>
+<span class="sourceLineNo">043</span> * http://www.vldb.org/conf/2002/S10P03.pdf<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>@InterfaceAudience.Public<a name="line.46"></a>
+<span class="sourceLineNo">047</span>public class LossyCounting {<a name="line.47"></a>
+<span class="sourceLineNo">048</span>  private static final Logger LOG = LoggerFactory.getLogger(LossyCounting.class);<a name="line.48"></a>
+<span class="sourceLineNo">049</span>  private long bucketSize;<a name="line.49"></a>
+<span class="sourceLineNo">050</span>  private long currentTerm;<a name="line.50"></a>
+<span class="sourceLineNo">051</span>  private double errorRate;<a name="line.51"></a>
+<span class="sourceLineNo">052</span>  private Map&lt;String, Integer&gt; data;<a name="line.52"></a>
+<span class="sourceLineNo">053</span>  private long totalDataCount;<a name="line.53"></a>
+<span class="sourceLineNo">054</span><a name="line.54"></a>
+<span class="sourceLineNo">055</span>  public LossyCounting(double errorRate) {<a name="line.55"></a>
+<span class="sourceLineNo">056</span>    this.errorRate = errorRate;<a name="line.56"></a>
+<span class="sourceLineNo">057</span>    if (errorRate &lt; 0.0 || errorRate &gt; 1.0) {<a name="line.57"></a>
+<span class="sourceLineNo">058</span>      throw new IllegalArgumentException(" Lossy Counting error rate should be within range [0,1]");<a name="line.58"></a>
+<span class="sourceLineNo">059</span>    }<a name="line.59"></a>
+<span class="sourceLineNo">060</span>    this.bucketSize = (long) Math.ceil(1 / errorRate);<a name="line.60"></a>
+<span class="sourceLineNo">061</span>    this.currentTerm = 1;<a name="line.61"></a>
+<span class="sourceLineNo">062</span>    this.totalDataCount = 0;<a name="line.62"></a>
+<span class="sourceLineNo">063</span>    this.data = new ConcurrentHashMap&lt;&gt;();<a name="line.63"></a>
+<span class="sourceLineNo">064</span>    calculateCurrentTerm();<a name="line.64"></a>
+<span class="sourceLineNo">065</span>  }<a name="line.65"></a>
+<span class="sourceLineNo">066</span><a name="line.66"></a>
+<span class="sourceLineNo">067</span>  public LossyCounting() {<a name="line.67"></a>
+<span class="sourceLineNo">068</span>    this(HBaseConfiguration.create().getDouble(HConstants.DEFAULT_LOSSY_COUNTING_ERROR_RATE, 0.02));<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>  public Set&lt;String&gt; addByOne(String key) {<a name="line.71"></a>
+<span class="sourceLineNo">072</span>    data.put(key, data.getOrDefault(key, 0) + 1);<a name="line.72"></a>
+<span class="sourceLineNo">073</span>    totalDataCount++;<a name="line.73"></a>
+<span class="sourceLineNo">074</span>    calculateCurrentTerm();<a name="line.74"></a>
+<span class="sourceLineNo">075</span>    Set&lt;String&gt; dataToBeSwept = new HashSet&lt;&gt;();<a name="line.75"></a>
+<span class="sourceLineNo">076</span>    if(totalDataCount % bucketSize == 0) {<a name="line.76"></a>
+<span class="sourceLineNo">077</span>      dataToBeSwept = sweep();<a name="line.77"></a>
+<span class="sourceLineNo">078</span>    }<a name="line.78"></a>
+<span class="sourceLineNo">079</span>    return dataToBeSwept;<a name="line.79"></a>
+<span class="sourceLineNo">080</span>  }<a name="line.80"></a>
+<span class="sourceLineNo">081</span><a name="line.81"></a>
+<span class="sourceLineNo">082</span>  /**<a name="line.82"></a>
+<span class="sourceLineNo">083</span>   * sweep low frequency data<a name="line.83"></a>
+<span class="sourceLineNo">084</span>   * @return Names of elements got swept<a name="line.84"></a>
+<span class="sourceLineNo">085</span>   */<a name="line.85"></a>
+<span class="sourceLineNo">086</span>  private Set&lt;String&gt; sweep() {<a name="line.86"></a>
 <span class="sourceLineNo">087</span>    Set&lt;String&gt; dataToBeSwept = new HashSet&lt;&gt;();<a name="line.87"></a>
-<span class="sourceLineNo">088</span>    if(totalDataCount % bucketSize == 0) {<a name="line.88"></a>
-<span class="sourceLineNo">089</span>      dataToBeSwept = sweep();<a name="line.89"></a>
-<span class="sourceLineNo">090</span>    }<a name="line.90"></a>
-<span class="sourceLineNo">091</span>    return dataToBeSwept;<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>  /**<a name="line.94"></a>
-<span class="sourceLineNo">095</span>   * sweep low frequency data<a name="line.95"></a>
-<span class="sourceLineNo">096</span>   * @return Names of elements got swept<a name="line.96"></a>
-<span class="sourceLineNo">097</span>   */<a name="line.97"></a>
-<span class="sourceLineNo">098</span>  private Set&lt;String&gt; sweep() {<a name="line.98"></a>
-<span class="sourceLineNo">099</span>    Set&lt;String&gt; dataToBeSwept = new HashSet&lt;&gt;();<a name="line.99"></a>
-<span class="sourceLineNo">100</span>    for(Map.Entry&lt;String, Integer&gt; entry : data.entrySet()) {<a name="line.100"></a>
-<span class="sourceLineNo">101</span>      if(entry.getValue() + errorRate &lt; currentTerm) {<a name="line.101"></a>
-<span class="sourceLineNo">102</span>        dataToBeSwept.add(entry.getKey());<a name="line.102"></a>
-<span class="sourceLineNo">103</span>      }<a name="line.103"></a>
-<span class="sourceLineNo">104</span>    }<a name="line.104"></a>
-<span class="sourceLineNo">105</span>    for(String key : dataToBeSwept) {<a name="line.105"></a>
-<span class="sourceLineNo">106</span>      data.remove(key);<a name="line.106"></a>
-<span class="sourceLineNo">107</span>    }<a name="line.107"></a>
-<span class="sourceLineNo">108</span>    LOG.debug(String.format("Swept %d of elements.", dataToBeSwept.size()));<a name="line.108"></a>
-<span class="sourceLineNo">109</span>    return dataToBeSwept;<a name="line.109"></a>
-<span class="sourceLineNo">110</span>  }<a name="line.110"></a>
-<span class="sourceLineNo">111</span><a name="line.111"></a>
-<span class="sourceLineNo">112</span>  /**<a name="line.112"></a>
-<span class="sourceLineNo">113</span>   * Calculate and set current term<a name="line.113"></a>
-<span class="sourceLineNo">114</span>   */<a name="line.114"></a>
-<span class="sourceLineNo">115</span>  private void calculateCurrentTerm() {<a name="line.115"></a>
-<span class="sourceLineNo">116</span>    this.currentTerm = (int) Math.ceil(1.0 * totalDataCount / bucketSize);<a name="line.116"></a>
+<span class="sourceLineNo">088</span>    for(Map.Entry&lt;String, Integer&gt; entry : data.entrySet()) {<a name="line.88"></a>
+<span class="sourceLineNo">089</span>      if(entry.getValue() + errorRate &lt; currentTerm) {<a name="line.89"></a>
+<span class="sourceLineNo">090</span>        dataToBeSwept.add(entry.getKey());<a name="line.90"></a>
+<span class="sourceLineNo">091</span>      }<a name="line.91"></a>
+<span class="sourceLineNo">092</span>    }<a name="line.92"></a>
+<span class="sourceLineNo">093</span>    for(String key : dataToBeSwept) {<a name="line.93"></a>
+<span class="sourceLineNo">094</span>      data.remove(key);<a name="line.94"></a>
+<span class="sourceLineNo">095</span>    }<a name="line.95"></a>
+<span class="sourceLineNo">096</span>    LOG.debug(String.format("Swept %d elements.", dataToBeSwept.size()));<a name="line.96"></a>
+<span class="sourceLineNo">097</span>    return dataToBeSwept;<a name="line.97"></a>
+<span class="sourceLineNo">098</span>  }<a name="line.98"></a>
+<span class="sourceLineNo">099</span><a name="line.99"></a>
+<span class="sourceLineNo">100</span>  /**<a name="line.100"></a>
+<span class="sourceLineNo">101</span>   * Calculate and set current term<a name="line.101"></a>
+<span class="sourceLineNo">102</span>   */<a name="line.102"></a>
+<span class="sourceLineNo">103</span>  private void calculateCurrentTerm() {<a name="line.103"></a>
+<span class="sourceLineNo">104</span>    this.currentTerm = (int) Math.ceil(1.0 * totalDataCount / bucketSize);<a name="line.104"></a>
+<span class="sourceLineNo">105</span>  }<a name="line.105"></a>
+<span class="sourceLineNo">106</span><a name="line.106"></a>
+<span class="sourceLineNo">107</span>  public long getBucketSize(){<a name="line.107"></a>
+<span class="sourceLineNo">108</span>    return bucketSize;<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>  public long getDataSize() {<a name="line.111"></a>
+<span class="sourceLineNo">112</span>    return data.size();<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>  public boolean contains(String key) {<a name="line.115"></a>
+<span class="sourceLineNo">116</span>    return data.containsKey(key);<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>  public long getBuketSize(){<a name="line.119"></a>
-<span class="sourceLineNo">120</span>    return bucketSize;<a name="line.120"></a>
+<span class="sourceLineNo">119</span>  public long getCurrentTerm() {<a name="line.119"></a>
+<span class="sourceLineNo">120</span>    return currentTerm;<a name="line.120"></a>
 <span class="sourceLineNo">121</span>  }<a name="line.121"></a>
-<span class="sourceLineNo">122</span><a name="line.122"></a>
-<span class="sourceLineNo">123</span>  public long getDataSize() {<a name="line.123"></a>
-<span class="sourceLineNo">124</span>    return data.size();<a name="line.124"></a>
-<span class="sourceLineNo">125</span>  }<a name="line.125"></a>
-<span class="sourceLineNo">126</span><a name="line.126"></a>
-<span class="sourceLineNo">127</span>  public boolean contains(String key) {<a name="line.127"></a>
-<span class="sourceLineNo">128</span>    return data.containsKey(key);<a name="line.128"></a>
-<span class="sourceLineNo">129</span>  }<a name="line.129"></a>
-<span class="sourceLineNo">130</span><a name="line.130"></a>
-<span class="sourceLineNo">131</span>  public long getCurrentTerm() {<a name="line.131"></a>
-<span class="sourceLineNo">132</span>    return currentTerm;<a name="line.132"></a>
-<span class="sourceLineNo">133</span>  }<a name="line.133"></a>
-<span class="sourceLineNo">134</span>}<a name="line.134"></a>
-<span class="sourceLineNo">135</span><a name="line.135"></a>
+<span class="sourceLineNo">122</span>}<a name="line.122"></a>
+<span class="sourceLineNo">123</span><a name="line.123"></a>
 
 
 
index 4d065c1..91b5c41 100644 (file)
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20190208" />
+    <meta name="Date-Revision-yyyymmdd" content="20190209" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Apache HBase Downloads</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.4-HBase.min.css" />
@@ -489,7 +489,7 @@ under the License. -->
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2019-02-08</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2019-02-09</li>
             </p>
                 </div>
 
index 9abdcec..36dca68 100644 (file)
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20190208" />
+    <meta name="Date-Revision-yyyymmdd" content="20190209" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; 
       Export Control
@@ -341,7 +341,7 @@ for more details.</p>
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2019-02-08</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2019-02-09</li>
             </p>
                 </div>
 
index 9ff8aa1..d861bdc 100644 (file)
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20190208" />
+    <meta name="Date-Revision-yyyymmdd" content="20190209" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Apache HBaseâ„¢ Home</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.4-HBase.min.css" />
@@ -421,7 +421,7 @@ Apache HBase is an open-source, distributed, versioned, non-relational database
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2019-02-08</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2019-02-09</li>
             </p>
                 </div>
 
index dd8b6f4..b7cd2c5 100644 (file)
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20190208" />
+    <meta name="Date-Revision-yyyymmdd" content="20190209" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; CI Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.4-HBase.min.css" />
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2019-02-08</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2019-02-09</li>
             </p>
                 </div>
 
index 8c66d1b..756c360 100644 (file)
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20190208" />
+    <meta name="Date-Revision-yyyymmdd" content="20190209" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Issue Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.4-HBase.min.css" />
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2019-02-08</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2019-02-09</li>
             </p>
                 </div>
 
index c0c573e..1e0bbc3 100644 (file)
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20190208" />
+    <meta name="Date-Revision-yyyymmdd" content="20190209" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Project Licenses</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.4-HBase.min.css" />
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2019-02-08</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2019-02-09</li>
             </p>
                 </div>
 
index aeac52f..73bdb23 100644 (file)
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20190208" />
+    <meta name="Date-Revision-yyyymmdd" content="20190209" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Project Mailing Lists</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.4-HBase.min.css" />
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2019-02-08</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2019-02-09</li>
             </p>
                 </div>
 
index 9936efc..f63ddf9 100644 (file)
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20190208" />
+    <meta name="Date-Revision-yyyymmdd" content="20190209" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013;  
       Apache HBase (TM) Metrics
@@ -469,7 +469,7 @@ export HBASE_REGIONSERVER_OPTS=&quot;$HBASE_JMX_OPTS -Dcom.sun.management.jmxrem
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2019-02-08</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2019-02-09</li>
             </p>
                 </div>
 
index a8aae34..d7ba1ed 100644 (file)
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20190208" />
+    <meta name="Date-Revision-yyyymmdd" content="20190209" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; 
       Old Apache HBase (TM) News
@@ -450,7 +450,7 @@ under the License. -->
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2019-02-08</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2019-02-09</li>
             </p>
                 </div>
 
index 712442e..561a445 100644 (file)
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20190208" />
+    <meta name="Date-Revision-yyyymmdd" content="20190209" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Project Plugin Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.4-HBase.min.css" />
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2019-02-08</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2019-02-09</li>
             </p>
                 </div>
 
index 72966fd..299dde4 100644 (file)
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20190208" />
+    <meta name="Date-Revision-yyyymmdd" content="20190209" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Project Plugins</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.4-HBase.min.css" />
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2019-02-08</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2019-02-09</li>
             </p>
                 </div>
 
index 4cc33ac..e9f39bc 100644 (file)
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20190208" />
+    <meta name="Date-Revision-yyyymmdd" content="20190209" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Powered By Apache HBase\99</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.4-HBase.min.css" />
@@ -779,7 +779,7 @@ under the License. -->
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2019-02-08</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2019-02-09</li>
             </p>
                 </div>
 
index 9ed3919..66100e5 100644 (file)
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20190208" />
+    <meta name="Date-Revision-yyyymmdd" content="20190209" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Project Information</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.4-HBase.min.css" />
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2019-02-08</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2019-02-09</li>
             </p>
                 </div>
 
index 4aa58b7..dd5f1d3 100644 (file)
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20190208" />
+    <meta name="Date-Revision-yyyymmdd" content="20190209" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Generated Reports</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.4-HBase.min.css" />
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2019-02-08</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2019-02-09</li>
             </p>
                 </div>
 
index 17c03a2..da18ded 100644 (file)
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20190208" />
+    <meta name="Date-Revision-yyyymmdd" content="20190209" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Project Summary</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.4-HBase.min.css" />
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2019-02-08</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2019-02-09</li>
             </p>
                 </div>
 
index 281ff2f..b5bbfc9 100644 (file)
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20190208" />
+    <meta name="Date-Revision-yyyymmdd" content="20190209" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013;  
 Running Apache HBase (TM) in pseudo-distributed mode
@@ -318,7 +318,7 @@ under the License. -->
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2019-02-08</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2019-02-09</li>
             </p>
                 </div>
 
index 2253f57..0ff7ac4 100644 (file)
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20190208" />
+    <meta name="Date-Revision-yyyymmdd" content="20190209" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; 
       Apache HBase (TM) Replication
@@ -313,7 +313,7 @@ under the License. -->
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2019-02-08</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2019-02-09</li>
             </p>
                 </div>
 
index 1b7473f..7e8bbcd 100644 (file)
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20190208" />
+    <meta name="Date-Revision-yyyymmdd" content="20190209" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Other Apache HBase (TM) Resources</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.4-HBase.min.css" />
@@ -341,7 +341,7 @@ under the License. -->
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2019-02-08</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2019-02-09</li>
             </p>
                 </div>
 
index 44ae4a5..c72ddd4 100644 (file)
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20190208" />
+    <meta name="Date-Revision-yyyymmdd" content="20190209" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Source Code Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.4-HBase.min.css" />
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2019-02-08</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2019-02-09</li>
             </p>
                 </div>
 
index 3af8409..1988d30 100644 (file)
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20190208" />
+    <meta name="Date-Revision-yyyymmdd" content="20190209" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Apache HBase\99 Sponsors</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.4-HBase.min.css" />
@@ -343,7 +343,7 @@ under the License. -->
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2019-02-08</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2019-02-09</li>
             </p>
                 </div>
 
index 679bf8f..0b484b3 100644 (file)
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20190208" />
+    <meta name="Date-Revision-yyyymmdd" content="20190209" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Supporting Projects</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.4-HBase.min.css" />
@@ -530,7 +530,7 @@ under the License. -->
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2019-02-08</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2019-02-09</li>
             </p>
                 </div>
 
index b4c62f8..8bb92a0 100644 (file)
@@ -7,7 +7,7 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <meta name="Date-Revision-yyyymmdd" content="20190208" />
+    <meta name="Date-Revision-yyyymmdd" content="20190209" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Project Team</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.4-HBase.min.css" />
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2019-02-08</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2019-02-09</li>
             </p>
                 </div>
 
index d2977d0..f979653 100644 (file)
 <span class="sourceLineNo">222</span>            jmxMetrics.stream().filter(metric -&gt; metric.matches(putWithClientMetricNameRegex))<a name="line.222"></a>
 <span class="sourceLineNo">223</span>                    .count();<a name="line.223"></a>
 <span class="sourceLineNo">224</span>    assertEquals(5L, putWithClientMetricsCount);<a name="line.224"></a>
-<span class="sourceLineNo">225</span><a name="line.225"></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><a name="line.228"></a>
-<span class="sourceLineNo">229</span>  }<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">227</span>}<a name="line.227"></a>
 
 
 
index d8500d6..f20521d 100644 (file)
@@ -47,9 +47,9 @@
 <span class="sourceLineNo">039</span>  @Test<a name="line.39"></a>
 <span class="sourceLineNo">040</span>  public void testBucketSize() {<a name="line.40"></a>
 <span class="sourceLineNo">041</span>    LossyCounting lossyCounting = new LossyCounting(0.01);<a name="line.41"></a>
-<span class="sourceLineNo">042</span>    assertEquals(100L, lossyCounting.getBuketSize());<a name="line.42"></a>
+<span class="sourceLineNo">042</span>    assertEquals(100L, lossyCounting.getBucketSize());<a name="line.42"></a>
 <span class="sourceLineNo">043</span>    LossyCounting lossyCounting2 = new LossyCounting();<a name="line.43"></a>
-<span class="sourceLineNo">044</span>    assertEquals(50L, lossyCounting2.getBuketSize());<a name="line.44"></a>
+<span class="sourceLineNo">044</span>    assertEquals(50L, lossyCounting2.getBucketSize());<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>  @Test<a name="line.47"></a>