You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by gi...@apache.org on 2017/12/02 15:17:49 UTC

[01/32] hbase-site git commit: Published site at .

Repository: hbase-site
Updated Branches:
  refs/heads/asf-site f04fd3a90 -> 29b27596b


http://git-wip-us.apache.org/repos/asf/hbase-site/blob/29b27596/testdevapidocs/src-html/org/apache/hadoop/hbase/client/TestHTableMultiplexerFlushCache.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/src-html/org/apache/hadoop/hbase/client/TestHTableMultiplexerFlushCache.html b/testdevapidocs/src-html/org/apache/hadoop/hbase/client/TestHTableMultiplexerFlushCache.html
index c46407b..e902b0e 100644
--- a/testdevapidocs/src-html/org/apache/hadoop/hbase/client/TestHTableMultiplexerFlushCache.html
+++ b/testdevapidocs/src-html/org/apache/hadoop/hbase/client/TestHTableMultiplexerFlushCache.html
@@ -164,7 +164,7 @@
 <span class="sourceLineNo">156</span>    ServerName newServer = null;<a name="line.156"></a>
 <span class="sourceLineNo">157</span>    // Find a new server to move that region to<a name="line.157"></a>
 <span class="sourceLineNo">158</span>    for (int i = 0; i &lt; SLAVES; i++) {<a name="line.158"></a>
-<span class="sourceLineNo">159</span>      HRegionServer rs = hbaseCluster.getRegionServer(0);<a name="line.159"></a>
+<span class="sourceLineNo">159</span>      HRegionServer rs = hbaseCluster.getRegionServer(i);<a name="line.159"></a>
 <span class="sourceLineNo">160</span>      if (!rs.getServerName().equals(originalServer.getServerName())) {<a name="line.160"></a>
 <span class="sourceLineNo">161</span>        newServer = rs.getServerName();<a name="line.161"></a>
 <span class="sourceLineNo">162</span>        break;<a name="line.162"></a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/29b27596/testdevapidocs/src-html/org/apache/hadoop/hbase/regionserver/TestMetricsRegionServer.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/src-html/org/apache/hadoop/hbase/regionserver/TestMetricsRegionServer.html b/testdevapidocs/src-html/org/apache/hadoop/hbase/regionserver/TestMetricsRegionServer.html
index f9e4091..b5136ab 100644
--- a/testdevapidocs/src-html/org/apache/hadoop/hbase/regionserver/TestMetricsRegionServer.html
+++ b/testdevapidocs/src-html/org/apache/hadoop/hbase/regionserver/TestMetricsRegionServer.html
@@ -58,7 +58,7 @@
 <span class="sourceLineNo">050</span>  @Before<a name="line.50"></a>
 <span class="sourceLineNo">051</span>  public void setUp() {<a name="line.51"></a>
 <span class="sourceLineNo">052</span>    wrapper = new MetricsRegionServerWrapperStub();<a name="line.52"></a>
-<span class="sourceLineNo">053</span>    rsm = new MetricsRegionServer(wrapper);<a name="line.53"></a>
+<span class="sourceLineNo">053</span>    rsm = new MetricsRegionServer(wrapper, new Configuration(false));<a name="line.53"></a>
 <span class="sourceLineNo">054</span>    serverSource = rsm.getMetricsSource();<a name="line.54"></a>
 <span class="sourceLineNo">055</span>  }<a name="line.55"></a>
 <span class="sourceLineNo">056</span><a name="line.56"></a>
@@ -127,29 +127,29 @@
 <span class="sourceLineNo">119</span>  @Test<a name="line.119"></a>
 <span class="sourceLineNo">120</span>  public void testSlowCount() {<a name="line.120"></a>
 <span class="sourceLineNo">121</span>    for (int i=0; i &lt; 12; i ++) {<a name="line.121"></a>
-<span class="sourceLineNo">122</span>      rsm.updateAppend(12);<a name="line.122"></a>
-<span class="sourceLineNo">123</span>      rsm.updateAppend(1002);<a name="line.123"></a>
+<span class="sourceLineNo">122</span>      rsm.updateAppend(null, 12);<a name="line.122"></a>
+<span class="sourceLineNo">123</span>      rsm.updateAppend(null, 1002);<a name="line.123"></a>
 <span class="sourceLineNo">124</span>    }<a name="line.124"></a>
 <span class="sourceLineNo">125</span>    for (int i=0; i &lt; 13; i ++) {<a name="line.125"></a>
-<span class="sourceLineNo">126</span>      rsm.updateDeleteBatch(13);<a name="line.126"></a>
-<span class="sourceLineNo">127</span>      rsm.updateDeleteBatch(1003);<a name="line.127"></a>
+<span class="sourceLineNo">126</span>      rsm.updateDeleteBatch(null, 13);<a name="line.126"></a>
+<span class="sourceLineNo">127</span>      rsm.updateDeleteBatch(null, 1003);<a name="line.127"></a>
 <span class="sourceLineNo">128</span>    }<a name="line.128"></a>
 <span class="sourceLineNo">129</span>    for (int i=0; i &lt; 14; i ++) {<a name="line.129"></a>
-<span class="sourceLineNo">130</span>      rsm.updateGet(14);<a name="line.130"></a>
-<span class="sourceLineNo">131</span>      rsm.updateGet(1004);<a name="line.131"></a>
+<span class="sourceLineNo">130</span>      rsm.updateGet(null, 14);<a name="line.130"></a>
+<span class="sourceLineNo">131</span>      rsm.updateGet(null, 1004);<a name="line.131"></a>
 <span class="sourceLineNo">132</span>    }<a name="line.132"></a>
 <span class="sourceLineNo">133</span>    for (int i=0; i &lt; 15; i ++) {<a name="line.133"></a>
-<span class="sourceLineNo">134</span>      rsm.updateIncrement(15);<a name="line.134"></a>
-<span class="sourceLineNo">135</span>      rsm.updateIncrement(1005);<a name="line.135"></a>
+<span class="sourceLineNo">134</span>      rsm.updateIncrement(null, 15);<a name="line.134"></a>
+<span class="sourceLineNo">135</span>      rsm.updateIncrement(null, 1005);<a name="line.135"></a>
 <span class="sourceLineNo">136</span>    }<a name="line.136"></a>
 <span class="sourceLineNo">137</span>    for (int i=0; i &lt; 16; i ++) {<a name="line.137"></a>
-<span class="sourceLineNo">138</span>      rsm.updatePutBatch(16);<a name="line.138"></a>
-<span class="sourceLineNo">139</span>      rsm.updatePutBatch(1006);<a name="line.139"></a>
+<span class="sourceLineNo">138</span>      rsm.updatePutBatch(null, 16);<a name="line.138"></a>
+<span class="sourceLineNo">139</span>      rsm.updatePutBatch(null, 1006);<a name="line.139"></a>
 <span class="sourceLineNo">140</span>    }<a name="line.140"></a>
 <span class="sourceLineNo">141</span><a name="line.141"></a>
 <span class="sourceLineNo">142</span>    for (int i=0; i &lt; 17; i ++) {<a name="line.142"></a>
-<span class="sourceLineNo">143</span>      rsm.updatePut(17);<a name="line.143"></a>
-<span class="sourceLineNo">144</span>      rsm.updateDelete(17);<a name="line.144"></a>
+<span class="sourceLineNo">143</span>      rsm.updatePut(null, 17);<a name="line.143"></a>
+<span class="sourceLineNo">144</span>      rsm.updateDelete(null, 17);<a name="line.144"></a>
 <span class="sourceLineNo">145</span>      rsm.updateCheckAndDelete(17);<a name="line.145"></a>
 <span class="sourceLineNo">146</span>      rsm.updateCheckAndPut(17);<a name="line.146"></a>
 <span class="sourceLineNo">147</span>    }<a name="line.147"></a>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/29b27596/testdevapidocs/src-html/org/apache/hadoop/hbase/regionserver/TestMetricsTableLatencies.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/src-html/org/apache/hadoop/hbase/regionserver/TestMetricsTableLatencies.html b/testdevapidocs/src-html/org/apache/hadoop/hbase/regionserver/TestMetricsTableLatencies.html
new file mode 100644
index 0000000..45ad193
--- /dev/null
+++ b/testdevapidocs/src-html/org/apache/hadoop/hbase/regionserver/TestMetricsTableLatencies.html
@@ -0,0 +1,140 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+<title>Source code</title>
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<div class="sourceContainer">
+<pre><span class="sourceLineNo">001</span>/**<a name="line.1"></a>
+<span class="sourceLineNo">002</span> * Licensed to the Apache Software Foundation (ASF) under one<a name="line.2"></a>
+<span class="sourceLineNo">003</span> * or more contributor license agreements.  See the NOTICE file<a name="line.3"></a>
+<span class="sourceLineNo">004</span> * distributed with this work for additional information<a name="line.4"></a>
+<span class="sourceLineNo">005</span> * regarding copyright ownership.  The ASF licenses this file<a name="line.5"></a>
+<span class="sourceLineNo">006</span> * to you under the Apache License, Version 2.0 (the<a name="line.6"></a>
+<span class="sourceLineNo">007</span> * "License"); you may not use this file except in compliance<a name="line.7"></a>
+<span class="sourceLineNo">008</span> * with the License.  You may obtain a copy of the License at<a name="line.8"></a>
+<span class="sourceLineNo">009</span> *<a name="line.9"></a>
+<span class="sourceLineNo">010</span> *     http://www.apache.org/licenses/LICENSE-2.0<a name="line.10"></a>
+<span class="sourceLineNo">011</span> *<a name="line.11"></a>
+<span class="sourceLineNo">012</span> * Unless required by applicable law or agreed to in writing, software<a name="line.12"></a>
+<span class="sourceLineNo">013</span> * distributed under the License is distributed on an "AS IS" BASIS,<a name="line.13"></a>
+<span class="sourceLineNo">014</span> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.<a name="line.14"></a>
+<span class="sourceLineNo">015</span> * See the License for the specific language governing permissions and<a name="line.15"></a>
+<span class="sourceLineNo">016</span> * limitations under the License.<a name="line.16"></a>
+<span class="sourceLineNo">017</span> */<a name="line.17"></a>
+<span class="sourceLineNo">018</span>package org.apache.hadoop.hbase.regionserver;<a name="line.18"></a>
+<span class="sourceLineNo">019</span><a name="line.19"></a>
+<span class="sourceLineNo">020</span>import static org.junit.Assert.assertTrue;<a name="line.20"></a>
+<span class="sourceLineNo">021</span><a name="line.21"></a>
+<span class="sourceLineNo">022</span>import java.io.IOException;<a name="line.22"></a>
+<span class="sourceLineNo">023</span>import org.apache.hadoop.hbase.CompatibilityFactory;<a name="line.23"></a>
+<span class="sourceLineNo">024</span>import org.apache.hadoop.hbase.CompatibilitySingletonFactory;<a name="line.24"></a>
+<span class="sourceLineNo">025</span>import org.apache.hadoop.hbase.TableName;<a name="line.25"></a>
+<span class="sourceLineNo">026</span>import org.apache.hadoop.hbase.test.MetricsAssertHelper;<a name="line.26"></a>
+<span class="sourceLineNo">027</span>import org.apache.hadoop.hbase.testclassification.RegionServerTests;<a name="line.27"></a>
+<span class="sourceLineNo">028</span>import org.apache.hadoop.hbase.testclassification.SmallTests;<a name="line.28"></a>
+<span class="sourceLineNo">029</span>import org.junit.Test;<a name="line.29"></a>
+<span class="sourceLineNo">030</span>import org.junit.experimental.categories.Category;<a name="line.30"></a>
+<span class="sourceLineNo">031</span><a name="line.31"></a>
+<span class="sourceLineNo">032</span>@Category({RegionServerTests.class, SmallTests.class})<a name="line.32"></a>
+<span class="sourceLineNo">033</span>public class TestMetricsTableLatencies {<a name="line.33"></a>
+<span class="sourceLineNo">034</span><a name="line.34"></a>
+<span class="sourceLineNo">035</span>  public static MetricsAssertHelper HELPER =<a name="line.35"></a>
+<span class="sourceLineNo">036</span>      CompatibilityFactory.getInstance(MetricsAssertHelper.class);<a name="line.36"></a>
+<span class="sourceLineNo">037</span><a name="line.37"></a>
+<span class="sourceLineNo">038</span>  @Test<a name="line.38"></a>
+<span class="sourceLineNo">039</span>  public void testTableWrapperAggregateMetrics() throws IOException {<a name="line.39"></a>
+<span class="sourceLineNo">040</span>    TableName tn1 = TableName.valueOf("table1");<a name="line.40"></a>
+<span class="sourceLineNo">041</span>    TableName tn2 = TableName.valueOf("table2");<a name="line.41"></a>
+<span class="sourceLineNo">042</span>    MetricsTableLatencies latencies = CompatibilitySingletonFactory.getInstance(<a name="line.42"></a>
+<span class="sourceLineNo">043</span>        MetricsTableLatencies.class);<a name="line.43"></a>
+<span class="sourceLineNo">044</span>    assertTrue("'latencies' is actually " + latencies.getClass(),<a name="line.44"></a>
+<span class="sourceLineNo">045</span>        latencies instanceof MetricsTableLatenciesImpl);<a name="line.45"></a>
+<span class="sourceLineNo">046</span>    MetricsTableLatenciesImpl latenciesImpl = (MetricsTableLatenciesImpl) latencies;<a name="line.46"></a>
+<span class="sourceLineNo">047</span>    RegionServerTableMetrics tableMetrics = new RegionServerTableMetrics();<a name="line.47"></a>
+<span class="sourceLineNo">048</span><a name="line.48"></a>
+<span class="sourceLineNo">049</span>    // Metrics to each table should be disjoint<a name="line.49"></a>
+<span class="sourceLineNo">050</span>    // N.B. each call to assertGauge removes all previously acquired metrics so we have to<a name="line.50"></a>
+<span class="sourceLineNo">051</span>    //   make the metrics call and then immediately verify it. Trying to do multiple metrics<a name="line.51"></a>
+<span class="sourceLineNo">052</span>    //   updates followed by multiple verifications will fail on the 2nd verification (as the<a name="line.52"></a>
+<span class="sourceLineNo">053</span>    //   first verification cleaned the data structures in MetricsAssertHelperImpl).<a name="line.53"></a>
+<span class="sourceLineNo">054</span>    tableMetrics.updateGet(tn1, 500L);<a name="line.54"></a>
+<span class="sourceLineNo">055</span>    HELPER.assertGauge(MetricsTableLatenciesImpl.qualifyMetricsName(<a name="line.55"></a>
+<span class="sourceLineNo">056</span>        tn1, MetricsTableLatencies.GET_TIME + "_" + "999th_percentile"), 500L, latenciesImpl);<a name="line.56"></a>
+<span class="sourceLineNo">057</span>    tableMetrics.updatePut(tn1, 50L);<a name="line.57"></a>
+<span class="sourceLineNo">058</span>    HELPER.assertGauge(MetricsTableLatenciesImpl.qualifyMetricsName(<a name="line.58"></a>
+<span class="sourceLineNo">059</span>        tn1, MetricsTableLatencies.PUT_TIME + "_" + "99th_percentile"), 50L, latenciesImpl);<a name="line.59"></a>
+<span class="sourceLineNo">060</span><a name="line.60"></a>
+<span class="sourceLineNo">061</span>    tableMetrics.updateGet(tn2, 300L);<a name="line.61"></a>
+<span class="sourceLineNo">062</span>    HELPER.assertGauge(MetricsTableLatenciesImpl.qualifyMetricsName(<a name="line.62"></a>
+<span class="sourceLineNo">063</span>        tn2, MetricsTableLatencies.GET_TIME + "_" + "999th_percentile"), 300L, latenciesImpl);<a name="line.63"></a>
+<span class="sourceLineNo">064</span>    tableMetrics.updatePut(tn2, 75L);<a name="line.64"></a>
+<span class="sourceLineNo">065</span>    HELPER.assertGauge(MetricsTableLatenciesImpl.qualifyMetricsName(<a name="line.65"></a>
+<span class="sourceLineNo">066</span>        tn2, MetricsTableLatencies.PUT_TIME + "_" + "99th_percentile"), 75L, latenciesImpl);<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>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/29b27596/testdevapidocs/src-html/org/apache/hadoop/hbase/test/MetricsAssertHelper.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/src-html/org/apache/hadoop/hbase/test/MetricsAssertHelper.html b/testdevapidocs/src-html/org/apache/hadoop/hbase/test/MetricsAssertHelper.html
index c668259..d6a26d8 100644
--- a/testdevapidocs/src-html/org/apache/hadoop/hbase/test/MetricsAssertHelper.html
+++ b/testdevapidocs/src-html/org/apache/hadoop/hbase/test/MetricsAssertHelper.html
@@ -176,7 +176,14 @@
 <span class="sourceLineNo">168</span>   * @return long value of the gauge.<a name="line.168"></a>
 <span class="sourceLineNo">169</span>   */<a name="line.169"></a>
 <span class="sourceLineNo">170</span>  long getGaugeLong(String name, BaseSource source);<a name="line.170"></a>
-<span class="sourceLineNo">171</span>}<a name="line.171"></a>
+<span class="sourceLineNo">171</span><a name="line.171"></a>
+<span class="sourceLineNo">172</span>  /**<a name="line.172"></a>
+<span class="sourceLineNo">173</span>   * Generates a representation of all metrics exported by the given {@code source}.<a name="line.173"></a>
+<span class="sourceLineNo">174</span>   * @param source The {@link BaseSource} that will provide the metrics.<a name="line.174"></a>
+<span class="sourceLineNo">175</span>   * @return A representation of the metrics as a String.<a name="line.175"></a>
+<span class="sourceLineNo">176</span>   */<a name="line.176"></a>
+<span class="sourceLineNo">177</span>  String toDebugString(BaseSource source);<a name="line.177"></a>
+<span class="sourceLineNo">178</span>}<a name="line.178"></a>
 
 
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/29b27596/testdevapidocs/src-html/org/apache/hadoop/hbase/test/MetricsAssertHelperImpl.MockMetricsBuilder.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/src-html/org/apache/hadoop/hbase/test/MetricsAssertHelperImpl.MockMetricsBuilder.html b/testdevapidocs/src-html/org/apache/hadoop/hbase/test/MetricsAssertHelperImpl.MockMetricsBuilder.html
index 63fc9be..62b6bab 100644
--- a/testdevapidocs/src-html/org/apache/hadoop/hbase/test/MetricsAssertHelperImpl.MockMetricsBuilder.html
+++ b/testdevapidocs/src-html/org/apache/hadoop/hbase/test/MetricsAssertHelperImpl.MockMetricsBuilder.html
@@ -236,27 +236,35 @@
 <span class="sourceLineNo">228</span>    return gauges.get(cName).longValue();<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>  private void reset() {<a name="line.231"></a>
-<span class="sourceLineNo">232</span>    tags.clear();<a name="line.232"></a>
-<span class="sourceLineNo">233</span>    gauges.clear();<a name="line.233"></a>
-<span class="sourceLineNo">234</span>    counters.clear();<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 getMetrics(BaseSource source) {<a name="line.237"></a>
-<span class="sourceLineNo">238</span>    reset();<a name="line.238"></a>
-<span class="sourceLineNo">239</span>    if (!(source instanceof MetricsSource)) {<a name="line.239"></a>
-<span class="sourceLineNo">240</span>      assertTrue("The Source passed must be a MetricsSource", false);<a name="line.240"></a>
-<span class="sourceLineNo">241</span>    }<a name="line.241"></a>
-<span class="sourceLineNo">242</span>    MetricsSource impl = (MetricsSource) source;<a name="line.242"></a>
-<span class="sourceLineNo">243</span><a name="line.243"></a>
-<span class="sourceLineNo">244</span>    impl.getMetrics(new MockMetricsBuilder(), true);<a name="line.244"></a>
-<span class="sourceLineNo">245</span><a name="line.245"></a>
-<span class="sourceLineNo">246</span>  }<a name="line.246"></a>
-<span class="sourceLineNo">247</span><a name="line.247"></a>
-<span class="sourceLineNo">248</span>  private String canonicalizeMetricName(String in) {<a name="line.248"></a>
-<span class="sourceLineNo">249</span>    return in.toLowerCase(Locale.ROOT).replaceAll("[^A-Za-z0-9 ]", "");<a name="line.249"></a>
-<span class="sourceLineNo">250</span>  }<a name="line.250"></a>
-<span class="sourceLineNo">251</span>}<a name="line.251"></a>
+<span class="sourceLineNo">231</span>  @Override<a name="line.231"></a>
+<span class="sourceLineNo">232</span>  public String toDebugString(BaseSource source) {<a name="line.232"></a>
+<span class="sourceLineNo">233</span>    getMetrics(source);<a name="line.233"></a>
+<span class="sourceLineNo">234</span>    StringBuilder sb = new StringBuilder();<a name="line.234"></a>
+<span class="sourceLineNo">235</span>    sb.append("Tags=").append(tags).append(", Counters=").append(counters);<a name="line.235"></a>
+<span class="sourceLineNo">236</span>    return sb.append(", Gauges=").append(gauges).toString();<a name="line.236"></a>
+<span class="sourceLineNo">237</span>  }<a name="line.237"></a>
+<span class="sourceLineNo">238</span><a name="line.238"></a>
+<span class="sourceLineNo">239</span>  private void reset() {<a name="line.239"></a>
+<span class="sourceLineNo">240</span>    tags.clear();<a name="line.240"></a>
+<span class="sourceLineNo">241</span>    gauges.clear();<a name="line.241"></a>
+<span class="sourceLineNo">242</span>    counters.clear();<a name="line.242"></a>
+<span class="sourceLineNo">243</span>  }<a name="line.243"></a>
+<span class="sourceLineNo">244</span><a name="line.244"></a>
+<span class="sourceLineNo">245</span>  private void getMetrics(BaseSource source) {<a name="line.245"></a>
+<span class="sourceLineNo">246</span>    reset();<a name="line.246"></a>
+<span class="sourceLineNo">247</span>    if (!(source instanceof MetricsSource)) {<a name="line.247"></a>
+<span class="sourceLineNo">248</span>      assertTrue("The Source passed must be a MetricsSource", false);<a name="line.248"></a>
+<span class="sourceLineNo">249</span>    }<a name="line.249"></a>
+<span class="sourceLineNo">250</span>    MetricsSource impl = (MetricsSource) source;<a name="line.250"></a>
+<span class="sourceLineNo">251</span><a name="line.251"></a>
+<span class="sourceLineNo">252</span>    impl.getMetrics(new MockMetricsBuilder(), true);<a name="line.252"></a>
+<span class="sourceLineNo">253</span><a name="line.253"></a>
+<span class="sourceLineNo">254</span>  }<a name="line.254"></a>
+<span class="sourceLineNo">255</span><a name="line.255"></a>
+<span class="sourceLineNo">256</span>  private String canonicalizeMetricName(String in) {<a name="line.256"></a>
+<span class="sourceLineNo">257</span>    return in.toLowerCase(Locale.ROOT).replaceAll("[^A-Za-z0-9 ]", "");<a name="line.257"></a>
+<span class="sourceLineNo">258</span>  }<a name="line.258"></a>
+<span class="sourceLineNo">259</span>}<a name="line.259"></a>
 
 
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/29b27596/testdevapidocs/src-html/org/apache/hadoop/hbase/test/MetricsAssertHelperImpl.MockRecordBuilder.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/src-html/org/apache/hadoop/hbase/test/MetricsAssertHelperImpl.MockRecordBuilder.html b/testdevapidocs/src-html/org/apache/hadoop/hbase/test/MetricsAssertHelperImpl.MockRecordBuilder.html
index 63fc9be..62b6bab 100644
--- a/testdevapidocs/src-html/org/apache/hadoop/hbase/test/MetricsAssertHelperImpl.MockRecordBuilder.html
+++ b/testdevapidocs/src-html/org/apache/hadoop/hbase/test/MetricsAssertHelperImpl.MockRecordBuilder.html
@@ -236,27 +236,35 @@
 <span class="sourceLineNo">228</span>    return gauges.get(cName).longValue();<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>  private void reset() {<a name="line.231"></a>
-<span class="sourceLineNo">232</span>    tags.clear();<a name="line.232"></a>
-<span class="sourceLineNo">233</span>    gauges.clear();<a name="line.233"></a>
-<span class="sourceLineNo">234</span>    counters.clear();<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 getMetrics(BaseSource source) {<a name="line.237"></a>
-<span class="sourceLineNo">238</span>    reset();<a name="line.238"></a>
-<span class="sourceLineNo">239</span>    if (!(source instanceof MetricsSource)) {<a name="line.239"></a>
-<span class="sourceLineNo">240</span>      assertTrue("The Source passed must be a MetricsSource", false);<a name="line.240"></a>
-<span class="sourceLineNo">241</span>    }<a name="line.241"></a>
-<span class="sourceLineNo">242</span>    MetricsSource impl = (MetricsSource) source;<a name="line.242"></a>
-<span class="sourceLineNo">243</span><a name="line.243"></a>
-<span class="sourceLineNo">244</span>    impl.getMetrics(new MockMetricsBuilder(), true);<a name="line.244"></a>
-<span class="sourceLineNo">245</span><a name="line.245"></a>
-<span class="sourceLineNo">246</span>  }<a name="line.246"></a>
-<span class="sourceLineNo">247</span><a name="line.247"></a>
-<span class="sourceLineNo">248</span>  private String canonicalizeMetricName(String in) {<a name="line.248"></a>
-<span class="sourceLineNo">249</span>    return in.toLowerCase(Locale.ROOT).replaceAll("[^A-Za-z0-9 ]", "");<a name="line.249"></a>
-<span class="sourceLineNo">250</span>  }<a name="line.250"></a>
-<span class="sourceLineNo">251</span>}<a name="line.251"></a>
+<span class="sourceLineNo">231</span>  @Override<a name="line.231"></a>
+<span class="sourceLineNo">232</span>  public String toDebugString(BaseSource source) {<a name="line.232"></a>
+<span class="sourceLineNo">233</span>    getMetrics(source);<a name="line.233"></a>
+<span class="sourceLineNo">234</span>    StringBuilder sb = new StringBuilder();<a name="line.234"></a>
+<span class="sourceLineNo">235</span>    sb.append("Tags=").append(tags).append(", Counters=").append(counters);<a name="line.235"></a>
+<span class="sourceLineNo">236</span>    return sb.append(", Gauges=").append(gauges).toString();<a name="line.236"></a>
+<span class="sourceLineNo">237</span>  }<a name="line.237"></a>
+<span class="sourceLineNo">238</span><a name="line.238"></a>
+<span class="sourceLineNo">239</span>  private void reset() {<a name="line.239"></a>
+<span class="sourceLineNo">240</span>    tags.clear();<a name="line.240"></a>
+<span class="sourceLineNo">241</span>    gauges.clear();<a name="line.241"></a>
+<span class="sourceLineNo">242</span>    counters.clear();<a name="line.242"></a>
+<span class="sourceLineNo">243</span>  }<a name="line.243"></a>
+<span class="sourceLineNo">244</span><a name="line.244"></a>
+<span class="sourceLineNo">245</span>  private void getMetrics(BaseSource source) {<a name="line.245"></a>
+<span class="sourceLineNo">246</span>    reset();<a name="line.246"></a>
+<span class="sourceLineNo">247</span>    if (!(source instanceof MetricsSource)) {<a name="line.247"></a>
+<span class="sourceLineNo">248</span>      assertTrue("The Source passed must be a MetricsSource", false);<a name="line.248"></a>
+<span class="sourceLineNo">249</span>    }<a name="line.249"></a>
+<span class="sourceLineNo">250</span>    MetricsSource impl = (MetricsSource) source;<a name="line.250"></a>
+<span class="sourceLineNo">251</span><a name="line.251"></a>
+<span class="sourceLineNo">252</span>    impl.getMetrics(new MockMetricsBuilder(), true);<a name="line.252"></a>
+<span class="sourceLineNo">253</span><a name="line.253"></a>
+<span class="sourceLineNo">254</span>  }<a name="line.254"></a>
+<span class="sourceLineNo">255</span><a name="line.255"></a>
+<span class="sourceLineNo">256</span>  private String canonicalizeMetricName(String in) {<a name="line.256"></a>
+<span class="sourceLineNo">257</span>    return in.toLowerCase(Locale.ROOT).replaceAll("[^A-Za-z0-9 ]", "");<a name="line.257"></a>
+<span class="sourceLineNo">258</span>  }<a name="line.258"></a>
+<span class="sourceLineNo">259</span>}<a name="line.259"></a>
 
 
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/29b27596/testdevapidocs/src-html/org/apache/hadoop/hbase/test/MetricsAssertHelperImpl.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/src-html/org/apache/hadoop/hbase/test/MetricsAssertHelperImpl.html b/testdevapidocs/src-html/org/apache/hadoop/hbase/test/MetricsAssertHelperImpl.html
index 63fc9be..62b6bab 100644
--- a/testdevapidocs/src-html/org/apache/hadoop/hbase/test/MetricsAssertHelperImpl.html
+++ b/testdevapidocs/src-html/org/apache/hadoop/hbase/test/MetricsAssertHelperImpl.html
@@ -236,27 +236,35 @@
 <span class="sourceLineNo">228</span>    return gauges.get(cName).longValue();<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>  private void reset() {<a name="line.231"></a>
-<span class="sourceLineNo">232</span>    tags.clear();<a name="line.232"></a>
-<span class="sourceLineNo">233</span>    gauges.clear();<a name="line.233"></a>
-<span class="sourceLineNo">234</span>    counters.clear();<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 getMetrics(BaseSource source) {<a name="line.237"></a>
-<span class="sourceLineNo">238</span>    reset();<a name="line.238"></a>
-<span class="sourceLineNo">239</span>    if (!(source instanceof MetricsSource)) {<a name="line.239"></a>
-<span class="sourceLineNo">240</span>      assertTrue("The Source passed must be a MetricsSource", false);<a name="line.240"></a>
-<span class="sourceLineNo">241</span>    }<a name="line.241"></a>
-<span class="sourceLineNo">242</span>    MetricsSource impl = (MetricsSource) source;<a name="line.242"></a>
-<span class="sourceLineNo">243</span><a name="line.243"></a>
-<span class="sourceLineNo">244</span>    impl.getMetrics(new MockMetricsBuilder(), true);<a name="line.244"></a>
-<span class="sourceLineNo">245</span><a name="line.245"></a>
-<span class="sourceLineNo">246</span>  }<a name="line.246"></a>
-<span class="sourceLineNo">247</span><a name="line.247"></a>
-<span class="sourceLineNo">248</span>  private String canonicalizeMetricName(String in) {<a name="line.248"></a>
-<span class="sourceLineNo">249</span>    return in.toLowerCase(Locale.ROOT).replaceAll("[^A-Za-z0-9 ]", "");<a name="line.249"></a>
-<span class="sourceLineNo">250</span>  }<a name="line.250"></a>
-<span class="sourceLineNo">251</span>}<a name="line.251"></a>
+<span class="sourceLineNo">231</span>  @Override<a name="line.231"></a>
+<span class="sourceLineNo">232</span>  public String toDebugString(BaseSource source) {<a name="line.232"></a>
+<span class="sourceLineNo">233</span>    getMetrics(source);<a name="line.233"></a>
+<span class="sourceLineNo">234</span>    StringBuilder sb = new StringBuilder();<a name="line.234"></a>
+<span class="sourceLineNo">235</span>    sb.append("Tags=").append(tags).append(", Counters=").append(counters);<a name="line.235"></a>
+<span class="sourceLineNo">236</span>    return sb.append(", Gauges=").append(gauges).toString();<a name="line.236"></a>
+<span class="sourceLineNo">237</span>  }<a name="line.237"></a>
+<span class="sourceLineNo">238</span><a name="line.238"></a>
+<span class="sourceLineNo">239</span>  private void reset() {<a name="line.239"></a>
+<span class="sourceLineNo">240</span>    tags.clear();<a name="line.240"></a>
+<span class="sourceLineNo">241</span>    gauges.clear();<a name="line.241"></a>
+<span class="sourceLineNo">242</span>    counters.clear();<a name="line.242"></a>
+<span class="sourceLineNo">243</span>  }<a name="line.243"></a>
+<span class="sourceLineNo">244</span><a name="line.244"></a>
+<span class="sourceLineNo">245</span>  private void getMetrics(BaseSource source) {<a name="line.245"></a>
+<span class="sourceLineNo">246</span>    reset();<a name="line.246"></a>
+<span class="sourceLineNo">247</span>    if (!(source instanceof MetricsSource)) {<a name="line.247"></a>
+<span class="sourceLineNo">248</span>      assertTrue("The Source passed must be a MetricsSource", false);<a name="line.248"></a>
+<span class="sourceLineNo">249</span>    }<a name="line.249"></a>
+<span class="sourceLineNo">250</span>    MetricsSource impl = (MetricsSource) source;<a name="line.250"></a>
+<span class="sourceLineNo">251</span><a name="line.251"></a>
+<span class="sourceLineNo">252</span>    impl.getMetrics(new MockMetricsBuilder(), true);<a name="line.252"></a>
+<span class="sourceLineNo">253</span><a name="line.253"></a>
+<span class="sourceLineNo">254</span>  }<a name="line.254"></a>
+<span class="sourceLineNo">255</span><a name="line.255"></a>
+<span class="sourceLineNo">256</span>  private String canonicalizeMetricName(String in) {<a name="line.256"></a>
+<span class="sourceLineNo">257</span>    return in.toLowerCase(Locale.ROOT).replaceAll("[^A-Za-z0-9 ]", "");<a name="line.257"></a>
+<span class="sourceLineNo">258</span>  }<a name="line.258"></a>
+<span class="sourceLineNo">259</span>}<a name="line.259"></a>
 
 
 


[30/32] hbase-site git commit: Published site at .

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/29b27596/checkstyle.rss
----------------------------------------------------------------------
diff --git a/checkstyle.rss b/checkstyle.rss
index 608396a..aaf290c 100644
--- a/checkstyle.rss
+++ b/checkstyle.rss
@@ -25,8 +25,8 @@ under the License.
     <language>en-us</language>
     <copyright>&#169;2007 - 2017 The Apache Software Foundation</copyright>
     <item>
-      <title>File: 3440,
-             Errors: 20765,
+      <title>File: 3444,
+             Errors: 20767,
              Warnings: 0,
              Infos: 0
       </title>
@@ -7032,6 +7032,20 @@ under the License.
               </tr>
                           <tr>
                 <td>
+                  <a href="http://hbase.apache.org/checkstyle.html#org.apache.hadoop.hbase.regionserver.MetricsTableLatenciesImpl.java">org/apache/hadoop/hbase/regionserver/MetricsTableLatenciesImpl.java</a>
+                </td>
+                <td>
+                  0
+                </td>
+                <td>
+                  0
+                </td>
+                <td>
+                  1
+                </td>
+              </tr>
+                          <tr>
+                <td>
                   <a href="http://hbase.apache.org/checkstyle.html#org.apache.hadoop.hbase.quotas.QuotaScope.java">org/apache/hadoop/hbase/quotas/QuotaScope.java</a>
                 </td>
                 <td>
@@ -18465,7 +18479,7 @@ under the License.
                   0
                 </td>
                 <td>
-                  131
+                  132
                 </td>
               </tr>
                           <tr>
@@ -27836,6 +27850,20 @@ under the License.
               </tr>
                           <tr>
                 <td>
+                  <a href="http://hbase.apache.org/checkstyle.html#org.apache.hadoop.hbase.regionserver.MetricsTableLatencies.java">org/apache/hadoop/hbase/regionserver/MetricsTableLatencies.java</a>
+                </td>
+                <td>
+                  0
+                </td>
+                <td>
+                  0
+                </td>
+                <td>
+                  0
+                </td>
+              </tr>
+                          <tr>
+                <td>
                   <a href="http://hbase.apache.org/checkstyle.html#org.apache.hadoop.hbase.security.visibility.TestVisibilityLabelReplicationWithExpAsString.java">org/apache/hadoop/hbase/security/visibility/TestVisibilityLabelReplicationWithExpAsString.java</a>
                 </td>
                 <td>
@@ -30930,6 +30958,20 @@ under the License.
               </tr>
                           <tr>
                 <td>
+                  <a href="http://hbase.apache.org/checkstyle.html#org.apache.hadoop.hbase.regionserver.TestMetricsTableLatencies.java">org/apache/hadoop/hbase/regionserver/TestMetricsTableLatencies.java</a>
+                </td>
+                <td>
+                  0
+                </td>
+                <td>
+                  0
+                </td>
+                <td>
+                  0
+                </td>
+              </tr>
+                          <tr>
+                <td>
                   <a href="http://hbase.apache.org/checkstyle.html#org.apache.hadoop.hbase.replication.regionserver.WALEntryStream.java">org/apache/hadoop/hbase/replication/regionserver/WALEntryStream.java</a>
                 </td>
                 <td>
@@ -44300,6 +44342,20 @@ under the License.
               </tr>
                           <tr>
                 <td>
+                  <a href="http://hbase.apache.org/checkstyle.html#org.apache.hadoop.hbase.regionserver.RegionServerTableMetrics.java">org/apache/hadoop/hbase/regionserver/RegionServerTableMetrics.java</a>
+                </td>
+                <td>
+                  0
+                </td>
+                <td>
+                  0
+                </td>
+                <td>
+                  0
+                </td>
+              </tr>
+                          <tr>
+                <td>
                   <a href="http://hbase.apache.org/checkstyle.html#org.apache.hadoop.hbase.security.token.TokenProvider.java">org/apache/hadoop/hbase/security/token/TokenProvider.java</a>
                 </td>
                 <td>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/29b27596/coc.html
----------------------------------------------------------------------
diff --git a/coc.html b/coc.html
index 5e695a7..9f61a27 100644
--- 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="20171201" />
+    <meta name="Date-Revision-yyyymmdd" content="20171202" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; 
       Code of Conduct Policy
@@ -380,7 +380,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: 2017-12-01</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-02</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/29b27596/cygwin.html
----------------------------------------------------------------------
diff --git a/cygwin.html b/cygwin.html
index 081b718..0bef6b8 100644
--- a/cygwin.html
+++ b/cygwin.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="20171201" />
+    <meta name="Date-Revision-yyyymmdd" content="20171202" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Installing Apache HBase (TM) on Windows using Cygwin</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -679,7 +679,7 @@ Now your <b>HBase </b>server is running, <b>start coding</b> and build that next
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-02</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/29b27596/dependencies.html
----------------------------------------------------------------------
diff --git a/dependencies.html b/dependencies.html
index 203743d..fd3556e 100644
--- a/dependencies.html
+++ b/dependencies.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="20171201" />
+    <meta name="Date-Revision-yyyymmdd" content="20171202" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Project Dependencies</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -445,7 +445,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-02</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/29b27596/dependency-convergence.html
----------------------------------------------------------------------
diff --git a/dependency-convergence.html b/dependency-convergence.html
index 3b4c387..260df71 100644
--- a/dependency-convergence.html
+++ b/dependency-convergence.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="20171201" />
+    <meta name="Date-Revision-yyyymmdd" content="20171202" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Reactor Dependency Convergence</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -1008,7 +1008,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-02</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/29b27596/dependency-info.html
----------------------------------------------------------------------
diff --git a/dependency-info.html b/dependency-info.html
index a6ac01c..00d7ca4 100644
--- a/dependency-info.html
+++ b/dependency-info.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="20171201" />
+    <meta name="Date-Revision-yyyymmdd" content="20171202" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Dependency Information</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -318,7 +318,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-02</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/29b27596/dependency-management.html
----------------------------------------------------------------------
diff --git a/dependency-management.html b/dependency-management.html
index b7275f4..bed5036 100644
--- a/dependency-management.html
+++ b/dependency-management.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="20171201" />
+    <meta name="Date-Revision-yyyymmdd" content="20171202" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Project Dependency Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -715,19 +715,19 @@
 <tr class="a">
 <td>org.eclipse.jetty</td>
 <td><a class="externalLink" href="http://www.eclipse.org/jetty">jetty-http</a></td>
-<td>9.4.6.v20170531</td>
+<td>9.3.19.v20170502</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache Software License - Version 2.0</a>, <a class="externalLink" href="http://www.eclipse.org/org/documents/epl-v10.php">Eclipse Public License - Version 1.0</a></td></tr>
 <tr class="b">
 <td>org.eclipse.jetty</td>
 <td><a class="externalLink" href="http://www.eclipse.org/jetty">jetty-io</a></td>
-<td>9.4.6.v20170531</td>
+<td>9.3.19.v20170502</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache Software License - Version 2.0</a>, <a class="externalLink" href="http://www.eclipse.org/org/documents/epl-v10.php">Eclipse Public License - Version 1.0</a></td></tr>
 <tr class="a">
 <td>org.eclipse.jetty</td>
 <td><a class="externalLink" href="http://www.eclipse.org/jetty">jetty-jmx</a></td>
-<td>9.4.6.v20170531</td>
+<td>9.3.19.v20170502</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache Software License - Version 2.0</a>, <a class="externalLink" href="http://www.eclipse.org/org/documents/epl-v10.php">Eclipse Public License - Version 1.0</a></td></tr>
 <tr class="b">
@@ -739,37 +739,37 @@
 <tr class="a">
 <td>org.eclipse.jetty</td>
 <td><a class="externalLink" href="http://www.eclipse.org/jetty">jetty-security</a></td>
-<td>9.4.6.v20170531</td>
+<td>9.3.19.v20170502</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache Software License - Version 2.0</a>, <a class="externalLink" href="http://www.eclipse.org/org/documents/epl-v10.php">Eclipse Public License - Version 1.0</a></td></tr>
 <tr class="b">
 <td>org.eclipse.jetty</td>
 <td><a class="externalLink" href="http://www.eclipse.org/jetty">jetty-server</a></td>
-<td>9.4.6.v20170531</td>
+<td>9.3.19.v20170502</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache Software License - Version 2.0</a>, <a class="externalLink" href="http://www.eclipse.org/org/documents/epl-v10.php">Eclipse Public License - Version 1.0</a></td></tr>
 <tr class="a">
 <td>org.eclipse.jetty</td>
 <td><a class="externalLink" href="http://www.eclipse.org/jetty">jetty-servlet</a></td>
-<td>9.4.6.v20170531</td>
+<td>9.3.19.v20170502</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache Software License - Version 2.0</a>, <a class="externalLink" href="http://www.eclipse.org/org/documents/epl-v10.php">Eclipse Public License - Version 1.0</a></td></tr>
 <tr class="b">
 <td>org.eclipse.jetty</td>
 <td><a class="externalLink" href="http://www.eclipse.org/jetty">jetty-util</a></td>
-<td>9.4.6.v20170531</td>
+<td>9.3.19.v20170502</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache Software License - Version 2.0</a>, <a class="externalLink" href="http://www.eclipse.org/org/documents/epl-v10.php">Eclipse Public License - Version 1.0</a></td></tr>
 <tr class="a">
 <td>org.eclipse.jetty</td>
 <td><a class="externalLink" href="http://www.eclipse.org/jetty">jetty-util-ajax</a></td>
-<td>9.4.6.v20170531</td>
+<td>9.3.19.v20170502</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache Software License - Version 2.0</a>, <a class="externalLink" href="http://www.eclipse.org/org/documents/epl-v10.php">Eclipse Public License - Version 1.0</a></td></tr>
 <tr class="b">
 <td>org.eclipse.jetty</td>
 <td><a class="externalLink" href="http://www.eclipse.org/jetty">jetty-webapp</a></td>
-<td>9.4.6.v20170531</td>
+<td>9.3.19.v20170502</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache Software License - Version 2.0</a>, <a class="externalLink" href="http://www.eclipse.org/org/documents/epl-v10.php">Eclipse Public License - Version 1.0</a></td></tr>
 <tr class="a">
@@ -974,7 +974,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-02</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/29b27596/devapidocs/allclasses-frame.html
----------------------------------------------------------------------
diff --git a/devapidocs/allclasses-frame.html b/devapidocs/allclasses-frame.html
index d9b632e..1d60909 100644
--- a/devapidocs/allclasses-frame.html
+++ b/devapidocs/allclasses-frame.html
@@ -1547,6 +1547,9 @@
 <li><a href="org/apache/hadoop/hbase/regionserver/MetricsTable.html" title="class in org.apache.hadoop.hbase.regionserver" target="classFrame">MetricsTable</a></li>
 <li><a href="org/apache/hadoop/hbase/regionserver/MetricsTableAggregateSource.html" title="interface in org.apache.hadoop.hbase.regionserver" target="classFrame"><span class="interfaceName">MetricsTableAggregateSource</span></a></li>
 <li><a href="org/apache/hadoop/hbase/regionserver/MetricsTableAggregateSourceImpl.html" title="class in org.apache.hadoop.hbase.regionserver" target="classFrame">MetricsTableAggregateSourceImpl</a></li>
+<li><a href="org/apache/hadoop/hbase/regionserver/MetricsTableLatencies.html" title="interface in org.apache.hadoop.hbase.regionserver" target="classFrame"><span class="interfaceName">MetricsTableLatencies</span></a></li>
+<li><a href="org/apache/hadoop/hbase/regionserver/MetricsTableLatenciesImpl.html" title="class in org.apache.hadoop.hbase.regionserver" target="classFrame">MetricsTableLatenciesImpl</a></li>
+<li><a href="org/apache/hadoop/hbase/regionserver/MetricsTableLatenciesImpl.TableHistograms.html" title="class in org.apache.hadoop.hbase.regionserver" target="classFrame">MetricsTableLatenciesImpl.TableHistograms</a></li>
 <li><a href="org/apache/hadoop/hbase/regionserver/MetricsTableSource.html" title="interface in org.apache.hadoop.hbase.regionserver" target="classFrame"><span class="interfaceName">MetricsTableSource</span></a></li>
 <li><a href="org/apache/hadoop/hbase/regionserver/MetricsTableSourceImpl.html" title="class in org.apache.hadoop.hbase.regionserver" target="classFrame">MetricsTableSourceImpl</a></li>
 <li><a href="org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregate.html" title="interface in org.apache.hadoop.hbase.regionserver" target="classFrame"><span class="interfaceName">MetricsTableWrapperAggregate</span></a></li>
@@ -2019,6 +2022,7 @@
 <li><a href="org/apache/hadoop/hbase/regionserver/snapshot/RegionServerSnapshotManager.SnapshotSubprocedurePool.html" title="class in org.apache.hadoop.hbase.regionserver.snapshot" target="classFrame">RegionServerSnapshotManager.SnapshotSubprocedurePool</a></li>
 <li><a href="org/apache/hadoop/hbase/quotas/RegionServerSpaceQuotaManager.html" title="class in org.apache.hadoop.hbase.quotas" target="classFrame">RegionServerSpaceQuotaManager</a></li>
 <li><a href="org/apache/hadoop/hbase/regionserver/RegionServerStoppedException.html" title="class in org.apache.hadoop.hbase.regionserver" target="classFrame">RegionServerStoppedException</a></li>
+<li><a href="org/apache/hadoop/hbase/regionserver/RegionServerTableMetrics.html" title="class in org.apache.hadoop.hbase.regionserver" target="classFrame">RegionServerTableMetrics</a></li>
 <li><a href="org/apache/hadoop/hbase/master/RegionServerTracker.html" title="class in org.apache.hadoop.hbase.master" target="classFrame">RegionServerTracker</a></li>
 <li><a href="org/apache/hadoop/hbase/regionserver/RegionServicesForStores.html" title="class in org.apache.hadoop.hbase.regionserver" target="classFrame">RegionServicesForStores</a></li>
 <li><a href="org/apache/hadoop/hbase/mapreduce/RegionSizeCalculator.html" title="class in org.apache.hadoop.hbase.mapreduce" target="classFrame">RegionSizeCalculator</a></li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/29b27596/devapidocs/allclasses-noframe.html
----------------------------------------------------------------------
diff --git a/devapidocs/allclasses-noframe.html b/devapidocs/allclasses-noframe.html
index 9dfc6c6..1420a9c 100644
--- a/devapidocs/allclasses-noframe.html
+++ b/devapidocs/allclasses-noframe.html
@@ -1547,6 +1547,9 @@
 <li><a href="org/apache/hadoop/hbase/regionserver/MetricsTable.html" title="class in org.apache.hadoop.hbase.regionserver">MetricsTable</a></li>
 <li><a href="org/apache/hadoop/hbase/regionserver/MetricsTableAggregateSource.html" title="interface in org.apache.hadoop.hbase.regionserver"><span class="interfaceName">MetricsTableAggregateSource</span></a></li>
 <li><a href="org/apache/hadoop/hbase/regionserver/MetricsTableAggregateSourceImpl.html" title="class in org.apache.hadoop.hbase.regionserver">MetricsTableAggregateSourceImpl</a></li>
+<li><a href="org/apache/hadoop/hbase/regionserver/MetricsTableLatencies.html" title="interface in org.apache.hadoop.hbase.regionserver"><span class="interfaceName">MetricsTableLatencies</span></a></li>
+<li><a href="org/apache/hadoop/hbase/regionserver/MetricsTableLatenciesImpl.html" title="class in org.apache.hadoop.hbase.regionserver">MetricsTableLatenciesImpl</a></li>
+<li><a href="org/apache/hadoop/hbase/regionserver/MetricsTableLatenciesImpl.TableHistograms.html" title="class in org.apache.hadoop.hbase.regionserver">MetricsTableLatenciesImpl.TableHistograms</a></li>
 <li><a href="org/apache/hadoop/hbase/regionserver/MetricsTableSource.html" title="interface in org.apache.hadoop.hbase.regionserver"><span class="interfaceName">MetricsTableSource</span></a></li>
 <li><a href="org/apache/hadoop/hbase/regionserver/MetricsTableSourceImpl.html" title="class in org.apache.hadoop.hbase.regionserver">MetricsTableSourceImpl</a></li>
 <li><a href="org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregate.html" title="interface in org.apache.hadoop.hbase.regionserver"><span class="interfaceName">MetricsTableWrapperAggregate</span></a></li>
@@ -2019,6 +2022,7 @@
 <li><a href="org/apache/hadoop/hbase/regionserver/snapshot/RegionServerSnapshotManager.SnapshotSubprocedurePool.html" title="class in org.apache.hadoop.hbase.regionserver.snapshot">RegionServerSnapshotManager.SnapshotSubprocedurePool</a></li>
 <li><a href="org/apache/hadoop/hbase/quotas/RegionServerSpaceQuotaManager.html" title="class in org.apache.hadoop.hbase.quotas">RegionServerSpaceQuotaManager</a></li>
 <li><a href="org/apache/hadoop/hbase/regionserver/RegionServerStoppedException.html" title="class in org.apache.hadoop.hbase.regionserver">RegionServerStoppedException</a></li>
+<li><a href="org/apache/hadoop/hbase/regionserver/RegionServerTableMetrics.html" title="class in org.apache.hadoop.hbase.regionserver">RegionServerTableMetrics</a></li>
 <li><a href="org/apache/hadoop/hbase/master/RegionServerTracker.html" title="class in org.apache.hadoop.hbase.master">RegionServerTracker</a></li>
 <li><a href="org/apache/hadoop/hbase/regionserver/RegionServicesForStores.html" title="class in org.apache.hadoop.hbase.regionserver">RegionServicesForStores</a></li>
 <li><a href="org/apache/hadoop/hbase/mapreduce/RegionSizeCalculator.html" title="class in org.apache.hadoop.hbase.mapreduce">RegionSizeCalculator</a></li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/29b27596/devapidocs/constant-values.html
----------------------------------------------------------------------
diff --git a/devapidocs/constant-values.html b/devapidocs/constant-values.html
index e7e727e..d7d47c3 100644
--- a/devapidocs/constant-values.html
+++ b/devapidocs/constant-values.html
@@ -3705,21 +3705,21 @@
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;<a href="http://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 Dec  1 14:42:20 UTC 2017"</code></td>
+<td class="colLast"><code>"Sat Dec  2 14:42:12 UTC 2017"</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="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
 <td><code><a href="org/apache/hadoop/hbase/Version.html#revision">revision</a></code></td>
-<td class="colLast"><code>"2e8bd0036dbdf3a99786e5531495d8d4cb51b86c"</code></td>
+<td class="colLast"><code>"d6a4a3dc331129e949faaaaa134107cb71172928"</code></td>
 </tr>
 <tr class="altColor">
 <td class="colFirst"><a name="org.apache.hadoop.hbase.Version.srcChecksum">
 <!--   -->
 </a><code>public&nbsp;static&nbsp;final&nbsp;<a href="http://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>"0be79d5711fa88be92020f5e7f116383"</code></td>
+<td class="colLast"><code>"f5ac229014b3452e383c1cb180577e57"</code></td>
 </tr>
 <tr class="rowColor">
 <td class="colFirst"><a name="org.apache.hadoop.hbase.Version.url">
@@ -18550,6 +18550,32 @@
 </li>
 <li class="blockList">
 <table class="constantsSummary" border="0" cellpadding="3" cellspacing="0" summary="Constant Field Values table, listing constant fields, and values">
+<caption><span>org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html" title="class in org.apache.hadoop.hbase.regionserver">MetricsRegionServer</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th scope="col">Constant Field</th>
+<th class="colLast" scope="col">Value</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a name="org.apache.hadoop.hbase.regionserver.MetricsRegionServer.RS_ENABLE_TABLE_METRICS_DEFAULT">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;boolean</code></td>
+<td><code><a href="org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html#RS_ENABLE_TABLE_METRICS_DEFAULT">RS_ENABLE_TABLE_METRICS_DEFAULT</a></code></td>
+<td class="colLast"><code>true</code></td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a name="org.apache.hadoop.hbase.regionserver.MetricsRegionServer.RS_ENABLE_TABLE_METRICS_KEY">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td><code><a href="org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html#RS_ENABLE_TABLE_METRICS_KEY">RS_ENABLE_TABLE_METRICS_KEY</a></code></td>
+<td class="colLast"><code>"hbase.regionserver.enable.table.latencies"</code></td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<table class="constantsSummary" border="0" cellpadding="3" cellspacing="0" summary="Constant Field Values table, listing constant fields, and values">
 <caption><span>org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MetricsRegionServerQuotaSource.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsRegionServerQuotaSource</a></span><span class="tabEnd">&nbsp;</span></caption>
 <tr>
 <th class="colFirst" scope="col">Modifier and Type</th>
@@ -20675,6 +20701,109 @@
 </li>
 <li class="blockList">
 <table class="constantsSummary" border="0" cellpadding="3" cellspacing="0" summary="Constant Field Values table, listing constant fields, and values">
+<caption><span>org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MetricsTableLatencies.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsTableLatencies</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th scope="col">Constant Field</th>
+<th class="colLast" scope="col">Value</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a name="org.apache.hadoop.hbase.regionserver.MetricsTableLatencies.APPEND_TIME">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td><code><a href="org/apache/hadoop/hbase/regionserver/MetricsTableLatencies.html#APPEND_TIME">APPEND_TIME</a></code></td>
+<td class="colLast"><code>"appendTime"</code></td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a name="org.apache.hadoop.hbase.regionserver.MetricsTableLatencies.DELETE_BATCH_TIME">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td><code><a href="org/apache/hadoop/hbase/regionserver/MetricsTableLatencies.html#DELETE_BATCH_TIME">DELETE_BATCH_TIME</a></code></td>
+<td class="colLast"><code>"deleteBatchTime"</code></td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a name="org.apache.hadoop.hbase.regionserver.MetricsTableLatencies.DELETE_TIME">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td><code><a href="org/apache/hadoop/hbase/regionserver/MetricsTableLatencies.html#DELETE_TIME">DELETE_TIME</a></code></td>
+<td class="colLast"><code>"deleteTime"</code></td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a name="org.apache.hadoop.hbase.regionserver.MetricsTableLatencies.GET_TIME">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td><code><a href="org/apache/hadoop/hbase/regionserver/MetricsTableLatencies.html#GET_TIME">GET_TIME</a></code></td>
+<td class="colLast"><code>"getTime"</code></td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a name="org.apache.hadoop.hbase.regionserver.MetricsTableLatencies.INCREMENT_TIME">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td><code><a href="org/apache/hadoop/hbase/regionserver/MetricsTableLatencies.html#INCREMENT_TIME">INCREMENT_TIME</a></code></td>
+<td class="colLast"><code>"incrementTime"</code></td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a name="org.apache.hadoop.hbase.regionserver.MetricsTableLatencies.METRICS_CONTEXT">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td><code><a href="org/apache/hadoop/hbase/regionserver/MetricsTableLatencies.html#METRICS_CONTEXT">METRICS_CONTEXT</a></code></td>
+<td class="colLast"><code>"regionserver"</code></td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a name="org.apache.hadoop.hbase.regionserver.MetricsTableLatencies.METRICS_DESCRIPTION">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td><code><a href="org/apache/hadoop/hbase/regionserver/MetricsTableLatencies.html#METRICS_DESCRIPTION">METRICS_DESCRIPTION</a></code></td>
+<td class="colLast"><code>"Metrics about Tables on a single HBase RegionServer"</code></td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a name="org.apache.hadoop.hbase.regionserver.MetricsTableLatencies.METRICS_JMX_CONTEXT">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td><code><a href="org/apache/hadoop/hbase/regionserver/MetricsTableLatencies.html#METRICS_JMX_CONTEXT">METRICS_JMX_CONTEXT</a></code></td>
+<td class="colLast"><code>"RegionServer,sub=TableLatencies"</code></td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a name="org.apache.hadoop.hbase.regionserver.MetricsTableLatencies.METRICS_NAME">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td><code><a href="org/apache/hadoop/hbase/regionserver/MetricsTableLatencies.html#METRICS_NAME">METRICS_NAME</a></code></td>
+<td class="colLast"><code>"TableLatencies"</code></td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a name="org.apache.hadoop.hbase.regionserver.MetricsTableLatencies.PUT_BATCH_TIME">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td><code><a href="org/apache/hadoop/hbase/regionserver/MetricsTableLatencies.html#PUT_BATCH_TIME">PUT_BATCH_TIME</a></code></td>
+<td class="colLast"><code>"putBatchTime"</code></td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a name="org.apache.hadoop.hbase.regionserver.MetricsTableLatencies.PUT_TIME">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td><code><a href="org/apache/hadoop/hbase/regionserver/MetricsTableLatencies.html#PUT_TIME">PUT_TIME</a></code></td>
+<td class="colLast"><code>"putTime"</code></td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><a name="org.apache.hadoop.hbase.regionserver.MetricsTableLatencies.SCAN_SIZE">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td><code><a href="org/apache/hadoop/hbase/regionserver/MetricsTableLatencies.html#SCAN_SIZE">SCAN_SIZE</a></code></td>
+<td class="colLast"><code>"scanSize"</code></td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a name="org.apache.hadoop.hbase.regionserver.MetricsTableLatencies.SCAN_TIME">
+<!--   -->
+</a><code>public&nbsp;static&nbsp;final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td><code><a href="org/apache/hadoop/hbase/regionserver/MetricsTableLatencies.html#SCAN_TIME">SCAN_TIME</a></code></td>
+<td class="colLast"><code>"scanTime"</code></td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<table class="constantsSummary" border="0" cellpadding="3" cellspacing="0" summary="Constant Field Values table, listing constant fields, and values">
 <caption><span>org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MetricsTableSource.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsTableSource</a></span><span class="tabEnd">&nbsp;</span></caption>
 <tr>
 <th class="colFirst" scope="col">Modifier and Type</th>


[05/32] hbase-site git commit: Published site at .

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/29b27596/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/integration.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/integration.html b/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/integration.html
index ca9a8b0..781a534 100644
--- a/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/integration.html
+++ b/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/integration.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="20171201" />
+    <meta name="Date-Revision-yyyymmdd" content="20171202" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Archetype builder &#x2013; CI Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -126,7 +126,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-02</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/29b27596/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/issue-tracking.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/issue-tracking.html b/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/issue-tracking.html
index dd27854..afd4d1d 100644
--- a/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/issue-tracking.html
+++ b/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/issue-tracking.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="20171201" />
+    <meta name="Date-Revision-yyyymmdd" content="20171202" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Archetype builder &#x2013; Issue Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -123,7 +123,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-02</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/29b27596/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/license.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/license.html b/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/license.html
index 096663a..8b1a6b7 100644
--- a/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/license.html
+++ b/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/license.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="20171201" />
+    <meta name="Date-Revision-yyyymmdd" content="20171202" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Archetype builder &#x2013; Project Licenses</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -326,7 +326,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-02</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/29b27596/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/mail-lists.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/mail-lists.html b/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/mail-lists.html
index 31e26eb..e43e7c4 100644
--- a/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/mail-lists.html
+++ b/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/mail-lists.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="20171201" />
+    <meta name="Date-Revision-yyyymmdd" content="20171202" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Archetype builder &#x2013; Project Mailing Lists</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -176,7 +176,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-02</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/29b27596/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/plugin-management.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/plugin-management.html b/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/plugin-management.html
index 7a17368..20cc2a6 100644
--- a/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/plugin-management.html
+++ b/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/plugin-management.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="20171201" />
+    <meta name="Date-Revision-yyyymmdd" content="20171202" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Archetype builder &#x2013; Project Plugin Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -271,7 +271,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-02</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/29b27596/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/plugins.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/plugins.html b/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/plugins.html
index 4b299a2..b236763 100644
--- a/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/plugins.html
+++ b/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/plugins.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="20171201" />
+    <meta name="Date-Revision-yyyymmdd" content="20171202" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Archetype builder &#x2013; Project Plugins</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -218,7 +218,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-02</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/29b27596/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/project-info.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/project-info.html b/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/project-info.html
index ff3826b..136f1f6 100644
--- a/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/project-info.html
+++ b/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/project-info.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="20171201" />
+    <meta name="Date-Revision-yyyymmdd" content="20171202" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Archetype builder &#x2013; Project Information</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -167,7 +167,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-02</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/29b27596/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/project-summary.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/project-summary.html b/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/project-summary.html
index b0b354b..3b525c5 100644
--- a/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/project-summary.html
+++ b/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/project-summary.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="20171201" />
+    <meta name="Date-Revision-yyyymmdd" content="20171202" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Archetype builder &#x2013; Project Summary</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -163,7 +163,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-02</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/29b27596/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/source-repository.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/source-repository.html b/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/source-repository.html
index 6361d47..74c66c5 100644
--- a/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/source-repository.html
+++ b/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/source-repository.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="20171201" />
+    <meta name="Date-Revision-yyyymmdd" content="20171202" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Archetype builder &#x2013; Source Code Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -134,7 +134,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-02</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/29b27596/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/team-list.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/team-list.html b/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/team-list.html
index 981c8be..a32d255 100644
--- a/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/team-list.html
+++ b/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/team-list.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="20171201" />
+    <meta name="Date-Revision-yyyymmdd" content="20171202" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Archetype builder &#x2013; Project Team</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -547,7 +547,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-02</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/29b27596/hbase-build-configuration/hbase-archetypes/hbase-client-project/checkstyle.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/hbase-client-project/checkstyle.html b/hbase-build-configuration/hbase-archetypes/hbase-client-project/checkstyle.html
index 704146f..71ff079 100644
--- a/hbase-build-configuration/hbase-archetypes/hbase-client-project/checkstyle.html
+++ b/hbase-build-configuration/hbase-archetypes/hbase-client-project/checkstyle.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="20171201" />
+    <meta name="Date-Revision-yyyymmdd" content="20171202" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Exemplar for hbase-client archetype &#x2013; Checkstyle Results</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -244,7 +244,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-02</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/29b27596/hbase-build-configuration/hbase-archetypes/hbase-client-project/dependencies.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/hbase-client-project/dependencies.html b/hbase-build-configuration/hbase-archetypes/hbase-client-project/dependencies.html
index dca002a..6003316 100644
--- a/hbase-build-configuration/hbase-archetypes/hbase-client-project/dependencies.html
+++ b/hbase-build-configuration/hbase-archetypes/hbase-client-project/dependencies.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="20171201" />
+    <meta name="Date-Revision-yyyymmdd" content="20171202" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Exemplar for hbase-client archetype &#x2013; Project Dependencies</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -954,63 +954,63 @@
 <tr class="a">
 <td>org.eclipse.jetty</td>
 <td><a class="externalLink" href="http://www.eclipse.org/jetty">jetty-http</a></td>
-<td>9.4.6.v20170531</td>
+<td>9.3.19.v20170502</td>
 <td>-</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache Software License - Version 2.0</a>-<a class="externalLink" href="http://www.eclipse.org/org/documents/epl-v10.php">Eclipse Public License - Version 1.0</a></td></tr>
 <tr class="b">
 <td>org.eclipse.jetty</td>
 <td><a class="externalLink" href="http://www.eclipse.org/jetty">jetty-io</a></td>
-<td>9.4.6.v20170531</td>
+<td>9.3.19.v20170502</td>
 <td>-</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache Software License - Version 2.0</a>-<a class="externalLink" href="http://www.eclipse.org/org/documents/epl-v10.php">Eclipse Public License - Version 1.0</a></td></tr>
 <tr class="a">
 <td>org.eclipse.jetty</td>
 <td><a class="externalLink" href="http://www.eclipse.org/jetty">jetty-security</a></td>
-<td>9.4.6.v20170531</td>
+<td>9.3.19.v20170502</td>
 <td>-</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache Software License - Version 2.0</a>-<a class="externalLink" href="http://www.eclipse.org/org/documents/epl-v10.php">Eclipse Public License - Version 1.0</a></td></tr>
 <tr class="b">
 <td>org.eclipse.jetty</td>
 <td><a class="externalLink" href="http://www.eclipse.org/jetty">jetty-server</a></td>
-<td>9.4.6.v20170531</td>
+<td>9.3.19.v20170502</td>
 <td>-</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache Software License - Version 2.0</a>-<a class="externalLink" href="http://www.eclipse.org/org/documents/epl-v10.php">Eclipse Public License - Version 1.0</a></td></tr>
 <tr class="a">
 <td>org.eclipse.jetty</td>
 <td><a class="externalLink" href="http://www.eclipse.org/jetty">jetty-servlet</a></td>
-<td>9.4.6.v20170531</td>
+<td>9.3.19.v20170502</td>
 <td>-</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache Software License - Version 2.0</a>-<a class="externalLink" href="http://www.eclipse.org/org/documents/epl-v10.php">Eclipse Public License - Version 1.0</a></td></tr>
 <tr class="b">
 <td>org.eclipse.jetty</td>
 <td><a class="externalLink" href="http://www.eclipse.org/jetty">jetty-util</a></td>
-<td>9.4.6.v20170531</td>
+<td>9.3.19.v20170502</td>
 <td>-</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache Software License - Version 2.0</a>-<a class="externalLink" href="http://www.eclipse.org/org/documents/epl-v10.php">Eclipse Public License - Version 1.0</a></td></tr>
 <tr class="a">
 <td>org.eclipse.jetty</td>
 <td><a class="externalLink" href="http://www.eclipse.org/jetty">jetty-util-ajax</a></td>
-<td>9.4.6.v20170531</td>
+<td>9.3.19.v20170502</td>
 <td>-</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache Software License - Version 2.0</a>-<a class="externalLink" href="http://www.eclipse.org/org/documents/epl-v10.php">Eclipse Public License - Version 1.0</a></td></tr>
 <tr class="b">
 <td>org.eclipse.jetty</td>
 <td><a class="externalLink" href="http://www.eclipse.org/jetty">jetty-webapp</a></td>
-<td>9.4.6.v20170531</td>
+<td>9.3.19.v20170502</td>
 <td>-</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache Software License - Version 2.0</a>-<a class="externalLink" href="http://www.eclipse.org/org/documents/epl-v10.php">Eclipse Public License - Version 1.0</a></td></tr>
 <tr class="a">
 <td>org.eclipse.jetty</td>
 <td><a class="externalLink" href="http://www.eclipse.org/jetty">jetty-xml</a></td>
-<td>9.4.6.v20170531</td>
+<td>9.3.19.v20170502</td>
 <td>-</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache Software License - Version 2.0</a>-<a class="externalLink" href="http://www.eclipse.org/org/documents/epl-v10.php">Eclipse Public License - Version 1.0</a></td></tr>
@@ -2260,7 +2260,7 @@ The following provides more details on the included cryptographic software:
 <p><b>URL: </b><a class="externalLink" href="http://hbase.apache.org/hbase-build-configuration/hbase-http">http://hbase.apache.org/hbase-build-configuration/hbase-http</a></p>
 <p><b>Project Licenses: </b><a class="externalLink" href="https://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></p></td></tr></table></div>
 <ul>
-<li>org.eclipse.jetty:jetty-util:jar:9.4.6.v20170531 (test) <img id="_img219" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep218', '_img219' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep218" style="display:none">
+<li>org.eclipse.jetty:jetty-util:jar:9.3.19.v20170502 (test) <img id="_img219" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep218', '_img219' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep218" style="display:none">
 <table border="0" class="table table-striped">
 <tr class="a">
 <th>Jetty :: Utilities</th></tr>
@@ -2269,7 +2269,7 @@ The following provides more details on the included cryptographic software:
 <p><b>Description: </b>Utility classes for Jetty</p>
 <p><b>URL: </b><a class="externalLink" href="http://www.eclipse.org/jetty">http://www.eclipse.org/jetty</a></p>
 <p><b>Project Licenses: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache Software License - Version 2.0</a>, <a class="externalLink" href="http://www.eclipse.org/org/documents/epl-v10.php">Eclipse Public License - Version 1.0</a></p></td></tr></table></div></li>
-<li>org.eclipse.jetty:jetty-util-ajax:jar:9.4.6.v20170531 (test) <img id="_img221" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep220', '_img221' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep220" style="display:none">
+<li>org.eclipse.jetty:jetty-util-ajax:jar:9.3.19.v20170502 (test) <img id="_img221" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep220', '_img221' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep220" style="display:none">
 <table border="0" class="table table-striped">
 <tr class="a">
 <th>Jetty :: Utilities :: Ajax(JSON)</th></tr>
@@ -2278,16 +2278,16 @@ The following provides more details on the included cryptographic software:
 <p><b>Description: </b>JSON/Ajax Utility classes for Jetty</p>
 <p><b>URL: </b><a class="externalLink" href="http://www.eclipse.org/jetty">http://www.eclipse.org/jetty</a></p>
 <p><b>Project Licenses: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache Software License - Version 2.0</a>, <a class="externalLink" href="http://www.eclipse.org/org/documents/epl-v10.php">Eclipse Public License - Version 1.0</a></p></td></tr></table></div></li>
-<li>org.eclipse.jetty:jetty-http:jar:9.4.6.v20170531 (test) <img id="_img223" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep222', '_img223' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep222" style="display:none">
+<li>org.eclipse.jetty:jetty-http:jar:9.3.19.v20170502 (test) <img id="_img223" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep222', '_img223' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep222" style="display:none">
 <table border="0" class="table table-striped">
 <tr class="a">
 <th>Jetty :: Http Utility</th></tr>
 <tr class="b">
 <td>
-<p><b>Description: </b>The Eclipse Jetty Project</p>
+<p><b>Description: </b>Administrative parent pom for Jetty modules</p>
 <p><b>URL: </b><a class="externalLink" href="http://www.eclipse.org/jetty">http://www.eclipse.org/jetty</a></p>
 <p><b>Project Licenses: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache Software License - Version 2.0</a>, <a class="externalLink" href="http://www.eclipse.org/org/documents/epl-v10.php">Eclipse Public License - Version 1.0</a></p></td></tr></table></div></li>
-<li>org.eclipse.jetty:jetty-security:jar:9.4.6.v20170531 (test) <img id="_img225" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep224', '_img225' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep224" style="display:none">
+<li>org.eclipse.jetty:jetty-security:jar:9.3.19.v20170502 (test) <img id="_img225" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep224', '_img225' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep224" style="display:none">
 <table border="0" class="table table-striped">
 <tr class="a">
 <th>Jetty :: Security</th></tr>
@@ -2481,7 +2481,7 @@ The following provides more details on the included cryptographic software:
 <p><b>Description: </b>HBase Metrics Implementation</p>
 <p><b>URL: </b><a class="externalLink" href="http://hbase.apache.org/hbase-build-configuration/hbase-metrics">http://hbase.apache.org/hbase-build-configuration/hbase-metrics</a></p>
 <p><b>Project Licenses: </b><a class="externalLink" href="https://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></p></td></tr></table></div></li>
-<li>org.eclipse.jetty:jetty-server:jar:9.4.6.v20170531 (test) <img id="_img267" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep266', '_img267' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep266" style="display:none">
+<li>org.eclipse.jetty:jetty-server:jar:9.3.19.v20170502 (test) <img id="_img267" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep266', '_img267' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep266" style="display:none">
 <table border="0" class="table table-striped">
 <tr class="a">
 <th>Jetty :: Server Core</th></tr>
@@ -2491,16 +2491,16 @@ The following provides more details on the included cryptographic software:
 <p><b>URL: </b><a class="externalLink" href="http://www.eclipse.org/jetty">http://www.eclipse.org/jetty</a></p>
 <p><b>Project Licenses: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache Software License - Version 2.0</a>, <a class="externalLink" href="http://www.eclipse.org/org/documents/epl-v10.php">Eclipse Public License - Version 1.0</a></p></td></tr></table></div>
 <ul>
-<li>org.eclipse.jetty:jetty-io:jar:9.4.6.v20170531 (test) <img id="_img269" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep268', '_img269' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep268" style="display:none">
+<li>org.eclipse.jetty:jetty-io:jar:9.3.19.v20170502 (test) <img id="_img269" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep268', '_img269' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep268" style="display:none">
 <table border="0" class="table table-striped">
 <tr class="a">
 <th>Jetty :: IO Utility</th></tr>
 <tr class="b">
 <td>
-<p><b>Description: </b>The Eclipse Jetty Project</p>
+<p><b>Description: </b>Administrative parent pom for Jetty modules</p>
 <p><b>URL: </b><a class="externalLink" href="http://www.eclipse.org/jetty">http://www.eclipse.org/jetty</a></p>
 <p><b>Project Licenses: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache Software License - Version 2.0</a>, <a class="externalLink" href="http://www.eclipse.org/org/documents/epl-v10.php">Eclipse Public License - Version 1.0</a></p></td></tr></table></div></li></ul></li>
-<li>org.eclipse.jetty:jetty-servlet:jar:9.4.6.v20170531 (test) <img id="_img271" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep270', '_img271' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep270" style="display:none">
+<li>org.eclipse.jetty:jetty-servlet:jar:9.3.19.v20170502 (test) <img id="_img271" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep270', '_img271' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep270" style="display:none">
 <table border="0" class="table table-striped">
 <tr class="a">
 <th>Jetty :: Servlet Handling</th></tr>
@@ -2509,7 +2509,7 @@ The following provides more details on the included cryptographic software:
 <p><b>Description: </b>Jetty Servlet Container</p>
 <p><b>URL: </b><a class="externalLink" href="http://www.eclipse.org/jetty">http://www.eclipse.org/jetty</a></p>
 <p><b>Project Licenses: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache Software License - Version 2.0</a>, <a class="externalLink" href="http://www.eclipse.org/org/documents/epl-v10.php">Eclipse Public License - Version 1.0</a></p></td></tr></table></div></li>
-<li>org.eclipse.jetty:jetty-webapp:jar:9.4.6.v20170531 (test) <img id="_img273" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep272', '_img273' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep272" style="display:none">
+<li>org.eclipse.jetty:jetty-webapp:jar:9.3.19.v20170502 (test) <img id="_img273" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep272', '_img273' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep272" style="display:none">
 <table border="0" class="table table-striped">
 <tr class="a">
 <th>Jetty :: Webapp Application Support</th></tr>
@@ -2519,7 +2519,7 @@ The following provides more details on the included cryptographic software:
 <p><b>URL: </b><a class="externalLink" href="http://www.eclipse.org/jetty">http://www.eclipse.org/jetty</a></p>
 <p><b>Project Licenses: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache Software License - Version 2.0</a>, <a class="externalLink" href="http://www.eclipse.org/org/documents/epl-v10.php">Eclipse Public License - Version 1.0</a></p></td></tr></table></div>
 <ul>
-<li>org.eclipse.jetty:jetty-xml:jar:9.4.6.v20170531 (test) <img id="_img275" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep274', '_img275' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep274" style="display:none">
+<li>org.eclipse.jetty:jetty-xml:jar:9.3.19.v20170502 (test) <img id="_img275" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep274', '_img275' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep274" style="display:none">
 <table border="0" class="table table-striped">
 <tr class="a">
 <th>Jetty :: XML utilities</th></tr>
@@ -3522,7 +3522,7 @@ The following provides more details on the included cryptographic software:
 <td>No</td></tr>
 <tr class="a">
 <td>hbase-hadoop2-compat-3.0.0-SNAPSHOT-tests.jar</td>
-<td>35.1 kB</td>
+<td>35.2 kB</td>
 <td>-</td>
 <td>-</td>
 <td>-</td>
@@ -3764,44 +3764,44 @@ The following provides more details on the included cryptographic software:
 <td>Yes</td>
 <td>No</td></tr>
 <tr class="b">
-<td>jetty-http-9.4.6.v20170531.jar</td>
-<td>163.9 kB</td>
-<td>99</td>
-<td>81</td>
+<td>jetty-http-9.3.19.v20170502.jar</td>
+<td>150.8 kB</td>
+<td>91</td>
+<td>73</td>
 <td>2</td>
 <td>1.8</td>
 <td>Yes</td>
 <td>No</td></tr>
 <tr class="a">
-<td>jetty-io-9.4.6.v20170531.jar</td>
-<td>128.8 kB</td>
-<td>102</td>
-<td>89</td>
+<td>jetty-io-9.3.19.v20170502.jar</td>
+<td>122.6 kB</td>
+<td>97</td>
+<td>84</td>
 <td>2</td>
 <td>1.8</td>
 <td>Yes</td>
 <td>No</td></tr>
 <tr class="b">
-<td>jetty-security-9.4.6.v20170531.jar</td>
-<td>93.1 kB</td>
-<td>65</td>
-<td>52</td>
+<td>jetty-security-9.3.19.v20170502.jar</td>
+<td>95.8 kB</td>
+<td>67</td>
+<td>54</td>
 <td>2</td>
 <td>1.8</td>
 <td>Yes</td>
 <td>No</td></tr>
 <tr class="a">
-<td>jetty-server-9.4.6.v20170531.jar</td>
-<td>579.8 kB</td>
-<td>300</td>
-<td>281</td>
-<td>7</td>
+<td>jetty-server-9.3.19.v20170502.jar</td>
+<td>523.3 kB</td>
+<td>261</td>
+<td>241</td>
+<td>8</td>
 <td>1.8</td>
 <td>Yes</td>
 <td>No</td></tr>
 <tr class="b">
-<td>jetty-servlet-9.4.6.v20170531.jar</td>
-<td>110.5 kB</td>
+<td>jetty-servlet-9.3.19.v20170502.jar</td>
+<td>119.1 kB</td>
 <td>62</td>
 <td>48</td>
 <td>3</td>
@@ -3809,16 +3809,16 @@ The following provides more details on the included cryptographic software:
 <td>Yes</td>
 <td>No</td></tr>
 <tr class="a">
-<td>jetty-util-9.4.6.v20170531.jar</td>
-<td>457.7 kB</td>
-<td>284</td>
-<td>261</td>
+<td>jetty-util-9.3.19.v20170502.jar</td>
+<td>450.8 kB</td>
+<td>280</td>
+<td>257</td>
 <td>11</td>
 <td>1.8</td>
 <td>Yes</td>
 <td>No</td></tr>
 <tr class="b">
-<td>jetty-util-ajax-9.4.6.v20170531.jar</td>
+<td>jetty-util-ajax-9.3.19.v20170502.jar</td>
 <td>38.7 kB</td>
 <td>37</td>
 <td>24</td>
@@ -3827,17 +3827,17 @@ The following provides more details on the included cryptographic software:
 <td>Yes</td>
 <td>No</td></tr>
 <tr class="a">
-<td>jetty-webapp-9.4.6.v20170531.jar</td>
-<td>121.4 kB</td>
-<td>59</td>
-<td>46</td>
+<td>jetty-webapp-9.3.19.v20170502.jar</td>
+<td>113.4 kB</td>
+<td>55</td>
+<td>42</td>
 <td>1</td>
 <td>1.8</td>
 <td>Yes</td>
 <td>No</td></tr>
 <tr class="b">
-<td>jetty-xml-9.4.6.v20170531.jar</td>
-<td>50.4 kB</td>
+<td>jetty-xml-9.3.19.v20170502.jar</td>
+<td>50.6 kB</td>
 <td>29</td>
 <td>13</td>
 <td>1</td>
@@ -4107,10 +4107,10 @@ The following provides more details on the included cryptographic software:
 <th>Sealed</th></tr>
 <tr class="b">
 <td>153</td>
-<td>86.8 MB</td>
-<td>42457</td>
-<td>38363</td>
-<td>1575</td>
+<td>86.7 MB</td>
+<td>42399</td>
+<td>38304</td>
+<td>1576</td>
 <td>1.8</td>
 <td>123</td>
 <td>1</td></tr>
@@ -4125,10 +4125,10 @@ The following provides more details on the included cryptographic software:
 <td>compile: 1</td></tr>
 <tr class="b">
 <td>test: 70</td>
-<td>test: 42 MB</td>
-<td>test: 14237</td>
-<td>test: 13009</td>
-<td>test: 515</td>
+<td>test: 41.9 MB</td>
+<td>test: 14179</td>
+<td>test: 12950</td>
+<td>test: 516</td>
 <td>-</td>
 <td>test: 51</td>
 <td>-</td></tr></table></div>
@@ -4144,7 +4144,7 @@ The following provides more details on the included cryptographic software:
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-02</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/29b27596/hbase-build-configuration/hbase-archetypes/hbase-client-project/dependency-convergence.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/hbase-client-project/dependency-convergence.html b/hbase-build-configuration/hbase-archetypes/hbase-client-project/dependency-convergence.html
index 5db2be2..0a58bbe 100644
--- a/hbase-build-configuration/hbase-archetypes/hbase-client-project/dependency-convergence.html
+++ b/hbase-build-configuration/hbase-archetypes/hbase-client-project/dependency-convergence.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="20171201" />
+    <meta name="Date-Revision-yyyymmdd" content="20171202" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Exemplar for hbase-client archetype &#x2013; Reactor Dependency Convergence</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -838,7 +838,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-02</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/29b27596/hbase-build-configuration/hbase-archetypes/hbase-client-project/dependency-info.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/hbase-client-project/dependency-info.html b/hbase-build-configuration/hbase-archetypes/hbase-client-project/dependency-info.html
index 35a73c1..fbd7c1c 100644
--- a/hbase-build-configuration/hbase-archetypes/hbase-client-project/dependency-info.html
+++ b/hbase-build-configuration/hbase-archetypes/hbase-client-project/dependency-info.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="20171201" />
+    <meta name="Date-Revision-yyyymmdd" content="20171202" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Exemplar for hbase-client archetype &#x2013; Dependency Information</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -147,7 +147,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-02</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/29b27596/hbase-build-configuration/hbase-archetypes/hbase-client-project/dependency-management.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/hbase-client-project/dependency-management.html b/hbase-build-configuration/hbase-archetypes/hbase-client-project/dependency-management.html
index ba37275..a03716a 100644
--- a/hbase-build-configuration/hbase-archetypes/hbase-client-project/dependency-management.html
+++ b/hbase-build-configuration/hbase-archetypes/hbase-client-project/dependency-management.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="20171201" />
+    <meta name="Date-Revision-yyyymmdd" content="20171202" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Exemplar for hbase-client archetype &#x2013; Project Dependency Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -545,19 +545,19 @@
 <tr class="a">
 <td>org.eclipse.jetty</td>
 <td><a class="externalLink" href="http://www.eclipse.org/jetty">jetty-http</a></td>
-<td>9.4.6.v20170531</td>
+<td>9.3.19.v20170502</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache Software License - Version 2.0</a>, <a class="externalLink" href="http://www.eclipse.org/org/documents/epl-v10.php">Eclipse Public License - Version 1.0</a></td></tr>
 <tr class="b">
 <td>org.eclipse.jetty</td>
 <td><a class="externalLink" href="http://www.eclipse.org/jetty">jetty-io</a></td>
-<td>9.4.6.v20170531</td>
+<td>9.3.19.v20170502</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache Software License - Version 2.0</a>, <a class="externalLink" href="http://www.eclipse.org/org/documents/epl-v10.php">Eclipse Public License - Version 1.0</a></td></tr>
 <tr class="a">
 <td>org.eclipse.jetty</td>
 <td><a class="externalLink" href="http://www.eclipse.org/jetty">jetty-jmx</a></td>
-<td>9.4.6.v20170531</td>
+<td>9.3.19.v20170502</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache Software License - Version 2.0</a>, <a class="externalLink" href="http://www.eclipse.org/org/documents/epl-v10.php">Eclipse Public License - Version 1.0</a></td></tr>
 <tr class="b">
@@ -569,37 +569,37 @@
 <tr class="a">
 <td>org.eclipse.jetty</td>
 <td><a class="externalLink" href="http://www.eclipse.org/jetty">jetty-security</a></td>
-<td>9.4.6.v20170531</td>
+<td>9.3.19.v20170502</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache Software License - Version 2.0</a>, <a class="externalLink" href="http://www.eclipse.org/org/documents/epl-v10.php">Eclipse Public License - Version 1.0</a></td></tr>
 <tr class="b">
 <td>org.eclipse.jetty</td>
 <td><a class="externalLink" href="http://www.eclipse.org/jetty">jetty-server</a></td>
-<td>9.4.6.v20170531</td>
+<td>9.3.19.v20170502</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache Software License - Version 2.0</a>, <a class="externalLink" href="http://www.eclipse.org/org/documents/epl-v10.php">Eclipse Public License - Version 1.0</a></td></tr>
 <tr class="a">
 <td>org.eclipse.jetty</td>
 <td><a class="externalLink" href="http://www.eclipse.org/jetty">jetty-servlet</a></td>
-<td>9.4.6.v20170531</td>
+<td>9.3.19.v20170502</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache Software License - Version 2.0</a>, <a class="externalLink" href="http://www.eclipse.org/org/documents/epl-v10.php">Eclipse Public License - Version 1.0</a></td></tr>
 <tr class="b">
 <td>org.eclipse.jetty</td>
 <td><a class="externalLink" href="http://www.eclipse.org/jetty">jetty-util</a></td>
-<td>9.4.6.v20170531</td>
+<td>9.3.19.v20170502</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache Software License - Version 2.0</a>, <a class="externalLink" href="http://www.eclipse.org/org/documents/epl-v10.php">Eclipse Public License - Version 1.0</a></td></tr>
 <tr class="a">
 <td>org.eclipse.jetty</td>
 <td><a class="externalLink" href="http://www.eclipse.org/jetty">jetty-util-ajax</a></td>
-<td>9.4.6.v20170531</td>
+<td>9.3.19.v20170502</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache Software License - Version 2.0</a>, <a class="externalLink" href="http://www.eclipse.org/org/documents/epl-v10.php">Eclipse Public License - Version 1.0</a></td></tr>
 <tr class="b">
 <td>org.eclipse.jetty</td>
 <td><a class="externalLink" href="http://www.eclipse.org/jetty">jetty-webapp</a></td>
-<td>9.4.6.v20170531</td>
+<td>9.3.19.v20170502</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache Software License - Version 2.0</a>, <a class="externalLink" href="http://www.eclipse.org/org/documents/epl-v10.php">Eclipse Public License - Version 1.0</a></td></tr>
 <tr class="a">
@@ -804,7 +804,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-02</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/29b27596/hbase-build-configuration/hbase-archetypes/hbase-client-project/index.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/hbase-client-project/index.html b/hbase-build-configuration/hbase-archetypes/hbase-client-project/index.html
index be3a1fd..2e40359 100644
--- a/hbase-build-configuration/hbase-archetypes/hbase-client-project/index.html
+++ b/hbase-build-configuration/hbase-archetypes/hbase-client-project/index.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="20171201" />
+    <meta name="Date-Revision-yyyymmdd" content="20171202" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Exemplar for hbase-client archetype &#x2013; About</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -119,7 +119,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-02</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/29b27596/hbase-build-configuration/hbase-archetypes/hbase-client-project/integration.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/hbase-client-project/integration.html b/hbase-build-configuration/hbase-archetypes/hbase-client-project/integration.html
index be42ae4..6c93679 100644
--- a/hbase-build-configuration/hbase-archetypes/hbase-client-project/integration.html
+++ b/hbase-build-configuration/hbase-archetypes/hbase-client-project/integration.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="20171201" />
+    <meta name="Date-Revision-yyyymmdd" content="20171202" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Exemplar for hbase-client archetype &#x2013; CI Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -126,7 +126,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-02</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/29b27596/hbase-build-configuration/hbase-archetypes/hbase-client-project/issue-tracking.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/hbase-client-project/issue-tracking.html b/hbase-build-configuration/hbase-archetypes/hbase-client-project/issue-tracking.html
index bdbe0f4..ee9c100 100644
--- a/hbase-build-configuration/hbase-archetypes/hbase-client-project/issue-tracking.html
+++ b/hbase-build-configuration/hbase-archetypes/hbase-client-project/issue-tracking.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="20171201" />
+    <meta name="Date-Revision-yyyymmdd" content="20171202" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Exemplar for hbase-client archetype &#x2013; Issue Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -123,7 +123,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-02</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/29b27596/hbase-build-configuration/hbase-archetypes/hbase-client-project/license.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/hbase-client-project/license.html b/hbase-build-configuration/hbase-archetypes/hbase-client-project/license.html
index 2225d6b..af8b9cf 100644
--- a/hbase-build-configuration/hbase-archetypes/hbase-client-project/license.html
+++ b/hbase-build-configuration/hbase-archetypes/hbase-client-project/license.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="20171201" />
+    <meta name="Date-Revision-yyyymmdd" content="20171202" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Exemplar for hbase-client archetype &#x2013; Project Licenses</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -326,7 +326,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-02</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/29b27596/hbase-build-configuration/hbase-archetypes/hbase-client-project/mail-lists.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/hbase-client-project/mail-lists.html b/hbase-build-configuration/hbase-archetypes/hbase-client-project/mail-lists.html
index bf9c2b4..afe6a90 100644
--- a/hbase-build-configuration/hbase-archetypes/hbase-client-project/mail-lists.html
+++ b/hbase-build-configuration/hbase-archetypes/hbase-client-project/mail-lists.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="20171201" />
+    <meta name="Date-Revision-yyyymmdd" content="20171202" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Exemplar for hbase-client archetype &#x2013; Project Mailing Lists</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -176,7 +176,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-02</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/29b27596/hbase-build-configuration/hbase-archetypes/hbase-client-project/plugin-management.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/hbase-client-project/plugin-management.html b/hbase-build-configuration/hbase-archetypes/hbase-client-project/plugin-management.html
index a706447..0191301 100644
--- a/hbase-build-configuration/hbase-archetypes/hbase-client-project/plugin-management.html
+++ b/hbase-build-configuration/hbase-archetypes/hbase-client-project/plugin-management.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="20171201" />
+    <meta name="Date-Revision-yyyymmdd" content="20171202" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Exemplar for hbase-client archetype &#x2013; Project Plugin Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -271,7 +271,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-02</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/29b27596/hbase-build-configuration/hbase-archetypes/hbase-client-project/plugins.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/hbase-client-project/plugins.html b/hbase-build-configuration/hbase-archetypes/hbase-client-project/plugins.html
index d569287..967ed67 100644
--- a/hbase-build-configuration/hbase-archetypes/hbase-client-project/plugins.html
+++ b/hbase-build-configuration/hbase-archetypes/hbase-client-project/plugins.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="20171201" />
+    <meta name="Date-Revision-yyyymmdd" content="20171202" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Exemplar for hbase-client archetype &#x2013; Project Plugins</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -226,7 +226,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-02</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/29b27596/hbase-build-configuration/hbase-archetypes/hbase-client-project/project-info.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/hbase-client-project/project-info.html b/hbase-build-configuration/hbase-archetypes/hbase-client-project/project-info.html
index eca336e..7f55382 100644
--- a/hbase-build-configuration/hbase-archetypes/hbase-client-project/project-info.html
+++ b/hbase-build-configuration/hbase-archetypes/hbase-client-project/project-info.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="20171201" />
+    <meta name="Date-Revision-yyyymmdd" content="20171202" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Exemplar for hbase-client archetype &#x2013; Project Information</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -167,7 +167,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-02</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/29b27596/hbase-build-configuration/hbase-archetypes/hbase-client-project/project-reports.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/hbase-client-project/project-reports.html b/hbase-build-configuration/hbase-archetypes/hbase-client-project/project-reports.html
index d9589a4..c07fc98 100644
--- a/hbase-build-configuration/hbase-archetypes/hbase-client-project/project-reports.html
+++ b/hbase-build-configuration/hbase-archetypes/hbase-client-project/project-reports.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="20171201" />
+    <meta name="Date-Revision-yyyymmdd" content="20171202" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Exemplar for hbase-client archetype &#x2013; Generated Reports</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -128,7 +128,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-02</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/29b27596/hbase-build-configuration/hbase-archetypes/hbase-client-project/project-summary.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/hbase-client-project/project-summary.html b/hbase-build-configuration/hbase-archetypes/hbase-client-project/project-summary.html
index 742e491..ad2c7e7 100644
--- a/hbase-build-configuration/hbase-archetypes/hbase-client-project/project-summary.html
+++ b/hbase-build-configuration/hbase-archetypes/hbase-client-project/project-summary.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="20171201" />
+    <meta name="Date-Revision-yyyymmdd" content="20171202" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Exemplar for hbase-client archetype &#x2013; Project Summary</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -166,7 +166,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-02</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/29b27596/hbase-build-configuration/hbase-archetypes/hbase-client-project/source-repository.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/hbase-client-project/source-repository.html b/hbase-build-configuration/hbase-archetypes/hbase-client-project/source-repository.html
index 59a87fc..b3bf9b1 100644
--- a/hbase-build-configuration/hbase-archetypes/hbase-client-project/source-repository.html
+++ b/hbase-build-configuration/hbase-archetypes/hbase-client-project/source-repository.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="20171201" />
+    <meta name="Date-Revision-yyyymmdd" content="20171202" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Exemplar for hbase-client archetype &#x2013; Source Code Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -134,7 +134,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-02</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/29b27596/hbase-build-configuration/hbase-archetypes/hbase-client-project/team-list.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/hbase-client-project/team-list.html b/hbase-build-configuration/hbase-archetypes/hbase-client-project/team-list.html
index d1ce90f..0eb5980 100644
--- a/hbase-build-configuration/hbase-archetypes/hbase-client-project/team-list.html
+++ b/hbase-build-configuration/hbase-archetypes/hbase-client-project/team-list.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="20171201" />
+    <meta name="Date-Revision-yyyymmdd" content="20171202" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Exemplar for hbase-client archetype &#x2013; Project Team</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -547,7 +547,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-02</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/29b27596/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/checkstyle.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/checkstyle.html b/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/checkstyle.html
index a040909..4634bed 100644
--- a/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/checkstyle.html
+++ b/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/checkstyle.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="20171201" />
+    <meta name="Date-Revision-yyyymmdd" content="20171202" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Exemplar for hbase-shaded-client archetype &#x2013; Checkstyle Results</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -244,7 +244,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-02</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/29b27596/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/dependencies.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/dependencies.html b/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/dependencies.html
index f6ea2fc..c631df5 100644
--- a/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/dependencies.html
+++ b/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/dependencies.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="20171201" />
+    <meta name="Date-Revision-yyyymmdd" content="20171202" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Exemplar for hbase-shaded-client archetype &#x2013; Project Dependencies</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -960,63 +960,63 @@
 <tr class="b">
 <td>org.eclipse.jetty</td>
 <td><a class="externalLink" href="http://www.eclipse.org/jetty">jetty-http</a></td>
-<td>9.4.6.v20170531</td>
+<td>9.3.19.v20170502</td>
 <td>-</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache Software License - Version 2.0</a>-<a class="externalLink" href="http://www.eclipse.org/org/documents/epl-v10.php">Eclipse Public License - Version 1.0</a></td></tr>
 <tr class="a">
 <td>org.eclipse.jetty</td>
 <td><a class="externalLink" href="http://www.eclipse.org/jetty">jetty-io</a></td>
-<td>9.4.6.v20170531</td>
+<td>9.3.19.v20170502</td>
 <td>-</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache Software License - Version 2.0</a>-<a class="externalLink" href="http://www.eclipse.org/org/documents/epl-v10.php">Eclipse Public License - Version 1.0</a></td></tr>
 <tr class="b">
 <td>org.eclipse.jetty</td>
 <td><a class="externalLink" href="http://www.eclipse.org/jetty">jetty-security</a></td>
-<td>9.4.6.v20170531</td>
+<td>9.3.19.v20170502</td>
 <td>-</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache Software License - Version 2.0</a>-<a class="externalLink" href="http://www.eclipse.org/org/documents/epl-v10.php">Eclipse Public License - Version 1.0</a></td></tr>
 <tr class="a">
 <td>org.eclipse.jetty</td>
 <td><a class="externalLink" href="http://www.eclipse.org/jetty">jetty-server</a></td>
-<td>9.4.6.v20170531</td>
+<td>9.3.19.v20170502</td>
 <td>-</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache Software License - Version 2.0</a>-<a class="externalLink" href="http://www.eclipse.org/org/documents/epl-v10.php">Eclipse Public License - Version 1.0</a></td></tr>
 <tr class="b">
 <td>org.eclipse.jetty</td>
 <td><a class="externalLink" href="http://www.eclipse.org/jetty">jetty-servlet</a></td>
-<td>9.4.6.v20170531</td>
+<td>9.3.19.v20170502</td>
 <td>-</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache Software License - Version 2.0</a>-<a class="externalLink" href="http://www.eclipse.org/org/documents/epl-v10.php">Eclipse Public License - Version 1.0</a></td></tr>
 <tr class="a">
 <td>org.eclipse.jetty</td>
 <td><a class="externalLink" href="http://www.eclipse.org/jetty">jetty-util</a></td>
-<td>9.4.6.v20170531</td>
+<td>9.3.19.v20170502</td>
 <td>-</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache Software License - Version 2.0</a>-<a class="externalLink" href="http://www.eclipse.org/org/documents/epl-v10.php">Eclipse Public License - Version 1.0</a></td></tr>
 <tr class="b">
 <td>org.eclipse.jetty</td>
 <td><a class="externalLink" href="http://www.eclipse.org/jetty">jetty-util-ajax</a></td>
-<td>9.4.6.v20170531</td>
+<td>9.3.19.v20170502</td>
 <td>-</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache Software License - Version 2.0</a>-<a class="externalLink" href="http://www.eclipse.org/org/documents/epl-v10.php">Eclipse Public License - Version 1.0</a></td></tr>
 <tr class="a">
 <td>org.eclipse.jetty</td>
 <td><a class="externalLink" href="http://www.eclipse.org/jetty">jetty-webapp</a></td>
-<td>9.4.6.v20170531</td>
+<td>9.3.19.v20170502</td>
 <td>-</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache Software License - Version 2.0</a>-<a class="externalLink" href="http://www.eclipse.org/org/documents/epl-v10.php">Eclipse Public License - Version 1.0</a></td></tr>
 <tr class="b">
 <td>org.eclipse.jetty</td>
 <td><a class="externalLink" href="http://www.eclipse.org/jetty">jetty-xml</a></td>
-<td>9.4.6.v20170531</td>
+<td>9.3.19.v20170502</td>
 <td>-</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache Software License - Version 2.0</a>-<a class="externalLink" href="http://www.eclipse.org/org/documents/epl-v10.php">Eclipse Public License - Version 1.0</a></td></tr>
@@ -1528,7 +1528,7 @@ The following provides more details on the included cryptographic software:
 <p><b>URL: </b><a class="externalLink" href="http://hbase.apache.org/hbase-build-configuration/hbase-http">http://hbase.apache.org/hbase-build-configuration/hbase-http</a></p>
 <p><b>Project Licenses: </b><a class="externalLink" href="https://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></p></td></tr></table></div>
 <ul>
-<li>org.eclipse.jetty:jetty-util:jar:9.4.6.v20170531 (test) <img id="_img63" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep62', '_img63' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep62" style="display:none">
+<li>org.eclipse.jetty:jetty-util:jar:9.3.19.v20170502 (test) <img id="_img63" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep62', '_img63' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep62" style="display:none">
 <table border="0" class="table table-striped">
 <tr class="a">
 <th>Jetty :: Utilities</th></tr>
@@ -1537,7 +1537,7 @@ The following provides more details on the included cryptographic software:
 <p><b>Description: </b>Utility classes for Jetty</p>
 <p><b>URL: </b><a class="externalLink" href="http://www.eclipse.org/jetty">http://www.eclipse.org/jetty</a></p>
 <p><b>Project Licenses: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache Software License - Version 2.0</a>, <a class="externalLink" href="http://www.eclipse.org/org/documents/epl-v10.php">Eclipse Public License - Version 1.0</a></p></td></tr></table></div></li>
-<li>org.eclipse.jetty:jetty-util-ajax:jar:9.4.6.v20170531 (test) <img id="_img65" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep64', '_img65' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep64" style="display:none">
+<li>org.eclipse.jetty:jetty-util-ajax:jar:9.3.19.v20170502 (test) <img id="_img65" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep64', '_img65' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep64" style="display:none">
 <table border="0" class="table table-striped">
 <tr class="a">
 <th>Jetty :: Utilities :: Ajax(JSON)</th></tr>
@@ -1546,16 +1546,16 @@ The following provides more details on the included cryptographic software:
 <p><b>Description: </b>JSON/Ajax Utility classes for Jetty</p>
 <p><b>URL: </b><a class="externalLink" href="http://www.eclipse.org/jetty">http://www.eclipse.org/jetty</a></p>
 <p><b>Project Licenses: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache Software License - Version 2.0</a>, <a class="externalLink" href="http://www.eclipse.org/org/documents/epl-v10.php">Eclipse Public License - Version 1.0</a></p></td></tr></table></div></li>
-<li>org.eclipse.jetty:jetty-http:jar:9.4.6.v20170531 (test) <img id="_img67" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep66', '_img67' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep66" style="display:none">
+<li>org.eclipse.jetty:jetty-http:jar:9.3.19.v20170502 (test) <img id="_img67" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep66', '_img67' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep66" style="display:none">
 <table border="0" class="table table-striped">
 <tr class="a">
 <th>Jetty :: Http Utility</th></tr>
 <tr class="b">
 <td>
-<p><b>Description: </b>The Eclipse Jetty Project</p>
+<p><b>Description: </b>Administrative parent pom for Jetty modules</p>
 <p><b>URL: </b><a class="externalLink" href="http://www.eclipse.org/jetty">http://www.eclipse.org/jetty</a></p>
 <p><b>Project Licenses: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache Software License - Version 2.0</a>, <a class="externalLink" href="http://www.eclipse.org/org/documents/epl-v10.php">Eclipse Public License - Version 1.0</a></p></td></tr></table></div></li>
-<li>org.eclipse.jetty:jetty-security:jar:9.4.6.v20170531 (test) <img id="_img69" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep68', '_img69' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep68" style="display:none">
+<li>org.eclipse.jetty:jetty-security:jar:9.3.19.v20170502 (test) <img id="_img69" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep68', '_img69' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep68" style="display:none">
 <table border="0" class="table table-striped">
 <tr class="a">
 <th>Jetty :: Security</th></tr>
@@ -1749,7 +1749,7 @@ The following provides more details on the included cryptographic software:
 <p><b>Description: </b>HBase Metrics Implementation</p>
 <p><b>URL: </b><a class="externalLink" href="http://hbase.apache.org/hbase-build-configuration/hbase-metrics">http://hbase.apache.org/hbase-build-configuration/hbase-metrics</a></p>
 <p><b>Project Licenses: </b><a class="externalLink" href="https://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></p></td></tr></table></div></li>
-<li>org.eclipse.jetty:jetty-server:jar:9.4.6.v20170531 (test) <img id="_img111" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep110', '_img111' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep110" style="display:none">
+<li>org.eclipse.jetty:jetty-server:jar:9.3.19.v20170502 (test) <img id="_img111" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep110', '_img111' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep110" style="display:none">
 <table border="0" class="table table-striped">
 <tr class="a">
 <th>Jetty :: Server Core</th></tr>
@@ -1759,16 +1759,16 @@ The following provides more details on the included cryptographic software:
 <p><b>URL: </b><a class="externalLink" href="http://www.eclipse.org/jetty">http://www.eclipse.org/jetty</a></p>
 <p><b>Project Licenses: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache Software License - Version 2.0</a>, <a class="externalLink" href="http://www.eclipse.org/org/documents/epl-v10.php">Eclipse Public License - Version 1.0</a></p></td></tr></table></div>
 <ul>
-<li>org.eclipse.jetty:jetty-io:jar:9.4.6.v20170531 (test) <img id="_img113" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep112', '_img113' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep112" style="display:none">
+<li>org.eclipse.jetty:jetty-io:jar:9.3.19.v20170502 (test) <img id="_img113" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep112', '_img113' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep112" style="display:none">
 <table border="0" class="table table-striped">
 <tr class="a">
 <th>Jetty :: IO Utility</th></tr>
 <tr class="b">
 <td>
-<p><b>Description: </b>The Eclipse Jetty Project</p>
+<p><b>Description: </b>Administrative parent pom for Jetty modules</p>
 <p><b>URL: </b><a class="externalLink" href="http://www.eclipse.org/jetty">http://www.eclipse.org/jetty</a></p>
 <p><b>Project Licenses: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache Software License - Version 2.0</a>, <a class="externalLink" href="http://www.eclipse.org/org/documents/epl-v10.php">Eclipse Public License - Version 1.0</a></p></td></tr></table></div></li></ul></li>
-<li>org.eclipse.jetty:jetty-servlet:jar:9.4.6.v20170531 (test) <img id="_img115" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep114', '_img115' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep114" style="display:none">
+<li>org.eclipse.jetty:jetty-servlet:jar:9.3.19.v20170502 (test) <img id="_img115" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep114', '_img115' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep114" style="display:none">
 <table border="0" class="table table-striped">
 <tr class="a">
 <th>Jetty :: Servlet Handling</th></tr>
@@ -1777,7 +1777,7 @@ The following provides more details on the included cryptographic software:
 <p><b>Description: </b>Jetty Servlet Container</p>
 <p><b>URL: </b><a class="externalLink" href="http://www.eclipse.org/jetty">http://www.eclipse.org/jetty</a></p>
 <p><b>Project Licenses: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache Software License - Version 2.0</a>, <a class="externalLink" href="http://www.eclipse.org/org/documents/epl-v10.php">Eclipse Public License - Version 1.0</a></p></td></tr></table></div></li>
-<li>org.eclipse.jetty:jetty-webapp:jar:9.4.6.v20170531 (test) <img id="_img117" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep116', '_img117' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep116" style="display:none">
+<li>org.eclipse.jetty:jetty-webapp:jar:9.3.19.v20170502 (test) <img id="_img117" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep116', '_img117' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep116" style="display:none">
 <table border="0" class="table table-striped">
 <tr class="a">
 <th>Jetty :: Webapp Application Support</th></tr>
@@ -1787,7 +1787,7 @@ The following provides more details on the included cryptographic software:
 <p><b>URL: </b><a class="externalLink" href="http://www.eclipse.org/jetty">http://www.eclipse.org/jetty</a></p>
 <p><b>Project Licenses: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache Software License - Version 2.0</a>, <a class="externalLink" href="http://www.eclipse.org/org/documents/epl-v10.php">Eclipse Public License - Version 1.0</a></p></td></tr></table></div>
 <ul>
-<li>org.eclipse.jetty:jetty-xml:jar:9.4.6.v20170531 (test) <img id="_img119" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep118', '_img119' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep118" style="display:none">
+<li>org.eclipse.jetty:jetty-xml:jar:9.3.19.v20170502 (test) <img id="_img119" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep118', '_img119' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep118" style="display:none">
 <table border="0" class="table table-striped">
 <tr class="a">
 <th>Jetty :: XML utilities</th></tr>
@@ -3538,7 +3538,7 @@ built on Jackson JSON processor</p>
 <td>No</td></tr>
 <tr class="a">
 <td>hbase-hadoop2-compat-3.0.0-SNAPSHOT-tests.jar</td>
-<td>35.1 kB</td>
+<td>35.2 kB</td>
 <td>-</td>
 <td>-</td>
 <td>-</td>
@@ -3789,44 +3789,44 @@ built on Jackson JSON processor</p>
 <td>Yes</td>
 <td>No</td></tr>
 <tr class="a">
-<td>jetty-http-9.4.6.v20170531.jar</td>
-<td>163.9 kB</td>
-<td>99</td>
-<td>81</td>
+<td>jetty-http-9.3.19.v20170502.jar</td>
+<td>150.8 kB</td>
+<td>91</td>
+<td>73</td>
 <td>2</td>
 <td>1.8</td>
 <td>Yes</td>
 <td>No</td></tr>
 <tr class="b">
-<td>jetty-io-9.4.6.v20170531.jar</td>
-<td>128.8 kB</td>
-<td>102</td>
-<td>89</td>
+<td>jetty-io-9.3.19.v20170502.jar</td>
+<td>122.6 kB</td>
+<td>97</td>
+<td>84</td>
 <td>2</td>
 <td>1.8</td>
 <td>Yes</td>
 <td>No</td></tr>
 <tr class="a">
-<td>jetty-security-9.4.6.v20170531.jar</td>
-<td>93.1 kB</td>
-<td>65</td>
-<td>52</td>
+<td>jetty-security-9.3.19.v20170502.jar</td>
+<td>95.8 kB</td>
+<td>67</td>
+<td>54</td>
 <td>2</td>
 <td>1.8</td>
 <td>Yes</td>
 <td>No</td></tr>
 <tr class="b">
-<td>jetty-server-9.4.6.v20170531.jar</td>
-<td>579.8 kB</td>
-<td>300</td>
-<td>281</td>
-<td>7</td>
+<td>jetty-server-9.3.19.v20170502.jar</td>
+<td>523.3 kB</td>
+<td>261</td>
+<td>241</td>
+<td>8</td>
 <td>1.8</td>
 <td>Yes</td>
 <td>No</td></tr>
 <tr class="a">
-<td>jetty-servlet-9.4.6.v20170531.jar</td>
-<td>110.5 kB</td>
+<td>jetty-servlet-9.3.19.v20170502.jar</td>
+<td>119.1 kB</td>
 <td>62</td>
 <td>48</td>
 <td>3</td>
@@ -3834,16 +3834,16 @@ built on Jackson JSON processor</p>
 <td>Yes</td>
 <td>No</td></tr>
 <tr class="b">
-<td>jetty-util-9.4.6.v20170531.jar</td>
-<td>457.7 kB</td>
-<td>284</td>
-<td>261</td>
+<td>jetty-util-9.3.19.v20170502.jar</td>
+<td>450.8 kB</td>
+<td>280</td>
+<td>257</td>
 <td>11</td>
 <td>1.8</td>
 <td>Yes</td>
 <td>No</td></tr>
 <tr class="a">
-<td>jetty-util-ajax-9.4.6.v20170531.jar</td>
+<td>jetty-util-ajax-9.3.19.v20170502.jar</td>
 <td>38.7 kB</td>
 <td>37</td>
 <td>24</td>
@@ -3852,17 +3852,17 @@ built on Jackson JSON processor</p>
 <td>Yes</td>
 <td>No</td></tr>
 <tr class="b">
-<td>jetty-webapp-9.4.6.v20170531.jar</td>
-<td>121.4 kB</td>
-<td>59</td>
-<td>46</td>
+<td>jetty-webapp-9.3.19.v20170502.jar</td>
+<td>113.4 kB</td>
+<td>55</td>
+<td>42</td>
 <td>1</td>
 <td>1.8</td>
 <td>Yes</td>
 <td>No</td></tr>
 <tr class="a">
-<td>jetty-xml-9.4.6.v20170531.jar</td>
-<td>50.4 kB</td>
+<td>jetty-xml-9.3.19.v20170502.jar</td>
+<td>50.6 kB</td>
 <td>29</td>
 <td>13</td>
 <td>1</td>
@@ -4132,10 +4132,10 @@ built on Jackson JSON processor</p>
 <th>Sealed</th></tr>
 <tr class="a">
 <td>154</td>
-<td>86.8 MB</td>
-<td>42457</td>
-<td>38363</td>
-<td>1575</td>
+<td>86.7 MB</td>
+<td>42399</td>
+<td>38304</td>
+<td>1576</td>
 <td>1.8</td>
 <td>123</td>
 <td>1</td></tr>
@@ -4150,10 +4150,10 @@ built on Jackson JSON processor</p>
 <td>compile: 1</td></tr>
 <tr class="a">
 <td>test: 70</td>
-<td>test: 42 MB</td>
-<td>test: 14237</td>
-<td>test: 13009</td>
-<td>test: 515</td>
+<td>test: 41.9 MB</td>
+<td>test: 14179</td>
+<td>test: 12950</td>
+<td>test: 516</td>
 <td>-</td>
 <td>test: 51</td>
 <td>-</td></tr></table></div>
@@ -4169,7 +4169,7 @@ built on Jackson JSON processor</p>
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-02</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/29b27596/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/dependency-convergence.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/dependency-convergence.html b/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/dependency-convergence.html
index 2a85d96..698163a 100644
--- a/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/dependency-convergence.html
+++ b/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/dependency-convergence.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="20171201" />
+    <meta name="Date-Revision-yyyymmdd" content="20171202" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Exemplar for hbase-shaded-client archetype &#x2013; Reactor Dependency Convergence</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -838,7 +838,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-02</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/29b27596/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/dependency-info.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/dependency-info.html b/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/dependency-info.html
index 487047b..f630509 100644
--- a/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/dependency-info.html
+++ b/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/dependency-info.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="20171201" />
+    <meta name="Date-Revision-yyyymmdd" content="20171202" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Exemplar for hbase-shaded-client archetype &#x2013; Dependency Information</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -147,7 +147,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-02</li>
             </p>
                 </div>
 


[16/32] hbase-site git commit: Published site at .

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/29b27596/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.PeriodicMemStoreFlusher.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.PeriodicMemStoreFlusher.html b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.PeriodicMemStoreFlusher.html
index 269105b..1198d94 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.PeriodicMemStoreFlusher.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.PeriodicMemStoreFlusher.html
@@ -1524,2213 +1524,2214 @@
 <span class="sourceLineNo">1516</span>      // This call sets up an initialized replication and WAL. Later we start it up.<a name="line.1516"></a>
 <span class="sourceLineNo">1517</span>      setupWALAndReplication();<a name="line.1517"></a>
 <span class="sourceLineNo">1518</span>      // Init in here rather than in constructor after thread name has been set<a name="line.1518"></a>
-<span class="sourceLineNo">1519</span>      this.metricsRegionServer = new MetricsRegionServer(new MetricsRegionServerWrapperImpl(this));<a name="line.1519"></a>
-<span class="sourceLineNo">1520</span>      this.metricsTable = new MetricsTable(new MetricsTableWrapperAggregateImpl(this));<a name="line.1520"></a>
-<span class="sourceLineNo">1521</span>      // Now that we have a metrics source, start the pause monitor<a name="line.1521"></a>
-<span class="sourceLineNo">1522</span>      this.pauseMonitor = new JvmPauseMonitor(conf, getMetrics().getMetricsSource());<a name="line.1522"></a>
-<span class="sourceLineNo">1523</span>      pauseMonitor.start();<a name="line.1523"></a>
-<span class="sourceLineNo">1524</span><a name="line.1524"></a>
-<span class="sourceLineNo">1525</span>      // There is a rare case where we do NOT want services to start. Check config.<a name="line.1525"></a>
-<span class="sourceLineNo">1526</span>      if (getConfiguration().getBoolean("hbase.regionserver.workers", true)) {<a name="line.1526"></a>
-<span class="sourceLineNo">1527</span>        startServices();<a name="line.1527"></a>
-<span class="sourceLineNo">1528</span>      }<a name="line.1528"></a>
-<span class="sourceLineNo">1529</span>      // In here we start up the replication Service. Above we initialized it. TODO. Reconcile.<a name="line.1529"></a>
-<span class="sourceLineNo">1530</span>      // or make sense of it.<a name="line.1530"></a>
-<span class="sourceLineNo">1531</span>      startReplicationService();<a name="line.1531"></a>
-<span class="sourceLineNo">1532</span><a name="line.1532"></a>
+<span class="sourceLineNo">1519</span>      this.metricsRegionServer = new MetricsRegionServer(<a name="line.1519"></a>
+<span class="sourceLineNo">1520</span>          new MetricsRegionServerWrapperImpl(this), conf);<a name="line.1520"></a>
+<span class="sourceLineNo">1521</span>      this.metricsTable = new MetricsTable(new MetricsTableWrapperAggregateImpl(this));<a name="line.1521"></a>
+<span class="sourceLineNo">1522</span>      // Now that we have a metrics source, start the pause monitor<a name="line.1522"></a>
+<span class="sourceLineNo">1523</span>      this.pauseMonitor = new JvmPauseMonitor(conf, getMetrics().getMetricsSource());<a name="line.1523"></a>
+<span class="sourceLineNo">1524</span>      pauseMonitor.start();<a name="line.1524"></a>
+<span class="sourceLineNo">1525</span><a name="line.1525"></a>
+<span class="sourceLineNo">1526</span>      // There is a rare case where we do NOT want services to start. Check config.<a name="line.1526"></a>
+<span class="sourceLineNo">1527</span>      if (getConfiguration().getBoolean("hbase.regionserver.workers", true)) {<a name="line.1527"></a>
+<span class="sourceLineNo">1528</span>        startServices();<a name="line.1528"></a>
+<span class="sourceLineNo">1529</span>      }<a name="line.1529"></a>
+<span class="sourceLineNo">1530</span>      // In here we start up the replication Service. Above we initialized it. TODO. Reconcile.<a name="line.1530"></a>
+<span class="sourceLineNo">1531</span>      // or make sense of it.<a name="line.1531"></a>
+<span class="sourceLineNo">1532</span>      startReplicationService();<a name="line.1532"></a>
 <span class="sourceLineNo">1533</span><a name="line.1533"></a>
-<span class="sourceLineNo">1534</span>      // Set up ZK<a name="line.1534"></a>
-<span class="sourceLineNo">1535</span>      LOG.info("Serving as " + this.serverName + ", RpcServer on " + rpcServices.isa +<a name="line.1535"></a>
-<span class="sourceLineNo">1536</span>          ", sessionid=0x" +<a name="line.1536"></a>
-<span class="sourceLineNo">1537</span>          Long.toHexString(this.zooKeeper.getRecoverableZooKeeper().getSessionId()));<a name="line.1537"></a>
-<span class="sourceLineNo">1538</span><a name="line.1538"></a>
-<span class="sourceLineNo">1539</span>      // Wake up anyone waiting for this server to online<a name="line.1539"></a>
-<span class="sourceLineNo">1540</span>      synchronized (online) {<a name="line.1540"></a>
-<span class="sourceLineNo">1541</span>        online.set(true);<a name="line.1541"></a>
-<span class="sourceLineNo">1542</span>        online.notifyAll();<a name="line.1542"></a>
-<span class="sourceLineNo">1543</span>      }<a name="line.1543"></a>
-<span class="sourceLineNo">1544</span>    } catch (Throwable e) {<a name="line.1544"></a>
-<span class="sourceLineNo">1545</span>      stop("Failed initialization");<a name="line.1545"></a>
-<span class="sourceLineNo">1546</span>      throw convertThrowableToIOE(cleanup(e, "Failed init"),<a name="line.1546"></a>
-<span class="sourceLineNo">1547</span>          "Region server startup failed");<a name="line.1547"></a>
-<span class="sourceLineNo">1548</span>    } finally {<a name="line.1548"></a>
-<span class="sourceLineNo">1549</span>      sleeper.skipSleepCycle();<a name="line.1549"></a>
-<span class="sourceLineNo">1550</span>    }<a name="line.1550"></a>
-<span class="sourceLineNo">1551</span>  }<a name="line.1551"></a>
-<span class="sourceLineNo">1552</span><a name="line.1552"></a>
-<span class="sourceLineNo">1553</span>  protected void initializeMemStoreChunkCreator() {<a name="line.1553"></a>
-<span class="sourceLineNo">1554</span>    if (MemStoreLAB.isEnabled(conf)) {<a name="line.1554"></a>
-<span class="sourceLineNo">1555</span>      // MSLAB is enabled. So initialize MemStoreChunkPool<a name="line.1555"></a>
-<span class="sourceLineNo">1556</span>      // By this time, the MemstoreFlusher is already initialized. We can get the global limits from<a name="line.1556"></a>
-<span class="sourceLineNo">1557</span>      // it.<a name="line.1557"></a>
-<span class="sourceLineNo">1558</span>      Pair&lt;Long, MemoryType&gt; pair = MemorySizeUtil.getGlobalMemStoreSize(conf);<a name="line.1558"></a>
-<span class="sourceLineNo">1559</span>      long globalMemStoreSize = pair.getFirst();<a name="line.1559"></a>
-<span class="sourceLineNo">1560</span>      boolean offheap = this.regionServerAccounting.isOffheap();<a name="line.1560"></a>
-<span class="sourceLineNo">1561</span>      // When off heap memstore in use, take full area for chunk pool.<a name="line.1561"></a>
-<span class="sourceLineNo">1562</span>      float poolSizePercentage = offheap? 1.0F:<a name="line.1562"></a>
-<span class="sourceLineNo">1563</span>          conf.getFloat(MemStoreLAB.CHUNK_POOL_MAXSIZE_KEY, MemStoreLAB.POOL_MAX_SIZE_DEFAULT);<a name="line.1563"></a>
-<span class="sourceLineNo">1564</span>      float initialCountPercentage = conf.getFloat(MemStoreLAB.CHUNK_POOL_INITIALSIZE_KEY,<a name="line.1564"></a>
-<span class="sourceLineNo">1565</span>          MemStoreLAB.POOL_INITIAL_SIZE_DEFAULT);<a name="line.1565"></a>
-<span class="sourceLineNo">1566</span>      int chunkSize = conf.getInt(MemStoreLAB.CHUNK_SIZE_KEY, MemStoreLAB.CHUNK_SIZE_DEFAULT);<a name="line.1566"></a>
-<span class="sourceLineNo">1567</span>      // init the chunkCreator<a name="line.1567"></a>
-<span class="sourceLineNo">1568</span>      ChunkCreator chunkCreator =<a name="line.1568"></a>
-<span class="sourceLineNo">1569</span>          ChunkCreator.initialize(chunkSize, offheap, globalMemStoreSize, poolSizePercentage,<a name="line.1569"></a>
-<span class="sourceLineNo">1570</span>      initialCountPercentage, this.hMemManager);<a name="line.1570"></a>
-<span class="sourceLineNo">1571</span>    }<a name="line.1571"></a>
-<span class="sourceLineNo">1572</span>  }<a name="line.1572"></a>
-<span class="sourceLineNo">1573</span><a name="line.1573"></a>
-<span class="sourceLineNo">1574</span>  private void startHeapMemoryManager() {<a name="line.1574"></a>
-<span class="sourceLineNo">1575</span>    this.hMemManager = HeapMemoryManager.create(this.conf, this.cacheFlusher, this,<a name="line.1575"></a>
-<span class="sourceLineNo">1576</span>        this.regionServerAccounting);<a name="line.1576"></a>
-<span class="sourceLineNo">1577</span>    if (this.hMemManager != null) {<a name="line.1577"></a>
-<span class="sourceLineNo">1578</span>      this.hMemManager.start(getChoreService());<a name="line.1578"></a>
-<span class="sourceLineNo">1579</span>    }<a name="line.1579"></a>
-<span class="sourceLineNo">1580</span>  }<a name="line.1580"></a>
-<span class="sourceLineNo">1581</span><a name="line.1581"></a>
-<span class="sourceLineNo">1582</span>  private void createMyEphemeralNode() throws KeeperException, IOException {<a name="line.1582"></a>
-<span class="sourceLineNo">1583</span>    RegionServerInfo.Builder rsInfo = RegionServerInfo.newBuilder();<a name="line.1583"></a>
-<span class="sourceLineNo">1584</span>    rsInfo.setInfoPort(infoServer != null ? infoServer.getPort() : -1);<a name="line.1584"></a>
-<span class="sourceLineNo">1585</span>    rsInfo.setVersionInfo(ProtobufUtil.getVersionInfo());<a name="line.1585"></a>
-<span class="sourceLineNo">1586</span>    byte[] data = ProtobufUtil.prependPBMagic(rsInfo.build().toByteArray());<a name="line.1586"></a>
-<span class="sourceLineNo">1587</span>    ZKUtil.createEphemeralNodeAndWatch(this.zooKeeper, getMyEphemeralNodePath(), data);<a name="line.1587"></a>
-<span class="sourceLineNo">1588</span>  }<a name="line.1588"></a>
-<span class="sourceLineNo">1589</span><a name="line.1589"></a>
-<span class="sourceLineNo">1590</span>  private void deleteMyEphemeralNode() throws KeeperException {<a name="line.1590"></a>
-<span class="sourceLineNo">1591</span>    ZKUtil.deleteNode(this.zooKeeper, getMyEphemeralNodePath());<a name="line.1591"></a>
-<span class="sourceLineNo">1592</span>  }<a name="line.1592"></a>
-<span class="sourceLineNo">1593</span><a name="line.1593"></a>
-<span class="sourceLineNo">1594</span>  @Override<a name="line.1594"></a>
-<span class="sourceLineNo">1595</span>  public RegionServerAccounting getRegionServerAccounting() {<a name="line.1595"></a>
-<span class="sourceLineNo">1596</span>    return regionServerAccounting;<a name="line.1596"></a>
-<span class="sourceLineNo">1597</span>  }<a name="line.1597"></a>
-<span class="sourceLineNo">1598</span><a name="line.1598"></a>
-<span class="sourceLineNo">1599</span>  /*<a name="line.1599"></a>
-<span class="sourceLineNo">1600</span>   * @param r Region to get RegionLoad for.<a name="line.1600"></a>
-<span class="sourceLineNo">1601</span>   * @param regionLoadBldr the RegionLoad.Builder, can be null<a name="line.1601"></a>
-<span class="sourceLineNo">1602</span>   * @param regionSpecifier the RegionSpecifier.Builder, can be null<a name="line.1602"></a>
-<span class="sourceLineNo">1603</span>   * @return RegionLoad instance.<a name="line.1603"></a>
-<span class="sourceLineNo">1604</span>   *<a name="line.1604"></a>
-<span class="sourceLineNo">1605</span>   * @throws IOException<a name="line.1605"></a>
-<span class="sourceLineNo">1606</span>   */<a name="line.1606"></a>
-<span class="sourceLineNo">1607</span>  RegionLoad createRegionLoad(final HRegion r, RegionLoad.Builder regionLoadBldr,<a name="line.1607"></a>
-<span class="sourceLineNo">1608</span>      RegionSpecifier.Builder regionSpecifier) throws IOException {<a name="line.1608"></a>
-<span class="sourceLineNo">1609</span>    byte[] name = r.getRegionInfo().getRegionName();<a name="line.1609"></a>
-<span class="sourceLineNo">1610</span>    int stores = 0;<a name="line.1610"></a>
-<span class="sourceLineNo">1611</span>    int storefiles = 0;<a name="line.1611"></a>
-<span class="sourceLineNo">1612</span>    int storeUncompressedSizeMB = 0;<a name="line.1612"></a>
-<span class="sourceLineNo">1613</span>    int storefileSizeMB = 0;<a name="line.1613"></a>
-<span class="sourceLineNo">1614</span>    int memstoreSizeMB = (int) (r.getMemStoreSize() / 1024 / 1024);<a name="line.1614"></a>
-<span class="sourceLineNo">1615</span>    long storefileIndexSizeKB = 0;<a name="line.1615"></a>
-<span class="sourceLineNo">1616</span>    int rootIndexSizeKB = 0;<a name="line.1616"></a>
-<span class="sourceLineNo">1617</span>    int totalStaticIndexSizeKB = 0;<a name="line.1617"></a>
-<span class="sourceLineNo">1618</span>    int totalStaticBloomSizeKB = 0;<a name="line.1618"></a>
-<span class="sourceLineNo">1619</span>    long totalCompactingKVs = 0;<a name="line.1619"></a>
-<span class="sourceLineNo">1620</span>    long currentCompactedKVs = 0;<a name="line.1620"></a>
-<span class="sourceLineNo">1621</span>    List&lt;HStore&gt; storeList = r.getStores();<a name="line.1621"></a>
-<span class="sourceLineNo">1622</span>    stores += storeList.size();<a name="line.1622"></a>
-<span class="sourceLineNo">1623</span>    for (HStore store : storeList) {<a name="line.1623"></a>
-<span class="sourceLineNo">1624</span>      storefiles += store.getStorefilesCount();<a name="line.1624"></a>
-<span class="sourceLineNo">1625</span>      storeUncompressedSizeMB += (int) (store.getStoreSizeUncompressed() / 1024 / 1024);<a name="line.1625"></a>
-<span class="sourceLineNo">1626</span>      storefileSizeMB += (int) (store.getStorefilesSize() / 1024 / 1024);<a name="line.1626"></a>
-<span class="sourceLineNo">1627</span>      storefileIndexSizeKB += store.getStorefilesIndexSize() / 1024;<a name="line.1627"></a>
-<span class="sourceLineNo">1628</span>      CompactionProgress progress = store.getCompactionProgress();<a name="line.1628"></a>
-<span class="sourceLineNo">1629</span>      if (progress != null) {<a name="line.1629"></a>
-<span class="sourceLineNo">1630</span>        totalCompactingKVs += progress.totalCompactingKVs;<a name="line.1630"></a>
-<span class="sourceLineNo">1631</span>        currentCompactedKVs += progress.currentCompactedKVs;<a name="line.1631"></a>
-<span class="sourceLineNo">1632</span>      }<a name="line.1632"></a>
-<span class="sourceLineNo">1633</span>      rootIndexSizeKB += (int) (store.getStorefilesIndexSize() / 1024);<a name="line.1633"></a>
-<span class="sourceLineNo">1634</span>      totalStaticIndexSizeKB += (int) (store.getTotalStaticIndexSize() / 1024);<a name="line.1634"></a>
-<span class="sourceLineNo">1635</span>      totalStaticBloomSizeKB += (int) (store.getTotalStaticBloomSize() / 1024);<a name="line.1635"></a>
-<span class="sourceLineNo">1636</span>    }<a name="line.1636"></a>
-<span class="sourceLineNo">1637</span><a name="line.1637"></a>
-<span class="sourceLineNo">1638</span>    float dataLocality =<a name="line.1638"></a>
-<span class="sourceLineNo">1639</span>        r.getHDFSBlocksDistribution().getBlockLocalityIndex(serverName.getHostname());<a name="line.1639"></a>
-<span class="sourceLineNo">1640</span>    if (regionLoadBldr == null) {<a name="line.1640"></a>
-<span class="sourceLineNo">1641</span>      regionLoadBldr = RegionLoad.newBuilder();<a name="line.1641"></a>
-<span class="sourceLineNo">1642</span>    }<a name="line.1642"></a>
-<span class="sourceLineNo">1643</span>    if (regionSpecifier == null) {<a name="line.1643"></a>
-<span class="sourceLineNo">1644</span>      regionSpecifier = RegionSpecifier.newBuilder();<a name="line.1644"></a>
-<span class="sourceLineNo">1645</span>    }<a name="line.1645"></a>
-<span class="sourceLineNo">1646</span>    regionSpecifier.setType(RegionSpecifierType.REGION_NAME);<a name="line.1646"></a>
-<span class="sourceLineNo">1647</span>    regionSpecifier.setValue(UnsafeByteOperations.unsafeWrap(name));<a name="line.1647"></a>
-<span class="sourceLineNo">1648</span>    regionLoadBldr.setRegionSpecifier(regionSpecifier.build())<a name="line.1648"></a>
-<span class="sourceLineNo">1649</span>      .setStores(stores)<a name="line.1649"></a>
-<span class="sourceLineNo">1650</span>      .setStorefiles(storefiles)<a name="line.1650"></a>
-<span class="sourceLineNo">1651</span>      .setStoreUncompressedSizeMB(storeUncompressedSizeMB)<a name="line.1651"></a>
-<span class="sourceLineNo">1652</span>      .setStorefileSizeMB(storefileSizeMB)<a name="line.1652"></a>
-<span class="sourceLineNo">1653</span>      .setMemStoreSizeMB(memstoreSizeMB)<a name="line.1653"></a>
-<span class="sourceLineNo">1654</span>      .setStorefileIndexSizeKB(storefileIndexSizeKB)<a name="line.1654"></a>
-<span class="sourceLineNo">1655</span>      .setRootIndexSizeKB(rootIndexSizeKB)<a name="line.1655"></a>
-<span class="sourceLineNo">1656</span>      .setTotalStaticIndexSizeKB(totalStaticIndexSizeKB)<a name="line.1656"></a>
-<span class="sourceLineNo">1657</span>      .setTotalStaticBloomSizeKB(totalStaticBloomSizeKB)<a name="line.1657"></a>
-<span class="sourceLineNo">1658</span>      .setReadRequestsCount(r.getReadRequestsCount())<a name="line.1658"></a>
-<span class="sourceLineNo">1659</span>      .setFilteredReadRequestsCount(r.getFilteredReadRequestsCount())<a name="line.1659"></a>
-<span class="sourceLineNo">1660</span>      .setWriteRequestsCount(r.getWriteRequestsCount())<a name="line.1660"></a>
-<span class="sourceLineNo">1661</span>      .setTotalCompactingKVs(totalCompactingKVs)<a name="line.1661"></a>
-<span class="sourceLineNo">1662</span>      .setCurrentCompactedKVs(currentCompactedKVs)<a name="line.1662"></a>
-<span class="sourceLineNo">1663</span>      .setDataLocality(dataLocality)<a name="line.1663"></a>
-<span class="sourceLineNo">1664</span>      .setLastMajorCompactionTs(r.getOldestHfileTs(true));<a name="line.1664"></a>
-<span class="sourceLineNo">1665</span>    ((HRegion)r).setCompleteSequenceId(regionLoadBldr);<a name="line.1665"></a>
-<span class="sourceLineNo">1666</span><a name="line.1666"></a>
-<span class="sourceLineNo">1667</span>    return regionLoadBldr.build();<a name="line.1667"></a>
-<span class="sourceLineNo">1668</span>  }<a name="line.1668"></a>
-<span class="sourceLineNo">1669</span><a name="line.1669"></a>
-<span class="sourceLineNo">1670</span>  /**<a name="line.1670"></a>
-<span class="sourceLineNo">1671</span>   * @param encodedRegionName<a name="line.1671"></a>
-<span class="sourceLineNo">1672</span>   * @return An instance of RegionLoad.<a name="line.1672"></a>
-<span class="sourceLineNo">1673</span>   */<a name="line.1673"></a>
-<span class="sourceLineNo">1674</span>  public RegionLoad createRegionLoad(final String encodedRegionName) throws IOException {<a name="line.1674"></a>
-<span class="sourceLineNo">1675</span>    HRegion r = onlineRegions.get(encodedRegionName);<a name="line.1675"></a>
-<span class="sourceLineNo">1676</span>    return r != null ? createRegionLoad(r, null, null) : null;<a name="line.1676"></a>
-<span class="sourceLineNo">1677</span>  }<a name="line.1677"></a>
-<span class="sourceLineNo">1678</span><a name="line.1678"></a>
-<span class="sourceLineNo">1679</span>  /*<a name="line.1679"></a>
-<span class="sourceLineNo">1680</span>   * Inner class that runs on a long period checking if regions need compaction.<a name="line.1680"></a>
-<span class="sourceLineNo">1681</span>   */<a name="line.1681"></a>
-<span class="sourceLineNo">1682</span>  private static class CompactionChecker extends ScheduledChore {<a name="line.1682"></a>
-<span class="sourceLineNo">1683</span>    private final HRegionServer instance;<a name="line.1683"></a>
-<span class="sourceLineNo">1684</span>    private final int majorCompactPriority;<a name="line.1684"></a>
-<span class="sourceLineNo">1685</span>    private final static int DEFAULT_PRIORITY = Integer.MAX_VALUE;<a name="line.1685"></a>
-<span class="sourceLineNo">1686</span>    //Iteration is 1-based rather than 0-based so we don't check for compaction<a name="line.1686"></a>
-<span class="sourceLineNo">1687</span>    // immediately upon region server startup<a name="line.1687"></a>
-<span class="sourceLineNo">1688</span>    private long iteration = 1;<a name="line.1688"></a>
-<span class="sourceLineNo">1689</span><a name="line.1689"></a>
-<span class="sourceLineNo">1690</span>    CompactionChecker(final HRegionServer h, final int sleepTime, final Stoppable stopper) {<a name="line.1690"></a>
-<span class="sourceLineNo">1691</span>      super("CompactionChecker", stopper, sleepTime);<a name="line.1691"></a>
-<span class="sourceLineNo">1692</span>      this.instance = h;<a name="line.1692"></a>
-<span class="sourceLineNo">1693</span>      LOG.info(this.getName() + " runs every " + StringUtils.formatTime(sleepTime));<a name="line.1693"></a>
-<span class="sourceLineNo">1694</span><a name="line.1694"></a>
-<span class="sourceLineNo">1695</span>      /* MajorCompactPriority is configurable.<a name="line.1695"></a>
-<span class="sourceLineNo">1696</span>       * If not set, the compaction will use default priority.<a name="line.1696"></a>
-<span class="sourceLineNo">1697</span>       */<a name="line.1697"></a>
-<span class="sourceLineNo">1698</span>      this.majorCompactPriority = this.instance.conf.<a name="line.1698"></a>
-<span class="sourceLineNo">1699</span>          getInt("hbase.regionserver.compactionChecker.majorCompactPriority",<a name="line.1699"></a>
-<span class="sourceLineNo">1700</span>              DEFAULT_PRIORITY);<a name="line.1700"></a>
-<span class="sourceLineNo">1701</span>    }<a name="line.1701"></a>
-<span class="sourceLineNo">1702</span><a name="line.1702"></a>
-<span class="sourceLineNo">1703</span>    @Override<a name="line.1703"></a>
-<span class="sourceLineNo">1704</span>    protected void chore() {<a name="line.1704"></a>
-<span class="sourceLineNo">1705</span>      for (Region r : this.instance.onlineRegions.values()) {<a name="line.1705"></a>
-<span class="sourceLineNo">1706</span>        if (r == null) {<a name="line.1706"></a>
-<span class="sourceLineNo">1707</span>          continue;<a name="line.1707"></a>
-<span class="sourceLineNo">1708</span>        }<a name="line.1708"></a>
-<span class="sourceLineNo">1709</span>        HRegion hr = (HRegion) r;<a name="line.1709"></a>
-<span class="sourceLineNo">1710</span>        for (HStore s : hr.stores.values()) {<a name="line.1710"></a>
-<span class="sourceLineNo">1711</span>          try {<a name="line.1711"></a>
-<span class="sourceLineNo">1712</span>            long multiplier = s.getCompactionCheckMultiplier();<a name="line.1712"></a>
-<span class="sourceLineNo">1713</span>            assert multiplier &gt; 0;<a name="line.1713"></a>
-<span class="sourceLineNo">1714</span>            if (iteration % multiplier != 0) {<a name="line.1714"></a>
-<span class="sourceLineNo">1715</span>              continue;<a name="line.1715"></a>
-<span class="sourceLineNo">1716</span>            }<a name="line.1716"></a>
-<span class="sourceLineNo">1717</span>            if (s.needsCompaction()) {<a name="line.1717"></a>
-<span class="sourceLineNo">1718</span>              // Queue a compaction. Will recognize if major is needed.<a name="line.1718"></a>
-<span class="sourceLineNo">1719</span>              this.instance.compactSplitThread.requestSystemCompaction(hr, s,<a name="line.1719"></a>
-<span class="sourceLineNo">1720</span>                getName() + " requests compaction");<a name="line.1720"></a>
-<span class="sourceLineNo">1721</span>            } else if (s.shouldPerformMajorCompaction()) {<a name="line.1721"></a>
-<span class="sourceLineNo">1722</span>              s.triggerMajorCompaction();<a name="line.1722"></a>
-<span class="sourceLineNo">1723</span>              if (majorCompactPriority == DEFAULT_PRIORITY ||<a name="line.1723"></a>
-<span class="sourceLineNo">1724</span>                  majorCompactPriority &gt; hr.getCompactPriority()) {<a name="line.1724"></a>
-<span class="sourceLineNo">1725</span>                this.instance.compactSplitThread.requestCompaction(hr, s,<a name="line.1725"></a>
-<span class="sourceLineNo">1726</span>                    getName() + " requests major compaction; use default priority",<a name="line.1726"></a>
-<span class="sourceLineNo">1727</span>                    Store.NO_PRIORITY,<a name="line.1727"></a>
-<span class="sourceLineNo">1728</span>                CompactionLifeCycleTracker.DUMMY, null);<a name="line.1728"></a>
-<span class="sourceLineNo">1729</span>              } else {<a name="line.1729"></a>
-<span class="sourceLineNo">1730</span>                this.instance.compactSplitThread.requestCompaction(hr, s,<a name="line.1730"></a>
-<span class="sourceLineNo">1731</span>                    getName() + " requests major compaction; use configured priority",<a name="line.1731"></a>
-<span class="sourceLineNo">1732</span>                    this.majorCompactPriority, CompactionLifeCycleTracker.DUMMY, null);<a name="line.1732"></a>
-<span class="sourceLineNo">1733</span>              }<a name="line.1733"></a>
-<span class="sourceLineNo">1734</span>            }<a name="line.1734"></a>
-<span class="sourceLineNo">1735</span>          } catch (IOException e) {<a name="line.1735"></a>
-<span class="sourceLineNo">1736</span>            LOG.warn("Failed major compaction check on " + r, e);<a name="line.1736"></a>
-<span class="sourceLineNo">1737</span>          }<a name="line.1737"></a>
-<span class="sourceLineNo">1738</span>        }<a name="line.1738"></a>
-<span class="sourceLineNo">1739</span>      }<a name="line.1739"></a>
-<span class="sourceLineNo">1740</span>      iteration = (iteration == Long.MAX_VALUE) ? 0 : (iteration + 1);<a name="line.1740"></a>
-<span class="sourceLineNo">1741</span>    }<a name="line.1741"></a>
-<span class="sourceLineNo">1742</span>  }<a name="line.1742"></a>
-<span class="sourceLineNo">1743</span><a name="line.1743"></a>
-<span class="sourceLineNo">1744</span>  static class PeriodicMemStoreFlusher extends ScheduledChore {<a name="line.1744"></a>
-<span class="sourceLineNo">1745</span>    final HRegionServer server;<a name="line.1745"></a>
-<span class="sourceLineNo">1746</span>    final static int RANGE_OF_DELAY = 5 * 60 * 1000; // 5 min in milliseconds<a name="line.1746"></a>
-<span class="sourceLineNo">1747</span>    final static int MIN_DELAY_TIME = 0; // millisec<a name="line.1747"></a>
-<span class="sourceLineNo">1748</span>    public PeriodicMemStoreFlusher(int cacheFlushInterval, final HRegionServer server) {<a name="line.1748"></a>
-<span class="sourceLineNo">1749</span>      super("MemstoreFlusherChore", server, cacheFlushInterval);<a name="line.1749"></a>
-<span class="sourceLineNo">1750</span>      this.server = server;<a name="line.1750"></a>
-<span class="sourceLineNo">1751</span>    }<a name="line.1751"></a>
-<span class="sourceLineNo">1752</span><a name="line.1752"></a>
-<span class="sourceLineNo">1753</span>    @Override<a name="line.1753"></a>
-<span class="sourceLineNo">1754</span>    protected void chore() {<a name="line.1754"></a>
-<span class="sourceLineNo">1755</span>      final StringBuffer whyFlush = new StringBuffer();<a name="line.1755"></a>
-<span class="sourceLineNo">1756</span>      for (HRegion r : this.server.onlineRegions.values()) {<a name="line.1756"></a>
-<span class="sourceLineNo">1757</span>        if (r == null) continue;<a name="line.1757"></a>
-<span class="sourceLineNo">1758</span>        if (r.shouldFlush(whyFlush)) {<a name="line.1758"></a>
-<span class="sourceLineNo">1759</span>          FlushRequester requester = server.getFlushRequester();<a name="line.1759"></a>
-<span class="sourceLineNo">1760</span>          if (requester != null) {<a name="line.1760"></a>
-<span class="sourceLineNo">1761</span>            long randomDelay = RandomUtils.nextInt(0, RANGE_OF_DELAY) + MIN_DELAY_TIME;<a name="line.1761"></a>
-<span class="sourceLineNo">1762</span>            LOG.info(getName() + " requesting flush of " +<a name="line.1762"></a>
-<span class="sourceLineNo">1763</span>              r.getRegionInfo().getRegionNameAsString() + " because " +<a name="line.1763"></a>
-<span class="sourceLineNo">1764</span>              whyFlush.toString() +<a name="line.1764"></a>
-<span class="sourceLineNo">1765</span>              " after random delay " + randomDelay + "ms");<a name="line.1765"></a>
-<span class="sourceLineNo">1766</span>            //Throttle the flushes by putting a delay. If we don't throttle, and there<a name="line.1766"></a>
-<span class="sourceLineNo">1767</span>            //is a balanced write-load on the regions in a table, we might end up<a name="line.1767"></a>
-<span class="sourceLineNo">1768</span>            //overwhelming the filesystem with too many flushes at once.<a name="line.1768"></a>
-<span class="sourceLineNo">1769</span>            requester.requestDelayedFlush(r, randomDelay, false);<a name="line.1769"></a>
-<span class="sourceLineNo">1770</span>          }<a name="line.1770"></a>
-<span class="sourceLineNo">1771</span>        }<a name="line.1771"></a>
-<span class="sourceLineNo">1772</span>      }<a name="line.1772"></a>
-<span class="sourceLineNo">1773</span>    }<a name="line.1773"></a>
-<span class="sourceLineNo">1774</span>  }<a name="line.1774"></a>
-<span class="sourceLineNo">1775</span><a name="line.1775"></a>
-<span class="sourceLineNo">1776</span>  /**<a name="line.1776"></a>
-<span class="sourceLineNo">1777</span>   * Report the status of the server. A server is online once all the startup is<a name="line.1777"></a>
-<span class="sourceLineNo">1778</span>   * completed (setting up filesystem, starting executorService threads, etc.). This<a name="line.1778"></a>
-<span class="sourceLineNo">1779</span>   * method is designed mostly to be useful in tests.<a name="line.1779"></a>
-<span class="sourceLineNo">1780</span>   *<a name="line.1780"></a>
-<span class="sourceLineNo">1781</span>   * @return true if online, false if not.<a name="line.1781"></a>
-<span class="sourceLineNo">1782</span>   */<a name="line.1782"></a>
-<span class="sourceLineNo">1783</span>  public boolean isOnline() {<a name="line.1783"></a>
-<span class="sourceLineNo">1784</span>    return online.get();<a name="line.1784"></a>
-<span class="sourceLineNo">1785</span>  }<a name="line.1785"></a>
-<span class="sourceLineNo">1786</span><a name="line.1786"></a>
-<span class="sourceLineNo">1787</span>  /**<a name="line.1787"></a>
-<span class="sourceLineNo">1788</span>   * Setup WAL log and replication if enabled.<a name="line.1788"></a>
-<span class="sourceLineNo">1789</span>   * Replication setup is done in here because it wants to be hooked up to WAL.<a name="line.1789"></a>
-<span class="sourceLineNo">1790</span>   *<a name="line.1790"></a>
-<span class="sourceLineNo">1791</span>   * @throws IOException<a name="line.1791"></a>
-<span class="sourceLineNo">1792</span>   */<a name="line.1792"></a>
-<span class="sourceLineNo">1793</span>  private void setupWALAndReplication() throws IOException {<a name="line.1793"></a>
-<span class="sourceLineNo">1794</span>    // TODO Replication make assumptions here based on the default filesystem impl<a name="line.1794"></a>
-<span class="sourceLineNo">1795</span>    Path oldLogDir = new Path(walRootDir, HConstants.HREGION_OLDLOGDIR_NAME);<a name="line.1795"></a>
-<span class="sourceLineNo">1796</span>    String logName = AbstractFSWALProvider.getWALDirectoryName(this.serverName.toString());<a name="line.1796"></a>
-<span class="sourceLineNo">1797</span><a name="line.1797"></a>
-<span class="sourceLineNo">1798</span>    Path logDir = new Path(walRootDir, logName);<a name="line.1798"></a>
-<span class="sourceLineNo">1799</span>    if (LOG.isDebugEnabled()) LOG.debug("logDir=" + logDir);<a name="line.1799"></a>
-<span class="sourceLineNo">1800</span>    if (this.walFs.exists(logDir)) {<a name="line.1800"></a>
-<span class="sourceLineNo">1801</span>      throw new RegionServerRunningException("Region server has already " +<a name="line.1801"></a>
-<span class="sourceLineNo">1802</span>          "created directory at " + this.serverName.toString());<a name="line.1802"></a>
-<span class="sourceLineNo">1803</span>    }<a name="line.1803"></a>
-<span class="sourceLineNo">1804</span><a name="line.1804"></a>
-<span class="sourceLineNo">1805</span>    // Instantiate replication if replication enabled.  Pass it the log directories.<a name="line.1805"></a>
-<span class="sourceLineNo">1806</span>    // In here we create the Replication instances. Later they are initialized and started up.<a name="line.1806"></a>
-<span class="sourceLineNo">1807</span>    createNewReplicationInstance(conf, this, this.walFs, logDir, oldLogDir);<a name="line.1807"></a>
-<span class="sourceLineNo">1808</span><a name="line.1808"></a>
-<span class="sourceLineNo">1809</span>    // listeners the wal factory will add to wals it creates.<a name="line.1809"></a>
-<span class="sourceLineNo">1810</span>    List&lt;WALActionsListener&gt; listeners = new ArrayList&lt;&gt;();<a name="line.1810"></a>
-<span class="sourceLineNo">1811</span>    listeners.add(new MetricsWAL());<a name="line.1811"></a>
-<span class="sourceLineNo">1812</span>    if (this.replicationSourceHandler != null &amp;&amp;<a name="line.1812"></a>
-<span class="sourceLineNo">1813</span>        this.replicationSourceHandler.getWALActionsListener() != null) {<a name="line.1813"></a>
-<span class="sourceLineNo">1814</span>      // Replication handler is an implementation of WALActionsListener.<a name="line.1814"></a>
-<span class="sourceLineNo">1815</span>      listeners.add(this.replicationSourceHandler.getWALActionsListener());<a name="line.1815"></a>
-<span class="sourceLineNo">1816</span>    }<a name="line.1816"></a>
-<span class="sourceLineNo">1817</span><a name="line.1817"></a>
-<span class="sourceLineNo">1818</span>    // There is a cyclic dependency between ReplicationSourceHandler and WALFactory.<a name="line.1818"></a>
-<span class="sourceLineNo">1819</span>    // We use WALActionsListener to get the newly rolled WALs, so we need to get the<a name="line.1819"></a>
-<span class="sourceLineNo">1820</span>    // WALActionsListeners from ReplicationSourceHandler before constructing WALFactory. And then<a name="line.1820"></a>
-<span class="sourceLineNo">1821</span>    // ReplicationSourceHandler need to use WALFactory get the length of the wal file being written.<a name="line.1821"></a>
-<span class="sourceLineNo">1822</span>    // So we here we need to construct WALFactory first, and then pass it to the initialized method<a name="line.1822"></a>
-<span class="sourceLineNo">1823</span>    // of ReplicationSourceHandler.<a name="line.1823"></a>
-<span class="sourceLineNo">1824</span>    // TODO: I can't follow replication; it has initialize and then later on we start it!<a name="line.1824"></a>
-<span class="sourceLineNo">1825</span>    WALFactory factory = new WALFactory(conf, listeners, serverName.toString());<a name="line.1825"></a>
-<span class="sourceLineNo">1826</span>    this.walFactory = factory;<a name="line.1826"></a>
-<span class="sourceLineNo">1827</span>    if (this.replicationSourceHandler != null) {<a name="line.1827"></a>
-<span class="sourceLineNo">1828</span>      this.replicationSourceHandler.initialize(this, walFs, logDir, oldLogDir, factory);<a name="line.1828"></a>
-<span class="sourceLineNo">1829</span>    }<a name="line.1829"></a>
-<span class="sourceLineNo">1830</span>    if (this.replicationSinkHandler != null &amp;&amp;<a name="line.1830"></a>
-<span class="sourceLineNo">1831</span>        this.replicationSinkHandler != this.replicationSourceHandler) {<a name="line.1831"></a>
-<span class="sourceLineNo">1832</span>      this.replicationSinkHandler.initialize(this, walFs, logDir, oldLogDir, factory);<a name="line.1832"></a>
-<span class="sourceLineNo">1833</span>    }<a name="line.1833"></a>
-<span class="sourceLineNo">1834</span>  }<a name="line.1834"></a>
-<span class="sourceLineNo">1835</span><a name="line.1835"></a>
-<span class="sourceLineNo">1836</span>  /**<a name="line.1836"></a>
-<span class="sourceLineNo">1837</span>   * Start up replication source and sink handlers.<a name="line.1837"></a>
-<span class="sourceLineNo">1838</span>   * @throws IOException<a name="line.1838"></a>
-<span class="sourceLineNo">1839</span>   */<a name="line.1839"></a>
-<span class="sourceLineNo">1840</span>  private void startReplicationService() throws IOException {<a name="line.1840"></a>
-<span class="sourceLineNo">1841</span>    if (this.replicationSourceHandler == this.replicationSinkHandler &amp;&amp;<a name="line.1841"></a>
-<span class="sourceLineNo">1842</span>        this.replicationSourceHandler != null) {<a name="line.1842"></a>
-<span class="sourceLineNo">1843</span>      this.replicationSourceHandler.startReplicationService();<a name="line.1843"></a>
-<span class="sourceLineNo">1844</span>    } else {<a name="line.1844"></a>
-<span class="sourceLineNo">1845</span>      if (this.replicationSourceHandler != null) {<a name="line.1845"></a>
-<span class="sourceLineNo">1846</span>        this.replicationSourceHandler.startReplicationService();<a name="line.1846"></a>
-<span class="sourceLineNo">1847</span>      }<a name="line.1847"></a>
-<span class="sourceLineNo">1848</span>      if (this.replicationSinkHandler != null) {<a name="line.1848"></a>
-<span class="sourceLineNo">1849</span>        this.replicationSinkHandler.startReplicationService();<a name="line.1849"></a>
-<span class="sourceLineNo">1850</span>      }<a name="line.1850"></a>
-<span class="sourceLineNo">1851</span>    }<a name="line.1851"></a>
-<span class="sourceLineNo">1852</span>  }<a name="line.1852"></a>
-<span class="sourceLineNo">1853</span><a name="line.1853"></a>
+<span class="sourceLineNo">1534</span><a name="line.1534"></a>
+<span class="sourceLineNo">1535</span>      // Set up ZK<a name="line.1535"></a>
+<span class="sourceLineNo">1536</span>      LOG.info("Serving as " + this.serverName + ", RpcServer on " + rpcServices.isa +<a name="line.1536"></a>
+<span class="sourceLineNo">1537</span>          ", sessionid=0x" +<a name="line.1537"></a>
+<span class="sourceLineNo">1538</span>          Long.toHexString(this.zooKeeper.getRecoverableZooKeeper().getSessionId()));<a name="line.1538"></a>
+<span class="sourceLineNo">1539</span><a name="line.1539"></a>
+<span class="sourceLineNo">1540</span>      // Wake up anyone waiting for this server to online<a name="line.1540"></a>
+<span class="sourceLineNo">1541</span>      synchronized (online) {<a name="line.1541"></a>
+<span class="sourceLineNo">1542</span>        online.set(true);<a name="line.1542"></a>
+<span class="sourceLineNo">1543</span>        online.notifyAll();<a name="line.1543"></a>
+<span class="sourceLineNo">1544</span>      }<a name="line.1544"></a>
+<span class="sourceLineNo">1545</span>    } catch (Throwable e) {<a name="line.1545"></a>
+<span class="sourceLineNo">1546</span>      stop("Failed initialization");<a name="line.1546"></a>
+<span class="sourceLineNo">1547</span>      throw convertThrowableToIOE(cleanup(e, "Failed init"),<a name="line.1547"></a>
+<span class="sourceLineNo">1548</span>          "Region server startup failed");<a name="line.1548"></a>
+<span class="sourceLineNo">1549</span>    } finally {<a name="line.1549"></a>
+<span class="sourceLineNo">1550</span>      sleeper.skipSleepCycle();<a name="line.1550"></a>
+<span class="sourceLineNo">1551</span>    }<a name="line.1551"></a>
+<span class="sourceLineNo">1552</span>  }<a name="line.1552"></a>
+<span class="sourceLineNo">1553</span><a name="line.1553"></a>
+<span class="sourceLineNo">1554</span>  protected void initializeMemStoreChunkCreator() {<a name="line.1554"></a>
+<span class="sourceLineNo">1555</span>    if (MemStoreLAB.isEnabled(conf)) {<a name="line.1555"></a>
+<span class="sourceLineNo">1556</span>      // MSLAB is enabled. So initialize MemStoreChunkPool<a name="line.1556"></a>
+<span class="sourceLineNo">1557</span>      // By this time, the MemstoreFlusher is already initialized. We can get the global limits from<a name="line.1557"></a>
+<span class="sourceLineNo">1558</span>      // it.<a name="line.1558"></a>
+<span class="sourceLineNo">1559</span>      Pair&lt;Long, MemoryType&gt; pair = MemorySizeUtil.getGlobalMemStoreSize(conf);<a name="line.1559"></a>
+<span class="sourceLineNo">1560</span>      long globalMemStoreSize = pair.getFirst();<a name="line.1560"></a>
+<span class="sourceLineNo">1561</span>      boolean offheap = this.regionServerAccounting.isOffheap();<a name="line.1561"></a>
+<span class="sourceLineNo">1562</span>      // When off heap memstore in use, take full area for chunk pool.<a name="line.1562"></a>
+<span class="sourceLineNo">1563</span>      float poolSizePercentage = offheap? 1.0F:<a name="line.1563"></a>
+<span class="sourceLineNo">1564</span>          conf.getFloat(MemStoreLAB.CHUNK_POOL_MAXSIZE_KEY, MemStoreLAB.POOL_MAX_SIZE_DEFAULT);<a name="line.1564"></a>
+<span class="sourceLineNo">1565</span>      float initialCountPercentage = conf.getFloat(MemStoreLAB.CHUNK_POOL_INITIALSIZE_KEY,<a name="line.1565"></a>
+<span class="sourceLineNo">1566</span>          MemStoreLAB.POOL_INITIAL_SIZE_DEFAULT);<a name="line.1566"></a>
+<span class="sourceLineNo">1567</span>      int chunkSize = conf.getInt(MemStoreLAB.CHUNK_SIZE_KEY, MemStoreLAB.CHUNK_SIZE_DEFAULT);<a name="line.1567"></a>
+<span class="sourceLineNo">1568</span>      // init the chunkCreator<a name="line.1568"></a>
+<span class="sourceLineNo">1569</span>      ChunkCreator chunkCreator =<a name="line.1569"></a>
+<span class="sourceLineNo">1570</span>          ChunkCreator.initialize(chunkSize, offheap, globalMemStoreSize, poolSizePercentage,<a name="line.1570"></a>
+<span class="sourceLineNo">1571</span>      initialCountPercentage, this.hMemManager);<a name="line.1571"></a>
+<span class="sourceLineNo">1572</span>    }<a name="line.1572"></a>
+<span class="sourceLineNo">1573</span>  }<a name="line.1573"></a>
+<span class="sourceLineNo">1574</span><a name="line.1574"></a>
+<span class="sourceLineNo">1575</span>  private void startHeapMemoryManager() {<a name="line.1575"></a>
+<span class="sourceLineNo">1576</span>    this.hMemManager = HeapMemoryManager.create(this.conf, this.cacheFlusher, this,<a name="line.1576"></a>
+<span class="sourceLineNo">1577</span>        this.regionServerAccounting);<a name="line.1577"></a>
+<span class="sourceLineNo">1578</span>    if (this.hMemManager != null) {<a name="line.1578"></a>
+<span class="sourceLineNo">1579</span>      this.hMemManager.start(getChoreService());<a name="line.1579"></a>
+<span class="sourceLineNo">1580</span>    }<a name="line.1580"></a>
+<span class="sourceLineNo">1581</span>  }<a name="line.1581"></a>
+<span class="sourceLineNo">1582</span><a name="line.1582"></a>
+<span class="sourceLineNo">1583</span>  private void createMyEphemeralNode() throws KeeperException, IOException {<a name="line.1583"></a>
+<span class="sourceLineNo">1584</span>    RegionServerInfo.Builder rsInfo = RegionServerInfo.newBuilder();<a name="line.1584"></a>
+<span class="sourceLineNo">1585</span>    rsInfo.setInfoPort(infoServer != null ? infoServer.getPort() : -1);<a name="line.1585"></a>
+<span class="sourceLineNo">1586</span>    rsInfo.setVersionInfo(ProtobufUtil.getVersionInfo());<a name="line.1586"></a>
+<span class="sourceLineNo">1587</span>    byte[] data = ProtobufUtil.prependPBMagic(rsInfo.build().toByteArray());<a name="line.1587"></a>
+<span class="sourceLineNo">1588</span>    ZKUtil.createEphemeralNodeAndWatch(this.zooKeeper, getMyEphemeralNodePath(), data);<a name="line.1588"></a>
+<span class="sourceLineNo">1589</span>  }<a name="line.1589"></a>
+<span class="sourceLineNo">1590</span><a name="line.1590"></a>
+<span class="sourceLineNo">1591</span>  private void deleteMyEphemeralNode() throws KeeperException {<a name="line.1591"></a>
+<span class="sourceLineNo">1592</span>    ZKUtil.deleteNode(this.zooKeeper, getMyEphemeralNodePath());<a name="line.1592"></a>
+<span class="sourceLineNo">1593</span>  }<a name="line.1593"></a>
+<span class="sourceLineNo">1594</span><a name="line.1594"></a>
+<span class="sourceLineNo">1595</span>  @Override<a name="line.1595"></a>
+<span class="sourceLineNo">1596</span>  public RegionServerAccounting getRegionServerAccounting() {<a name="line.1596"></a>
+<span class="sourceLineNo">1597</span>    return regionServerAccounting;<a name="line.1597"></a>
+<span class="sourceLineNo">1598</span>  }<a name="line.1598"></a>
+<span class="sourceLineNo">1599</span><a name="line.1599"></a>
+<span class="sourceLineNo">1600</span>  /*<a name="line.1600"></a>
+<span class="sourceLineNo">1601</span>   * @param r Region to get RegionLoad for.<a name="line.1601"></a>
+<span class="sourceLineNo">1602</span>   * @param regionLoadBldr the RegionLoad.Builder, can be null<a name="line.1602"></a>
+<span class="sourceLineNo">1603</span>   * @param regionSpecifier the RegionSpecifier.Builder, can be null<a name="line.1603"></a>
+<span class="sourceLineNo">1604</span>   * @return RegionLoad instance.<a name="line.1604"></a>
+<span class="sourceLineNo">1605</span>   *<a name="line.1605"></a>
+<span class="sourceLineNo">1606</span>   * @throws IOException<a name="line.1606"></a>
+<span class="sourceLineNo">1607</span>   */<a name="line.1607"></a>
+<span class="sourceLineNo">1608</span>  RegionLoad createRegionLoad(final HRegion r, RegionLoad.Builder regionLoadBldr,<a name="line.1608"></a>
+<span class="sourceLineNo">1609</span>      RegionSpecifier.Builder regionSpecifier) throws IOException {<a name="line.1609"></a>
+<span class="sourceLineNo">1610</span>    byte[] name = r.getRegionInfo().getRegionName();<a name="line.1610"></a>
+<span class="sourceLineNo">1611</span>    int stores = 0;<a name="line.1611"></a>
+<span class="sourceLineNo">1612</span>    int storefiles = 0;<a name="line.1612"></a>
+<span class="sourceLineNo">1613</span>    int storeUncompressedSizeMB = 0;<a name="line.1613"></a>
+<span class="sourceLineNo">1614</span>    int storefileSizeMB = 0;<a name="line.1614"></a>
+<span class="sourceLineNo">1615</span>    int memstoreSizeMB = (int) (r.getMemStoreSize() / 1024 / 1024);<a name="line.1615"></a>
+<span class="sourceLineNo">1616</span>    long storefileIndexSizeKB = 0;<a name="line.1616"></a>
+<span class="sourceLineNo">1617</span>    int rootIndexSizeKB = 0;<a name="line.1617"></a>
+<span class="sourceLineNo">1618</span>    int totalStaticIndexSizeKB = 0;<a name="line.1618"></a>
+<span class="sourceLineNo">1619</span>    int totalStaticBloomSizeKB = 0;<a name="line.1619"></a>
+<span class="sourceLineNo">1620</span>    long totalCompactingKVs = 0;<a name="line.1620"></a>
+<span class="sourceLineNo">1621</span>    long currentCompactedKVs = 0;<a name="line.1621"></a>
+<span class="sourceLineNo">1622</span>    List&lt;HStore&gt; storeList = r.getStores();<a name="line.1622"></a>
+<span class="sourceLineNo">1623</span>    stores += storeList.size();<a name="line.1623"></a>
+<span class="sourceLineNo">1624</span>    for (HStore store : storeList) {<a name="line.1624"></a>
+<span class="sourceLineNo">1625</span>      storefiles += store.getStorefilesCount();<a name="line.1625"></a>
+<span class="sourceLineNo">1626</span>      storeUncompressedSizeMB += (int) (store.getStoreSizeUncompressed() / 1024 / 1024);<a name="line.1626"></a>
+<span class="sourceLineNo">1627</span>      storefileSizeMB += (int) (store.getStorefilesSize() / 1024 / 1024);<a name="line.1627"></a>
+<span class="sourceLineNo">1628</span>      storefileIndexSizeKB += store.getStorefilesIndexSize() / 1024;<a name="line.1628"></a>
+<span class="sourceLineNo">1629</span>      CompactionProgress progress = store.getCompactionProgress();<a name="line.1629"></a>
+<span class="sourceLineNo">1630</span>      if (progress != null) {<a name="line.1630"></a>
+<span class="sourceLineNo">1631</span>        totalCompactingKVs += progress.totalCompactingKVs;<a name="line.1631"></a>
+<span class="sourceLineNo">1632</span>        currentCompactedKVs += progress.currentCompactedKVs;<a name="line.1632"></a>
+<span class="sourceLineNo">1633</span>      }<a name="line.1633"></a>
+<span class="sourceLineNo">1634</span>      rootIndexSizeKB += (int) (store.getStorefilesIndexSize() / 1024);<a name="line.1634"></a>
+<span class="sourceLineNo">1635</span>      totalStaticIndexSizeKB += (int) (store.getTotalStaticIndexSize() / 1024);<a name="line.1635"></a>
+<span class="sourceLineNo">1636</span>      totalStaticBloomSizeKB += (int) (store.getTotalStaticBloomSize() / 1024);<a name="line.1636"></a>
+<span class="sourceLineNo">1637</span>    }<a name="line.1637"></a>
+<span class="sourceLineNo">1638</span><a name="line.1638"></a>
+<span class="sourceLineNo">1639</span>    float dataLocality =<a name="line.1639"></a>
+<span class="sourceLineNo">1640</span>        r.getHDFSBlocksDistribution().getBlockLocalityIndex(serverName.getHostname());<a name="line.1640"></a>
+<span class="sourceLineNo">1641</span>    if (regionLoadBldr == null) {<a name="line.1641"></a>
+<span class="sourceLineNo">1642</span>      regionLoadBldr = RegionLoad.newBuilder();<a name="line.1642"></a>
+<span class="sourceLineNo">1643</span>    }<a name="line.1643"></a>
+<span class="sourceLineNo">1644</span>    if (regionSpecifier == null) {<a name="line.1644"></a>
+<span class="sourceLineNo">1645</span>      regionSpecifier = RegionSpecifier.newBuilder();<a name="line.1645"></a>
+<span class="sourceLineNo">1646</span>    }<a name="line.1646"></a>
+<span class="sourceLineNo">1647</span>    regionSpecifier.setType(RegionSpecifierType.REGION_NAME);<a name="line.1647"></a>
+<span class="sourceLineNo">1648</span>    regionSpecifier.setValue(UnsafeByteOperations.unsafeWrap(name));<a name="line.1648"></a>
+<span class="sourceLineNo">1649</span>    regionLoadBldr.setRegionSpecifier(regionSpecifier.build())<a name="line.1649"></a>
+<span class="sourceLineNo">1650</span>      .setStores(stores)<a name="line.1650"></a>
+<span class="sourceLineNo">1651</span>      .setStorefiles(storefiles)<a name="line.1651"></a>
+<span class="sourceLineNo">1652</span>      .setStoreUncompressedSizeMB(storeUncompressedSizeMB)<a name="line.1652"></a>
+<span class="sourceLineNo">1653</span>      .setStorefileSizeMB(storefileSizeMB)<a name="line.1653"></a>
+<span class="sourceLineNo">1654</span>      .setMemStoreSizeMB(memstoreSizeMB)<a name="line.1654"></a>
+<span class="sourceLineNo">1655</span>      .setStorefileIndexSizeKB(storefileIndexSizeKB)<a name="line.1655"></a>
+<span class="sourceLineNo">1656</span>      .setRootIndexSizeKB(rootIndexSizeKB)<a name="line.1656"></a>
+<span class="sourceLineNo">1657</span>      .setTotalStaticIndexSizeKB(totalStaticIndexSizeKB)<a name="line.1657"></a>
+<span class="sourceLineNo">1658</span>      .setTotalStaticBloomSizeKB(totalStaticBloomSizeKB)<a name="line.1658"></a>
+<span class="sourceLineNo">1659</span>      .setReadRequestsCount(r.getReadRequestsCount())<a name="line.1659"></a>
+<span class="sourceLineNo">1660</span>      .setFilteredReadRequestsCount(r.getFilteredReadRequestsCount())<a name="line.1660"></a>
+<span class="sourceLineNo">1661</span>      .setWriteRequestsCount(r.getWriteRequestsCount())<a name="line.1661"></a>
+<span class="sourceLineNo">1662</span>      .setTotalCompactingKVs(totalCompactingKVs)<a name="line.1662"></a>
+<span class="sourceLineNo">1663</span>      .setCurrentCompactedKVs(currentCompactedKVs)<a name="line.1663"></a>
+<span class="sourceLineNo">1664</span>      .setDataLocality(dataLocality)<a name="line.1664"></a>
+<span class="sourceLineNo">1665</span>      .setLastMajorCompactionTs(r.getOldestHfileTs(true));<a name="line.1665"></a>
+<span class="sourceLineNo">1666</span>    ((HRegion)r).setCompleteSequenceId(regionLoadBldr);<a name="line.1666"></a>
+<span class="sourceLineNo">1667</span><a name="line.1667"></a>
+<span class="sourceLineNo">1668</span>    return regionLoadBldr.build();<a name="line.1668"></a>
+<span class="sourceLineNo">1669</span>  }<a name="line.1669"></a>
+<span class="sourceLineNo">1670</span><a name="line.1670"></a>
+<span class="sourceLineNo">1671</span>  /**<a name="line.1671"></a>
+<span class="sourceLineNo">1672</span>   * @param encodedRegionName<a name="line.1672"></a>
+<span class="sourceLineNo">1673</span>   * @return An instance of RegionLoad.<a name="line.1673"></a>
+<span class="sourceLineNo">1674</span>   */<a name="line.1674"></a>
+<span class="sourceLineNo">1675</span>  public RegionLoad createRegionLoad(final String encodedRegionName) throws IOException {<a name="line.1675"></a>
+<span class="sourceLineNo">1676</span>    HRegion r = onlineRegions.get(encodedRegionName);<a name="line.1676"></a>
+<span class="sourceLineNo">1677</span>    return r != null ? createRegionLoad(r, null, null) : null;<a name="line.1677"></a>
+<span class="sourceLineNo">1678</span>  }<a name="line.1678"></a>
+<span class="sourceLineNo">1679</span><a name="line.1679"></a>
+<span class="sourceLineNo">1680</span>  /*<a name="line.1680"></a>
+<span class="sourceLineNo">1681</span>   * Inner class that runs on a long period checking if regions need compaction.<a name="line.1681"></a>
+<span class="sourceLineNo">1682</span>   */<a name="line.1682"></a>
+<span class="sourceLineNo">1683</span>  private static class CompactionChecker extends ScheduledChore {<a name="line.1683"></a>
+<span class="sourceLineNo">1684</span>    private final HRegionServer instance;<a name="line.1684"></a>
+<span class="sourceLineNo">1685</span>    private final int majorCompactPriority;<a name="line.1685"></a>
+<span class="sourceLineNo">1686</span>    private final static int DEFAULT_PRIORITY = Integer.MAX_VALUE;<a name="line.1686"></a>
+<span class="sourceLineNo">1687</span>    //Iteration is 1-based rather than 0-based so we don't check for compaction<a name="line.1687"></a>
+<span class="sourceLineNo">1688</span>    // immediately upon region server startup<a name="line.1688"></a>
+<span class="sourceLineNo">1689</span>    private long iteration = 1;<a name="line.1689"></a>
+<span class="sourceLineNo">1690</span><a name="line.1690"></a>
+<span class="sourceLineNo">1691</span>    CompactionChecker(final HRegionServer h, final int sleepTime, final Stoppable stopper) {<a name="line.1691"></a>
+<span class="sourceLineNo">1692</span>      super("CompactionChecker", stopper, sleepTime);<a name="line.1692"></a>
+<span class="sourceLineNo">1693</span>      this.instance = h;<a name="line.1693"></a>
+<span class="sourceLineNo">1694</span>      LOG.info(this.getName() + " runs every " + StringUtils.formatTime(sleepTime));<a name="line.1694"></a>
+<span class="sourceLineNo">1695</span><a name="line.1695"></a>
+<span class="sourceLineNo">1696</span>      /* MajorCompactPriority is configurable.<a name="line.1696"></a>
+<span class="sourceLineNo">1697</span>       * If not set, the compaction will use default priority.<a name="line.1697"></a>
+<span class="sourceLineNo">1698</span>       */<a name="line.1698"></a>
+<span class="sourceLineNo">1699</span>      this.majorCompactPriority = this.instance.conf.<a name="line.1699"></a>
+<span class="sourceLineNo">1700</span>          getInt("hbase.regionserver.compactionChecker.majorCompactPriority",<a name="line.1700"></a>
+<span class="sourceLineNo">1701</span>              DEFAULT_PRIORITY);<a name="line.1701"></a>
+<span class="sourceLineNo">1702</span>    }<a name="line.1702"></a>
+<span class="sourceLineNo">1703</span><a name="line.1703"></a>
+<span class="sourceLineNo">1704</span>    @Override<a name="line.1704"></a>
+<span class="sourceLineNo">1705</span>    protected void chore() {<a name="line.1705"></a>
+<span class="sourceLineNo">1706</span>      for (Region r : this.instance.onlineRegions.values()) {<a name="line.1706"></a>
+<span class="sourceLineNo">1707</span>        if (r == null) {<a name="line.1707"></a>
+<span class="sourceLineNo">1708</span>          continue;<a name="line.1708"></a>
+<span class="sourceLineNo">1709</span>        }<a name="line.1709"></a>
+<span class="sourceLineNo">1710</span>        HRegion hr = (HRegion) r;<a name="line.1710"></a>
+<span class="sourceLineNo">1711</span>        for (HStore s : hr.stores.values()) {<a name="line.1711"></a>
+<span class="sourceLineNo">1712</span>          try {<a name="line.1712"></a>
+<span class="sourceLineNo">1713</span>            long multiplier = s.getCompactionCheckMultiplier();<a name="line.1713"></a>
+<span class="sourceLineNo">1714</span>            assert multiplier &gt; 0;<a name="line.1714"></a>
+<span class="sourceLineNo">1715</span>            if (iteration % multiplier != 0) {<a name="line.1715"></a>
+<span class="sourceLineNo">1716</span>              continue;<a name="line.1716"></a>
+<span class="sourceLineNo">1717</span>            }<a name="line.1717"></a>
+<span class="sourceLineNo">1718</span>            if (s.needsCompaction()) {<a name="line.1718"></a>
+<span class="sourceLineNo">1719</span>              // Queue a compaction. Will recognize if major is needed.<a name="line.1719"></a>
+<span class="sourceLineNo">1720</span>              this.instance.compactSplitThread.requestSystemCompaction(hr, s,<a name="line.1720"></a>
+<span class="sourceLineNo">1721</span>                getName() + " requests compaction");<a name="line.1721"></a>
+<span class="sourceLineNo">1722</span>            } else if (s.shouldPerformMajorCompaction()) {<a name="line.1722"></a>
+<span class="sourceLineNo">1723</span>              s.triggerMajorCompaction();<a name="line.1723"></a>
+<span class="sourceLineNo">1724</span>              if (majorCompactPriority == DEFAULT_PRIORITY ||<a name="line.1724"></a>
+<span class="sourceLineNo">1725</span>                  majorCompactPriority &gt; hr.getCompactPriority()) {<a name="line.1725"></a>
+<span class="sourceLineNo">1726</span>                this.instance.compactSplitThread.requestCompaction(hr, s,<a name="line.1726"></a>
+<span class="sourceLineNo">1727</span>                    getName() + " requests major compaction; use default priority",<a name="line.1727"></a>
+<span class="sourceLineNo">1728</span>                    Store.NO_PRIORITY,<a name="line.1728"></a>
+<span class="sourceLineNo">1729</span>                CompactionLifeCycleTracker.DUMMY, null);<a name="line.1729"></a>
+<span class="sourceLineNo">1730</span>              } else {<a name="line.1730"></a>
+<span class="sourceLineNo">1731</span>                this.instance.compactSplitThread.requestCompaction(hr, s,<a name="line.1731"></a>
+<span class="sourceLineNo">1732</span>                    getName() + " requests major compaction; use configured priority",<a name="line.1732"></a>
+<span class="sourceLineNo">1733</span>                    this.majorCompactPriority, CompactionLifeCycleTracker.DUMMY, null);<a name="line.1733"></a>
+<span class="sourceLineNo">1734</span>              }<a name="line.1734"></a>
+<span class="sourceLineNo">1735</span>            }<a name="line.1735"></a>
+<span class="sourceLineNo">1736</span>          } catch (IOException e) {<a name="line.1736"></a>
+<span class="sourceLineNo">1737</span>            LOG.warn("Failed major compaction check on " + r, e);<a name="line.1737"></a>
+<span class="sourceLineNo">1738</span>          }<a name="line.1738"></a>
+<span class="sourceLineNo">1739</span>        }<a name="line.1739"></a>
+<span class="sourceLineNo">1740</span>      }<a name="line.1740"></a>
+<span class="sourceLineNo">1741</span>      iteration = (iteration == Long.MAX_VALUE) ? 0 : (iteration + 1);<a name="line.1741"></a>
+<span class="sourceLineNo">1742</span>    }<a name="line.1742"></a>
+<span class="sourceLineNo">1743</span>  }<a name="line.1743"></a>
+<span class="sourceLineNo">1744</span><a name="line.1744"></a>
+<span class="sourceLineNo">1745</span>  static class PeriodicMemStoreFlusher extends ScheduledChore {<a name="line.1745"></a>
+<span class="sourceLineNo">1746</span>    final HRegionServer server;<a name="line.1746"></a>
+<span class="sourceLineNo">1747</span>    final static int RANGE_OF_DELAY = 5 * 60 * 1000; // 5 min in milliseconds<a name="line.1747"></a>
+<span class="sourceLineNo">1748</span>    final static int MIN_DELAY_TIME = 0; // millisec<a name="line.1748"></a>
+<span class="sourceLineNo">1749</span>    public PeriodicMemStoreFlusher(int cacheFlushInterval, final HRegionServer server) {<a name="line.1749"></a>
+<span class="sourceLineNo">1750</span>      super("MemstoreFlusherChore", server, cacheFlushInterval);<a name="line.1750"></a>
+<span class="sourceLineNo">1751</span>      this.server = server;<a name="line.1751"></a>
+<span class="sourceLineNo">1752</span>    }<a name="line.1752"></a>
+<span class="sourceLineNo">1753</span><a name="line.1753"></a>
+<span class="sourceLineNo">1754</span>    @Override<a name="line.1754"></a>
+<span class="sourceLineNo">1755</span>    protected void chore() {<a name="line.1755"></a>
+<span class="sourceLineNo">1756</span>      final StringBuffer whyFlush = new StringBuffer();<a name="line.1756"></a>
+<span class="sourceLineNo">1757</span>      for (HRegion r : this.server.onlineRegions.values()) {<a name="line.1757"></a>
+<span class="sourceLineNo">1758</span>        if (r == null) continue;<a name="line.1758"></a>
+<span class="sourceLineNo">1759</span>        if (r.shouldFlush(whyFlush)) {<a name="line.1759"></a>
+<span class="sourceLineNo">1760</span>          FlushRequester requester = server.getFlushRequester();<a name="line.1760"></a>
+<span class="sourceLineNo">1761</span>          if (requester != null) {<a name="line.1761"></a>
+<span class="sourceLineNo">1762</span>            long randomDelay = RandomUtils.nextInt(0, RANGE_OF_DELAY) + MIN_DELAY_TIME;<a name="line.1762"></a>
+<span class="sourceLineNo">1763</span>            LOG.info(getName() + " requesting flush of " +<a name="line.1763"></a>
+<span class="sourceLineNo">1764</span>              r.getRegionInfo().getRegionNameAsString() + " because " +<a name="line.1764"></a>
+<span class="sourceLineNo">1765</span>              whyFlush.toString() +<a name="line.1765"></a>
+<span class="sourceLineNo">1766</span>              " after random delay " + randomDelay + "ms");<a name="line.1766"></a>
+<span class="sourceLineNo">1767</span>            //Throttle the flushes by putting a delay. If we don't throttle, and there<a name="line.1767"></a>
+<span class="sourceLineNo">1768</span>            //is a balanced write-load on the regions in a table, we might end up<a name="line.1768"></a>
+<span class="sourceLineNo">1769</span>            //overwhelming the filesystem with too many flushes at once.<a name="line.1769"></a>
+<span class="sourceLineNo">1770</span>            requester.requestDelayedFlush(r, randomDelay, false);<a name="line.1770"></a>
+<span class="sourceLineNo">1771</span>          }<a name="line.1771"></a>
+<span class="sourceLineNo">1772</span>        }<a name="line.1772"></a>
+<span class="sourceLineNo">1773</span>      }<a name="line.1773"></a>
+<span class="sourceLineNo">1774</span>    }<a name="line.1774"></a>
+<span class="sourceLineNo">1775</span>  }<a name="line.1775"></a>
+<span class="sourceLineNo">1776</span><a name="line.1776"></a>
+<span class="sourceLineNo">1777</span>  /**<a name="line.1777"></a>
+<span class="sourceLineNo">1778</span>   * Report the status of the server. A server is online once all the startup is<a name="line.1778"></a>
+<span class="sourceLineNo">1779</span>   * completed (setting up filesystem, starting executorService threads, etc.). This<a name="line.1779"></a>
+<span class="sourceLineNo">1780</span>   * method is designed mostly to be useful in tests.<a name="line.1780"></a>
+<span class="sourceLineNo">1781</span>   *<a name="line.1781"></a>
+<span class="sourceLineNo">1782</span>   * @return true if online, false if not.<a name="line.1782"></a>
+<span class="sourceLineNo">1783</span>   */<a name="line.1783"></a>
+<span class="sourceLineNo">1784</span>  public boolean isOnline() {<a name="line.1784"></a>
+<span class="sourceLineNo">1785</span>    return online.get();<a name="line.1785"></a>
+<span class="sourceLineNo">1786</span>  }<a name="line.1786"></a>
+<span class="sourceLineNo">1787</span><a name="line.1787"></a>
+<span class="sourceLineNo">1788</span>  /**<a name="line.1788"></a>
+<span class="sourceLineNo">1789</span>   * Setup WAL log and replication if enabled.<a name="line.1789"></a>
+<span class="sourceLineNo">1790</span>   * Replication setup is done in here because it wants to be hooked up to WAL.<a name="line.1790"></a>
+<span class="sourceLineNo">1791</span>   *<a name="line.1791"></a>
+<span class="sourceLineNo">1792</span>   * @throws IOException<a name="line.1792"></a>
+<span class="sourceLineNo">1793</span>   */<a name="line.1793"></a>
+<span class="sourceLineNo">1794</span>  private void setupWALAndReplication() throws IOException {<a name="line.1794"></a>
+<span class="sourceLineNo">1795</span>    // TODO Replication make assumptions here based on the default filesystem impl<a name="line.1795"></a>
+<span class="sourceLineNo">1796</span>    Path oldLogDir = new Path(walRootDir, HConstants.HREGION_OLDLOGDIR_NAME);<a name="line.1796"></a>
+<span class="sourceLineNo">1797</span>    String logName = AbstractFSWALProvider.getWALDirectoryName(this.serverName.toString());<a name="line.1797"></a>
+<span class="sourceLineNo">1798</span><a name="line.1798"></a>
+<span class="sourceLineNo">1799</span>    Path logDir = new Path(walRootDir, logName);<a name="line.1799"></a>
+<span class="sourceLineNo">1800</span>    if (LOG.isDebugEnabled()) LOG.debug("logDir=" + logDir);<a name="line.1800"></a>
+<span class="sourceLineNo">1801</span>    if (this.walFs.exists(logDir)) {<a name="line.1801"></a>
+<span class="sourceLineNo">1802</span>      throw new RegionServerRunningException("Region server has already " +<a name="line.1802"></a>
+<span class="sourceLineNo">1803</span>          "created directory at " + this.serverName.toString());<a name="line.1803"></a>
+<span class="sourceLineNo">1804</span>    }<a name="line.1804"></a>
+<span class="sourceLineNo">1805</span><a name="line.1805"></a>
+<span class="sourceLineNo">1806</span>    // Instantiate replication if replication enabled.  Pass it the log directories.<a name="line.1806"></a>
+<span class="sourceLineNo">1807</span>    // In here we create the Replication instances. Later they are initialized and started up.<a name="line.1807"></a>
+<span class="sourceLineNo">1808</span>    createNewReplicationInstance(conf, this, this.walFs, logDir, oldLogDir);<a name="line.1808"></a>
+<span class="sourceLineNo">1809</span><a name="line.1809"></a>
+<span class="sourceLineNo">1810</span>    // listeners the wal factory will add to wals it creates.<a name="line.1810"></a>
+<span class="sourceLineNo">1811</span>    List&lt;WALActionsListener&gt; listeners = new ArrayList&lt;&gt;();<a name="line.1811"></a>
+<span class="sourceLineNo">1812</span>    listeners.add(new MetricsWAL());<a name="line.1812"></a>
+<span class="sourceLineNo">1813</span>    if (this.replicationSourceHandler != null &amp;&amp;<a name="line.1813"></a>
+<span class="sourceLineNo">1814</span>        this.replicationSourceHandler.getWALActionsListener() != null) {<a name="line.1814"></a>
+<span class="sourceLineNo">1815</span>      // Replication handler is an implementation of WALActionsListener.<a name="line.1815"></a>
+<span class="sourceLineNo">1816</span>      listeners.add(this.replicationSourceHandler.getWALActionsListener());<a name="line.1816"></a>
+<span class="sourceLineNo">1817</span>    }<a name="line.1817"></a>
+<span class="sourceLineNo">1818</span><a name="line.1818"></a>
+<span class="sourceLineNo">1819</span>    // There is a cyclic dependency between ReplicationSourceHandler and WALFactory.<a name="line.1819"></a>
+<span class="sourceLineNo">1820</span>    // We use WALActionsListener to get the newly rolled WALs, so we need to get the<a name="line.1820"></a>
+<span class="sourceLineNo">1821</span>    // WALActionsListeners from ReplicationSourceHandler before constructing WALFactory. And then<a name="line.1821"></a>
+<span class="sourceLineNo">1822</span>    // ReplicationSourceHandler need to use WALFactory get the length of the wal file being written.<a name="line.1822"></a>
+<span class="sourceLineNo">1823</span>    // So we here we need to construct WALFactory first, and then pass it to the initialized method<a name="line.1823"></a>
+<span class="sourceLineNo">1824</span>    // of ReplicationSourceHandler.<a name="line.1824"></a>
+<span class="sourceLineNo">1825</span>    // TODO: I can't follow replication; it has initialize and then later on we start it!<a name="line.1825"></a>
+<span class="sourceLineNo">1826</span>    WALFactory factory = new WALFactory(conf, listeners, serverName.toString());<a name="line.1826"></a>
+<span class="sourceLineNo">1827</span>    this.walFactory = factory;<a name="line.1827"></a>
+<span class="sourceLineNo">1828</span>    if (this.replicationSourceHandler != null) {<a name="line.1828"></a>
+<span class="sourceLineNo">1829</span>      this.replicationSourceHandler.initialize(this, walFs, logDir, oldLogDir, factory);<a name="line.1829"></a>
+<span class="sourceLineNo">1830</span>    }<a name="line.1830"></a>
+<span class="sourceLineNo">1831</span>    if (this.replicationSinkHandler != null &amp;&amp;<a name="line.1831"></a>
+<span class="sourceLineNo">1832</span>        this.replicationSinkHandler != this.replicationSourceHandler) {<a name="line.1832"></a>
+<span class="sourceLineNo">1833</span>      this.replicationSinkHandler.initialize(this, walFs, logDir, oldLogDir, factory);<a name="line.1833"></a>
+<span class="sourceLineNo">1834</span>    }<a name="line.1834"></a>
+<span class="sourceLineNo">1835</span>  }<a name="line.1835"></a>
+<span class="sourceLineNo">1836</span><a name="line.1836"></a>
+<span class="sourceLineNo">1837</span>  /**<a name="line.1837"></a>
+<span class="sourceLineNo">1838</span>   * Start up replication source and sink handlers.<a name="line.1838"></a>
+<span class="sourceLineNo">1839</span>   * @throws IOException<a name="line.1839"></a>
+<span class="sourceLineNo">1840</span>   */<a name="line.1840"></a>
+<span class="sourceLineNo">1841</span>  private void startReplicationService() throws IOException {<a name="line.1841"></a>
+<span class="sourceLineNo">1842</span>    if (this.replicationSourceHandler == this.replicationSinkHandler &amp;&amp;<a name="line.1842"></a>
+<span class="sourceLineNo">1843</span>        this.replicationSourceHandler != null) {<a name="line.1843"></a>
+<span class="sourceLineNo">1844</span>      this.replicationSourceHandler.startReplicationService();<a name="line.1844"></a>
+<span class="sourceLineNo">1845</span>    } else {<a name="line.1845"></a>
+<span class="sourceLineNo">1846</span>      if (this.replicationSourceHandler != null) {<a name="line.1846"></a>
+<span class="sourceLineNo">1847</span>        this.replicationSourceHandler.startReplicationService();<a name="line.1847"></a>
+<span class="sourceLineNo">1848</span>      }<a name="line.1848"></a>
+<span class="sourceLineNo">1849</span>      if (this.replicationSinkHandler != null) {<a name="line.1849"></a>
+<span class="sourceLineNo">1850</span>        this.replicationSinkHandler.startReplicationService();<a name="line.1850"></a>
+<span class="sourceLineNo">1851</span>      }<a name="line.1851"></a>
+<span class="sourceLineNo">1852</span>    }<a name="line.1852"></a>
+<span class="sourceLineNo">1853</span>  }<a name="line.1853"></a>
 <span class="sourceLineNo">1854</span><a name="line.1854"></a>
-<span class="sourceLineNo">1855</span>  public MetricsRegionServer getRegionServerMetrics() {<a name="line.1855"></a>
-<span class="sourceLineNo">1856</span>    return this.metricsRegionServer;<a name="line.1856"></a>
-<span class="sourceLineNo">1857</span>  }<a name="line.1857"></a>
-<span class="sourceLineNo">1858</span><a name="line.1858"></a>
-<span class="sourceLineNo">1859</span>  /**<a name="line.1859"></a>
-<span class="sourceLineNo">1860</span>   * @return Master address tracker instance.<a name="line.1860"></a>
-<span class="sourceLineNo">1861</span>   */<a name="line.1861"></a>
-<span class="sourceLineNo">1862</span>  public MasterAddressTracker getMasterAddressTracker() {<a name="line.1862"></a>
-<span class="sourceLineNo">1863</span>    return this.masterAddressTracker;<a name="line.1863"></a>
-<span class="sourceLineNo">1864</span>  }<a name="line.1864"></a>
-<span class="sourceLineNo">1865</span><a name="line.1865"></a>
-<span class="sourceLineNo">1866</span>  /*<a name="line.1866"></a>
-<span class="sourceLineNo">1867</span>   * Start maintenance Threads, Server, Worker and lease checker threads.<a name="line.1867"></a>
-<span class="sourceLineNo">1868</span>   * Start all threads we need to run. This is called after we've successfully<a name="line.1868"></a>
-<span class="sourceLineNo">1869</span>   * registered with the Master.<a name="line.1869"></a>
-<span class="sourceLineNo">1870</span>   * Install an UncaughtExceptionHandler that calls abort of RegionServer if we<a name="line.1870"></a>
-<span class="sourceLineNo">1871</span>   * get an unhandled exception. We cannot set the handler on all threads.<a name="line.1871"></a>
-<span class="sourceLineNo">1872</span>   * Server's internal Listener thread is off limits. For Server, if an OOME, it<a name="line.1872"></a>
-<span class="sourceLineNo">1873</span>   * waits a while then retries. Meantime, a flush or a compaction that tries to<a name="line.1873"></a>
-<span class="sourceLineNo">1874</span>   * run should trigger same critical condition and the shutdown will run. On<a name="line.1874"></a>
-<span class="sourceLineNo">1875</span>   * its way out, this server will shut down Server. Leases are sort of<a name="line.1875"></a>
-<span class="sourceLineNo">1876</span>   * inbetween. It has an internal thread that while it inherits from Chore, it<a name="line.1876"></a>
-<span class="sourceLineNo">1877</span>   * keeps its own internal stop mechanism so needs to be stopped by this<a name="line.1877"></a>
-<span class="sourceLineNo">1878</span>   * hosting server. Worker logs the exception and exits.<a name="line.1878"></a>
-<span class="sourceLineNo">1879</span>   */<a name="line.1879"></a>
-<span class="sourceLineNo">1880</span>  private void startServices() throws IOException {<a name="line.1880"></a>
-<span class="sourceLineNo">1881</span>    if (!isStopped() &amp;&amp; !isAborted()) {<a name="line.1881"></a>
-<span class="sourceLineNo">1882</span>      initializeThreads();<a name="line.1882"></a>
-<span class="sourceLineNo">1883</span>    }<a name="line.1883"></a>
-<span class="sourceLineNo">1884</span>    this.secureBulkLoadManager = new SecureBulkLoadManager(this.conf, clusterConnection);<a name="line.1884"></a>
-<span class="sourceLineNo">1885</span>    this.secureBulkLoadManager.start();<a name="line.1885"></a>
-<span class="sourceLineNo">1886</span><a name="line.1886"></a>
-<span class="sourceLineNo">1887</span>    // Health checker thread.<a name="line.1887"></a>
-<span class="sourceLineNo">1888</span>    if (isHealthCheckerConfigured()) {<a name="line.1888"></a>
-<span class="sourceLineNo">1889</span>      int sleepTime = this.conf.getInt(HConstants.HEALTH_CHORE_WAKE_FREQ,<a name="line.1889"></a>
-<span class="sourceLineNo">1890</span>      HConstants.DEFAULT_THREAD_WAKE_FREQUENCY);<a name="line.1890"></a>
-<span class="sourceLineNo">1891</span>      healthCheckChore = new HealthCheckChore(sleepTime, this, getConfiguration());<a name="line.1891"></a>
-<span class="sourceLineNo">1892</span>    }<a name="line.1892"></a>
-<span class="sourceLineNo">1893</span><a name="line.1893"></a>
-<span class="sourceLineNo">1894</span>    this.walRoller = new LogRoller(this, this);<a name="line.1894"></a>
-<span class="sourceLineNo">1895</span>    this.flushThroughputController = FlushThroughputControllerFactory.create(this, conf);<a name="line.1895"></a>
-<span class="sourceLineNo">1896</span><a name="line.1896"></a>
-<span class="sourceLineNo">1897</span>    // Create the CompactedFileDischarger chore executorService. This chore helps to<a name="line.1897"></a>
-<span class="sourceLineNo">1898</span>    // remove the compacted files<a name="line.1898"></a>
-<span class="sourceLineNo">1899</span>    // that will no longer be used in reads.<a name="line.1899"></a>
-<span class="sourceLineNo">1900</span>    // Default is 2 mins. The default value for TTLCleaner is 5 mins so we set this to<a name="line.1900"></a>
-<span class="sourceLineNo">1901</span>    // 2 mins so that compacted files can be archived before the TTLCleaner runs<a name="line.1901"></a>
-<span class="sourceLineNo">1902</span>    int cleanerInterval =<a name="line.1902"></a>
-<span class="sourceLineNo">1903</span>    conf.getInt("hbase.hfile.compaction.discharger.interval", 2 * 60 * 1000);<a name="line.1903"></a>
-<span class="sourceLineNo">1904</span>    this.compactedFileDischarger =<a name="line.1904"></a>
-<span class="sourceLineNo">1905</span>    new CompactedHFilesDischarger(cleanerInterval, this, this);<a name="line.1905"></a>
-<span class="sourceLineNo">1906</span>    choreService.scheduleChore(compactedFileDischarger);<a name="line.1906"></a>
-<span class="sourceLineNo">1907</span><a name="line.1907"></a>
-<span class="sourceLineNo">1908</span>    // Start executor services<a name="line.1908"></a>
-<span class="sourceLineNo">1909</span>    this.executorService.startExecutorService(ExecutorType.RS_OPEN_REGION,<a name="line.1909"></a>
-<span class="sourceLineNo">1910</span>        conf.getInt("hbase.regionserver.executor.openregion.threads", 3));<a name="line.1910"></a>
-<span class="sourceLineNo">1911</span>    this.executorService.startExecutorService(ExecutorType.RS_OPEN_META,<a name="line.1911"></a>
-<span class="sourceLineNo">1912</span>        conf.getInt("hbase.regionserver.executor.openmeta.threads", 1));<a name="line.1912"></a>
-<span class="sourceLineNo">1913</span>    this.executorService.startExecutorService(ExecutorType.RS_OPEN_PRIORITY_REGION,<a name="line.1913"></a>
-<span class="sourceLineNo">1914</span>        conf.getInt("hbase.regionserver.executor.openpriorityregion.threads", 3));<a name="line.1914"></a>
-<span class="sourceLineNo">1915</span>    this.executorService.startExecutorService(ExecutorType.RS_CLOSE_REGION,<a name="line.1915"></a>
-<span class="sourceLineNo">1916</span>        conf.getInt("hbase.regionserver.executor.closeregion.threads", 3));<a name="line.1916"></a>
-<span class="sourceLineNo">1917</span>    this.executorService.startExecutorService(ExecutorType.RS_CLOSE_META,<a name="line.1917"></a>
-<span class="sourceLineNo">1918</span>        conf.getInt("hbase.regionserver.executor.closemeta.threads", 1));<a name="line.1918"></a>
-<span class="sourceLineNo">1919</span>    if (conf.getBoolean(StoreScanner.STORESCANNER_PARALLEL_SEEK_ENABLE, false)) {<a name="line.1919"></a>
-<span class="sourceLineNo">1920</span>      this.executorService.startExecutorService(ExecutorType.RS_PARALLEL_SEEK,<a name="line.1920"></a>
-<span class="sourceLineNo">1921</span>          conf.getInt("hbase.storescanner.parallel.seek.threads", 10));<a name="line.1921"></a>
-<span class="sourceLineNo">1922</span>    }<a name="line.1922"></a>
-<span class="sourceLineNo">1923</span>    this.executorService.startExecutorService(ExecutorType.RS_LOG_REPLAY_OPS, conf.getInt(<a name="line.1923"></a>
-<span class="sourceLineNo">1924</span>    "hbase.regionserver.wal.max.splitters", SplitLogWorkerCoordination.DEFAULT_MAX_SPLITTERS));<a name="line.1924"></a>
-<span class="sourceLineNo">1925</span>    // Start the threads for compacted files discharger<a name="line.1925"></a>
-<span class="sourceLineNo">1926</span>    this.executorService.startExecutorService(ExecutorType.RS_COMPACTED_FILES_DISCHARGER,<a name="line.1926"></a>
-<span class="sourceLineNo">1927</span>        conf.getInt(CompactionConfiguration.HBASE_HFILE_COMPACTION_DISCHARGER_THREAD_COUNT, 10));<a name="line.1927"></a>
-<span class="sourceLineNo">1928</span>    if (ServerRegionReplicaUtil.isRegionReplicaWaitForPrimaryFlushEnabled(conf)) {<a name="line.1928"></a>
-<span class="sourceLineNo">1929</span>      this.executorService.startExecutorService(ExecutorType.RS_REGION_REPLICA_FLUSH_OPS,<a name="line.1929"></a>
-<span class="sourceLineNo">1930</span>          conf.getInt("hbase.regionserver.region.replica.flusher.threads",<a name="line.1930"></a>
-<span class="sourceLineNo">1931</span>              conf.getInt("hbase.regionserver.executor.openregion.threads", 3)));<a name="line.1931"></a>
-<span class="sourceLineNo">1932</span>    }<a name="line.1932"></a>
-<span class="sourceLineNo">1933</span><a name="line.1933"></a>
-<span class="sourceLineNo">1934</span>    Threads.setDaemonThreadRunning(this.walRoller.getThread(), getName() + ".logRoller",<a name="line.1934"></a>
-<span class="sourceLineNo">1935</span>    uncaughtExceptionHandler);<a name="line.1935"></a>
-<span class="sourceLineNo">1936</span>    this.cacheFlusher.start(uncaughtExceptionHandler);<a name="line.1936"></a>
-<span class="sourceLineNo">1937</span><a name="line.1937"></a>
-<span class="sourceLineNo">1938</span>    if (this.compactionChecker != null) choreService.scheduleChore(compactionChecker);<a name="line.1938"></a>
-<span class="sourceLineNo">1939</span>    if (this.periodicFlusher != null) choreService.scheduleChore(periodicFlusher);<a name="line.1939"></a>
-<span class="sourceLineNo">1940</span>    if (this.healthCheckChore != null) choreService.scheduleChore(healthCheckChore);<a name="line.1940"></a>
-<span class="sourceLineNo">1941</span>    if (this.nonceManagerChore != null) choreService.scheduleChore(nonceManagerChore);<a name="line.1941"></a>
-<span class="sourceLineNo">1942</span>    if (this.storefileRefresher != null) choreService.scheduleChore(storefileRefresher);<a name="line.1942"></a>
-<span class="sourceLineNo">1943</span>    if (this.movedRegionsCleaner != null) choreService.scheduleChore(movedRegionsCleaner);<a name="line.1943"></a>
-<span class="sourceLineNo">1944</span>    if (this.fsUtilizationChore != null) choreService.scheduleChore(fsUtilizationChore);<a name="line.1944"></a>
-<span class="sourceLineNo">1945</span><a name="line.1945"></a>
-<span class="sourceLineNo">1946</span>    // Leases is not a Thread. Internally it runs a daemon thread. If it gets<a name="line.1946"></a>
-<span class="sourceLineNo">1947</span>    // an unhandled exception, it will just exit.<a name="line.1947"></a>
-<span class="sourceLineNo">1948</span>    Threads.setDaemonThreadRunning(this.leases.getThread(), getName() + ".leaseChecker",<a name="line.1948"></a>
-<span class="sourceLineNo">1949</span>    uncaughtExceptionHandler);<a name="line.1949"></a>
-<span class="sourceLineNo">1950</span><a name="line.1950"></a>
-<span class="sourceLineNo">1951</span>    // Create the log splitting worker and start it<a name="line.1951"></a>
-<span class="sourceLineNo">1952</span>    // set a smaller retries to fast fail otherwise splitlogworker could be blocked for<a name="line.1952"></a>
-<span class="sourceLineNo">1953</span>    // quite a while inside Connection layer. The worker won't be available for other<a name="line.1953"></a>
-<span class="sourceLineNo">1954</span>    // tasks even after current task is preempted after a split task times out.<a name="line.1954"></a>
-<span class="sourceLineNo">1955</span>    Configuration sinkConf = HBaseConfiguration.create(conf);<a name="line.1955"></a>
-<span class="sourceLineNo">1956</span>    sinkConf.setInt(HConstants.HBASE_CLIENT_RETRIES_NUMBER,<a name="line.1956"></a>
-<span class="sourceLineNo">1957</span>        conf.getInt("hbase.log.replay.retries.number", 8)); // 8 retries take about 23 seconds<a name="line.1957"></a>
-<span class="sourceLineNo">1958</span>    sinkConf.setInt(HConstants.HBASE_RPC_TIMEOUT_KEY,<a name="line.1958"></a>
-<span class="sourceLineNo">1959</span>        conf.getInt("hbase.log.replay.rpc.timeout", 30000)); // default 30 seconds<a name="line.1959"></a>
-<span class="sourceLineNo">1960</span>    sinkConf.setInt(HConstants.HBASE_CLIENT_SERVERSIDE_RETRIES_MULTIPLIER, 1);<a name="line.1960"></a>
-<span class="sourceLineNo">1961</span>    if (this.csm != null) {<a name="line.1961"></a>
-<span class="sourceLineNo">1962</span>      // SplitLogWorker needs csm. If none, don't start this.<a name="line.1962"></a>
-<span class="sourceLineNo">1963</span>      this.splitLogWorker = new SplitLogWorker(this, sinkConf, this,<a name="line.1963"></a>
-<span class="sourceLineNo">1964</span>          this, walFactory);<a name="line.1964"></a>
-<span class="sourceLineNo">1965</span>      splitLogWorker.start();<a name="line.1965"></a>
-<span class="sourceLineNo">1966</span>    } else {<a name="line.1966"></a>
-<span class="sourceLineNo">1967</span>      LOG.warn("SplitLogWorker Service NOT started; CoordinatedStateManager is null");<a name="line.1967"></a>
-<span class="sourceLineNo">1968</span>    }<a name="line.1968"></a>
-<span class="sourceLineNo">1969</span><a name="line.1969"></a>
-<span class="sourceLineNo">1970</span>    // Memstore services.<a name="line.1970"></a>
-<span class="sourceLineNo">1971</span>    startHeapMemoryManager();<a name="line.1971"></a>
-<span class="sourceLineNo">1972</span>    // Call it after starting HeapMemoryManager.<a name="line.1972"></a>
-<span class="sourceLineNo">1973</span>    initializeMemStoreChunkCreator();<a name="line.1973"></a>
-<span class="sourceLineNo">1974</span>  }<a name="line.1974"></a>
-<span class="sourceLineNo">1975</span><a name="line.1975"></a>
-<span class="sourceLineNo">1976</span>  private void initializeThreads() throws IOException {<a name="line.1976"></a>
-<span class="sourceLineNo">1977</span>    // Cache flushing thread.<a name="line.1977"></a>
-<span class="sourceLineNo">1978</span>    this.cacheFlusher = new MemStoreFlusher(conf, this);<a name="line.1978"></a>
-<span class="sourceLineNo">1979</span><a name="line.1979"></a>
-<span class="sourceLineNo">1980</span>    // Compaction thread<a name="line.1980"></a>
-<span class="sourceLineNo">1981</span>    this.compactSplitThread = new CompactSplit(this);<a name="line.1981"></a>
-<span class="sourceLineNo">1982</span><a name="line.1982"></a>
-<span class="sourceLineNo">1983</span>    // Background thread to check for compactions; needed if region has not gotten updates<a name="line.1983"></a>
-<span class="sourceLineNo">1984</span>    // in a while. It will take care of not checking too frequently on store-by-store basis.<a name="line.1984"></a>
-<span class="sourceLineNo">1985</span>    this.compactionChecker = new CompactionChecker(this, this.threadWakeFrequency, this);<a name="line.1985"></a>
-<span class="sourceLineNo">1986</span>    this.periodicFlusher = new PeriodicMemStoreFlusher(this.threadWakeFrequency, this);<a name="line.1986"></a>
-<span class="sourceLineNo">1987</span>    this.leases = new Leases(this.threadWakeFrequency);<a name="line.1987"></a>
-<span class="sourceLineNo">1988</span><a name="line.1988"></a>
-<span class="sourceLineNo">1989</span>    // Create the thread to clean the moved regions list<a name="line.1989"></a>
-<span class="sourceLineNo">1990</span>    movedRegionsCleaner = MovedRegionsCleaner.create(this);<a name="line.1990"></a>
-<span class="sourceLineNo">1991</span><a name="line.1991"></a>
-<span class="sourceLineNo">1992</span>    if (this.nonceManager != null) {<a name="line.1992"></a>
-<span class="sourceLineNo">1993</span>      // Create the scheduled chore that cleans up nonces.<a name="line.1993"></a>
-<span class="sourceLineNo">1994</span>      nonceManagerChore = this.nonceManager.createCleanupScheduledChore(this);<a name="line.1994"></a>
-<span class="sourceLineNo">1995</span>    }<a name="line.1995"></a>
-<span class="sourceLineNo">1996</span><a name="line.1996"></a>
-<span class="sourceLineNo">1997</span>    // Setup the Quota Manager<a name="line.1997"></a>
-<span class="sourceLineNo">1998</span>    rsQuotaManager = new RegionServerRpcQuotaManager(this);<a name="line.1998"></a>
-<span class="sourceLineNo">1999</span>    rsSpaceQuotaManager = new RegionServerSpaceQuotaManager(this);<a name="line.1999"></a>
-<span class="sourceLineNo">2000</span><a name="line.2000"></a>
-<span class="sourceLineNo">2001</span>    if (QuotaUtil.isQuotaEnabled(conf)) {<a name="line.2001"></a>
-<span class="sourceLineNo">2002</span>      this.fsUtilizationChore = new FileSystemUtilizationChore(this);<a name="line.2002"></a>
-<span class="sourceLineNo">2003</span>    }<a name="line.2003"></a>
-<span class="sourceLineNo">2004</span><a name="line.2004"></a>
+<span class="sourceLineNo">1855</span><a name="line.1855"></a>
+<span class="sourceLineNo">1856</span>  public MetricsRegionServer getRegionServerMetrics() {<a name="line.1856"

<TRUNCATED>

[24/32] hbase-site git commit: Published site at .

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/29b27596/devapidocs/org/apache/hadoop/hbase/regionserver/MetricsTableLatenciesImpl.TableHistograms.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/regionserver/MetricsTableLatenciesImpl.TableHistograms.html b/devapidocs/org/apache/hadoop/hbase/regionserver/MetricsTableLatenciesImpl.TableHistograms.html
new file mode 100644
index 0000000..325199c
--- /dev/null
+++ b/devapidocs/org/apache/hadoop/hbase/regionserver/MetricsTableLatenciesImpl.TableHistograms.html
@@ -0,0 +1,522 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>MetricsTableLatenciesImpl.TableHistograms (Apache HBase 3.0.0-SNAPSHOT API)</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="MetricsTableLatenciesImpl.TableHistograms (Apache HBase 3.0.0-SNAPSHOT API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/MetricsTableLatenciesImpl.TableHistograms.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableLatenciesImpl.html" title="class in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableSource.html" title="interface in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/hadoop/hbase/regionserver/MetricsTableLatenciesImpl.TableHistograms.html" target="_top">Frames</a></li>
+<li><a href="MetricsTableLatenciesImpl.TableHistograms.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.hadoop.hbase.regionserver</div>
+<h2 title="Class MetricsTableLatenciesImpl.TableHistograms" class="title">Class MetricsTableLatenciesImpl.TableHistograms</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.hadoop.hbase.regionserver.MetricsTableLatenciesImpl.TableHistograms</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>Enclosing class:</dt>
+<dd><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableLatenciesImpl.html" title="class in org.apache.hadoop.hbase.regionserver">MetricsTableLatenciesImpl</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public static class <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsTableLatenciesImpl.html#line.39">MetricsTableLatenciesImpl.TableHistograms</a>
+extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></pre>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== FIELD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field.summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Field Summary table, listing fields, and an explanation">
+<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Field and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>(package private) <a href="../../../../../org/apache/hadoop/metrics2/MetricHistogram.html" title="interface in org.apache.hadoop.metrics2">MetricHistogram</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableLatenciesImpl.TableHistograms.html#appendTimeHisto">appendTimeHisto</a></span></code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>(package private) <a href="../../../../../org/apache/hadoop/metrics2/MetricHistogram.html" title="interface in org.apache.hadoop.metrics2">MetricHistogram</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableLatenciesImpl.TableHistograms.html#deleteBatchTimeHisto">deleteBatchTimeHisto</a></span></code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>(package private) <a href="../../../../../org/apache/hadoop/metrics2/MetricHistogram.html" title="interface in org.apache.hadoop.metrics2">MetricHistogram</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableLatenciesImpl.TableHistograms.html#deleteTimeHisto">deleteTimeHisto</a></span></code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>(package private) <a href="../../../../../org/apache/hadoop/metrics2/MetricHistogram.html" title="interface in org.apache.hadoop.metrics2">MetricHistogram</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableLatenciesImpl.TableHistograms.html#getTimeHisto">getTimeHisto</a></span></code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>(package private) <a href="../../../../../org/apache/hadoop/metrics2/MetricHistogram.html" title="interface in org.apache.hadoop.metrics2">MetricHistogram</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableLatenciesImpl.TableHistograms.html#incrementTimeHisto">incrementTimeHisto</a></span></code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>(package private) <a href="../../../../../org/apache/hadoop/metrics2/MetricHistogram.html" title="interface in org.apache.hadoop.metrics2">MetricHistogram</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableLatenciesImpl.TableHistograms.html#putBatchTimeHisto">putBatchTimeHisto</a></span></code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>(package private) <a href="../../../../../org/apache/hadoop/metrics2/MetricHistogram.html" title="interface in org.apache.hadoop.metrics2">MetricHistogram</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableLatenciesImpl.TableHistograms.html#putTimeHisto">putTimeHisto</a></span></code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>(package private) <a href="../../../../../org/apache/hadoop/metrics2/MetricHistogram.html" title="interface in org.apache.hadoop.metrics2">MetricHistogram</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableLatenciesImpl.TableHistograms.html#scanSizeHisto">scanSizeHisto</a></span></code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>(package private) <a href="../../../../../org/apache/hadoop/metrics2/MetricHistogram.html" title="interface in org.apache.hadoop.metrics2">MetricHistogram</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableLatenciesImpl.TableHistograms.html#scanTimeHisto">scanTimeHisto</a></span></code>&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableLatenciesImpl.TableHistograms.html#TableHistograms-org.apache.hadoop.metrics2.lib.DynamicMetricsRegistry-org.apache.hadoop.hbase.TableName-">TableHistograms</a></span>(<a href="../../../../../org/apache/hadoop/metrics2/lib/DynamicMetricsRegistry.html" title="class in org.apache.hadoop.metrics2.lib">DynamicMetricsRegistry</a>&nbsp;registry,
+               <a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tn)</code>&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableLatenciesImpl.TableHistograms.html#updateAppend-long-">updateAppend</a></span>(long&nbsp;t)</code>&nbsp;</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableLatenciesImpl.TableHistograms.html#updateDelete-long-">updateDelete</a></span>(long&nbsp;t)</code>&nbsp;</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableLatenciesImpl.TableHistograms.html#updateDeleteBatch-long-">updateDeleteBatch</a></span>(long&nbsp;t)</code>&nbsp;</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableLatenciesImpl.TableHistograms.html#updateGet-long-">updateGet</a></span>(long&nbsp;t)</code>&nbsp;</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableLatenciesImpl.TableHistograms.html#updateIncrement-long-">updateIncrement</a></span>(long&nbsp;t)</code>&nbsp;</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableLatenciesImpl.TableHistograms.html#updatePut-long-">updatePut</a></span>(long&nbsp;time)</code>&nbsp;</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableLatenciesImpl.TableHistograms.html#updatePutBatch-long-">updatePutBatch</a></span>(long&nbsp;time)</code>&nbsp;</td>
+</tr>
+<tr id="i7" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableLatenciesImpl.TableHistograms.html#updateScanSize-long-">updateScanSize</a></span>(long&nbsp;scanSize)</code>&nbsp;</td>
+</tr>
+<tr id="i8" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableLatenciesImpl.TableHistograms.html#updateScanTime-long-">updateScanTime</a></span>(long&nbsp;t)</code>&nbsp;</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang
 /Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ FIELD DETAIL =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field.detail">
+<!--   -->
+</a>
+<h3>Field Detail</h3>
+<a name="getTimeHisto">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getTimeHisto</h4>
+<pre>final&nbsp;<a href="../../../../../org/apache/hadoop/metrics2/MetricHistogram.html" title="interface in org.apache.hadoop.metrics2">MetricHistogram</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsTableLatenciesImpl.TableHistograms.html#line.40">getTimeHisto</a></pre>
+</li>
+</ul>
+<a name="incrementTimeHisto">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>incrementTimeHisto</h4>
+<pre>final&nbsp;<a href="../../../../../org/apache/hadoop/metrics2/MetricHistogram.html" title="interface in org.apache.hadoop.metrics2">MetricHistogram</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsTableLatenciesImpl.TableHistograms.html#line.41">incrementTimeHisto</a></pre>
+</li>
+</ul>
+<a name="appendTimeHisto">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>appendTimeHisto</h4>
+<pre>final&nbsp;<a href="../../../../../org/apache/hadoop/metrics2/MetricHistogram.html" title="interface in org.apache.hadoop.metrics2">MetricHistogram</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsTableLatenciesImpl.TableHistograms.html#line.42">appendTimeHisto</a></pre>
+</li>
+</ul>
+<a name="putTimeHisto">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>putTimeHisto</h4>
+<pre>final&nbsp;<a href="../../../../../org/apache/hadoop/metrics2/MetricHistogram.html" title="interface in org.apache.hadoop.metrics2">MetricHistogram</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsTableLatenciesImpl.TableHistograms.html#line.43">putTimeHisto</a></pre>
+</li>
+</ul>
+<a name="putBatchTimeHisto">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>putBatchTimeHisto</h4>
+<pre>final&nbsp;<a href="../../../../../org/apache/hadoop/metrics2/MetricHistogram.html" title="interface in org.apache.hadoop.metrics2">MetricHistogram</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsTableLatenciesImpl.TableHistograms.html#line.44">putBatchTimeHisto</a></pre>
+</li>
+</ul>
+<a name="deleteTimeHisto">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>deleteTimeHisto</h4>
+<pre>final&nbsp;<a href="../../../../../org/apache/hadoop/metrics2/MetricHistogram.html" title="interface in org.apache.hadoop.metrics2">MetricHistogram</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsTableLatenciesImpl.TableHistograms.html#line.45">deleteTimeHisto</a></pre>
+</li>
+</ul>
+<a name="deleteBatchTimeHisto">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>deleteBatchTimeHisto</h4>
+<pre>final&nbsp;<a href="../../../../../org/apache/hadoop/metrics2/MetricHistogram.html" title="interface in org.apache.hadoop.metrics2">MetricHistogram</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsTableLatenciesImpl.TableHistograms.html#line.46">deleteBatchTimeHisto</a></pre>
+</li>
+</ul>
+<a name="scanTimeHisto">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>scanTimeHisto</h4>
+<pre>final&nbsp;<a href="../../../../../org/apache/hadoop/metrics2/MetricHistogram.html" title="interface in org.apache.hadoop.metrics2">MetricHistogram</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsTableLatenciesImpl.TableHistograms.html#line.47">scanTimeHisto</a></pre>
+</li>
+</ul>
+<a name="scanSizeHisto">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>scanSizeHisto</h4>
+<pre>final&nbsp;<a href="../../../../../org/apache/hadoop/metrics2/MetricHistogram.html" title="interface in org.apache.hadoop.metrics2">MetricHistogram</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsTableLatenciesImpl.TableHistograms.html#line.48">scanSizeHisto</a></pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="TableHistograms-org.apache.hadoop.metrics2.lib.DynamicMetricsRegistry-org.apache.hadoop.hbase.TableName-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>TableHistograms</h4>
+<pre><a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsTableLatenciesImpl.TableHistograms.html#line.50">TableHistograms</a>(<a href="../../../../../org/apache/hadoop/metrics2/lib/DynamicMetricsRegistry.html" title="class in org.apache.hadoop.metrics2.lib">DynamicMetricsRegistry</a>&nbsp;registry,
+                <a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tn)</pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="updatePut-long-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>updatePut</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsTableLatenciesImpl.TableHistograms.html#line.64">updatePut</a>(long&nbsp;time)</pre>
+</li>
+</ul>
+<a name="updatePutBatch-long-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>updatePutBatch</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsTableLatenciesImpl.TableHistograms.html#line.68">updatePutBatch</a>(long&nbsp;time)</pre>
+</li>
+</ul>
+<a name="updateDelete-long-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>updateDelete</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsTableLatenciesImpl.TableHistograms.html#line.72">updateDelete</a>(long&nbsp;t)</pre>
+</li>
+</ul>
+<a name="updateDeleteBatch-long-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>updateDeleteBatch</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsTableLatenciesImpl.TableHistograms.html#line.76">updateDeleteBatch</a>(long&nbsp;t)</pre>
+</li>
+</ul>
+<a name="updateGet-long-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>updateGet</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsTableLatenciesImpl.TableHistograms.html#line.80">updateGet</a>(long&nbsp;t)</pre>
+</li>
+</ul>
+<a name="updateIncrement-long-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>updateIncrement</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsTableLatenciesImpl.TableHistograms.html#line.84">updateIncrement</a>(long&nbsp;t)</pre>
+</li>
+</ul>
+<a name="updateAppend-long-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>updateAppend</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsTableLatenciesImpl.TableHistograms.html#line.88">updateAppend</a>(long&nbsp;t)</pre>
+</li>
+</ul>
+<a name="updateScanSize-long-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>updateScanSize</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsTableLatenciesImpl.TableHistograms.html#line.92">updateScanSize</a>(long&nbsp;scanSize)</pre>
+</li>
+</ul>
+<a name="updateScanTime-long-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>updateScanTime</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsTableLatenciesImpl.TableHistograms.html#line.96">updateScanTime</a>(long&nbsp;t)</pre>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/MetricsTableLatenciesImpl.TableHistograms.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableLatenciesImpl.html" title="class in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableSource.html" title="interface in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/hadoop/hbase/regionserver/MetricsTableLatenciesImpl.TableHistograms.html" target="_top">Frames</a></li>
+<li><a href="MetricsTableLatenciesImpl.TableHistograms.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2007&#x2013;2017 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/29b27596/devapidocs/org/apache/hadoop/hbase/regionserver/MetricsTableLatenciesImpl.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/regionserver/MetricsTableLatenciesImpl.html b/devapidocs/org/apache/hadoop/hbase/regionserver/MetricsTableLatenciesImpl.html
new file mode 100644
index 0000000..1523319
--- /dev/null
+++ b/devapidocs/org/apache/hadoop/hbase/regionserver/MetricsTableLatenciesImpl.html
@@ -0,0 +1,642 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>MetricsTableLatenciesImpl (Apache HBase 3.0.0-SNAPSHOT API)</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="MetricsTableLatenciesImpl (Apache HBase 3.0.0-SNAPSHOT API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":9,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10};
+var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/MetricsTableLatenciesImpl.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableLatencies.html" title="interface in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableLatenciesImpl.TableHistograms.html" title="class in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/hadoop/hbase/regionserver/MetricsTableLatenciesImpl.html" target="_top">Frames</a></li>
+<li><a href="MetricsTableLatenciesImpl.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.hadoop.hbase.regionserver</div>
+<h2 title="Class MetricsTableLatenciesImpl" class="title">Class MetricsTableLatenciesImpl</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li><a href="../../../../../org/apache/hadoop/hbase/metrics/BaseSourceImpl.html" title="class in org.apache.hadoop.hbase.metrics">org.apache.hadoop.hbase.metrics.BaseSourceImpl</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.hadoop.hbase.regionserver.MetricsTableLatenciesImpl</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Implemented Interfaces:</dt>
+<dd><a href="../../../../../org/apache/hadoop/hbase/metrics/BaseSource.html" title="interface in org.apache.hadoop.hbase.metrics">BaseSource</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableLatencies.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsTableLatencies</a>, org.apache.hadoop.metrics2.MetricsSource</dd>
+</dl>
+<hr>
+<br>
+<pre>@InterfaceAudience.Private
+public class <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsTableLatenciesImpl.html#line.34">MetricsTableLatenciesImpl</a>
+extends <a href="../../../../../org/apache/hadoop/hbase/metrics/BaseSourceImpl.html" title="class in org.apache.hadoop.hbase.metrics">BaseSourceImpl</a>
+implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableLatencies.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsTableLatencies</a></pre>
+<div class="block">Implementation of <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableLatencies.html" title="interface in org.apache.hadoop.hbase.regionserver"><code>MetricsTableLatencies</code></a> to track latencies for one table in a
+ RegionServer.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="nested.class.summary">
+<!--   -->
+</a>
+<h3>Nested Class Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Nested Class Summary table, listing nested classes, and an explanation">
+<caption><span>Nested Classes</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableLatenciesImpl.TableHistograms.html" title="class in org.apache.hadoop.hbase.regionserver">MetricsTableLatenciesImpl.TableHistograms</a></span></code>&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- =========== FIELD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field.summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Field Summary table, listing fields, and an explanation">
+<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Field and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>private <a href="http://docs.oracle.com/javase/8/docs/api/java/util/HashMap.html?is-external=true" title="class or interface in java.util">HashMap</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>,<a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableLatenciesImpl.TableHistograms.html" title="class in org.apache.hadoop.hbase.regionserver">MetricsTableLatenciesImpl.TableHistograms</a>&gt;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableLatenciesImpl.html#histogramsByTable">histogramsByTable</a></span></code>&nbsp;</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="fields.inherited.from.class.org.apache.hadoop.hbase.metrics.BaseSourceImpl">
+<!--   -->
+</a>
+<h3>Fields inherited from class&nbsp;org.apache.hadoop.hbase.metrics.<a href="../../../../../org/apache/hadoop/hbase/metrics/BaseSourceImpl.html" title="class in org.apache.hadoop.hbase.metrics">BaseSourceImpl</a></h3>
+<code><a href="../../../../../org/apache/hadoop/hbase/metrics/BaseSourceImpl.html#metricsAdapter">metricsAdapter</a>, <a href="../../../../../org/apache/hadoop/hbase/metrics/BaseSourceImpl.html#metricsContext">metricsContext</a>, <a href="../../../../../org/apache/hadoop/hbase/metrics/BaseSourceImpl.html#metricsDescription">metricsDescription</a>, <a href="../../../../../org/apache/hadoop/hbase/metrics/BaseSourceImpl.html#metricsJmxContext">metricsJmxContext</a>, <a href="../../../../../org/apache/hadoop/hbase/metrics/BaseSourceImpl.html#metricsName">metricsName</a>, <a href="../../../../../org/apache/hadoop/hbase/metrics/BaseSourceImpl.html#metricsRegistry">metricsRegistry</a>, <a href="../../../../../org/apache/hadoop/hbase/metrics/BaseSourceImpl.html#registry">registry</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="fields.inherited.from.class.org.apache.hadoop.hbase.regionserver.MetricsTableLatencies">
+<!--   -->
+</a>
+<h3>Fields inherited from interface&nbsp;org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableLatencies.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsTableLatencies</a></h3>
+<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableLatencies.html#APPEND_TIME">APPEND_TIME</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableLatencies.html#DELETE_BATCH_TIME">DELETE_BATCH_TIME</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableLatencies.html#DELETE_TIME">DELETE_TIME</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableLatencies.html#GET_TIME">GET_TIME</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableLatencies.html#INCREMENT_TIME">INCREMENT_TIME</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableLatencies.html#METRICS_CONTEXT">METRICS_CONTEXT</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableLatencies.html#METRICS_DESCRIPTION">METRICS_DESCRIPTION</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableLatencies.html#METRICS_JMX_CONTEXT">METRICS_JMX_CONTEXT<
 /a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableLatencies.html#METRICS_NAME">METRICS_NAME</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableLatencies.html#PUT_BATCH_TIME">PUT_BATCH_TIME</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableLatencies.html#PUT_TIME">PUT_TIME</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableLatencies.html#SCAN_SIZE">SCAN_SIZE</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableLatencies.html#SCAN_TIME">SCAN_TIME</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="fields.inherited.from.class.org.apache.hadoop.hbase.metrics.BaseSource">
+<!--   -->
+</a>
+<h3>Fields inherited from interface&nbsp;org.apache.hadoop.hbase.metrics.<a href="../../../../../org/apache/hadoop/hbase/metrics/BaseSource.html" title="interface in org.apache.hadoop.hbase.metrics">BaseSource</a></h3>
+<code><a href="../../../../../org/apache/hadoop/hbase/metrics/BaseSource.html#HBASE_METRICS_SYSTEM_NAME">HBASE_METRICS_SYSTEM_NAME</a></code></li>
+</ul>
+</li>
+</ul>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableLatenciesImpl.html#MetricsTableLatenciesImpl--">MetricsTableLatenciesImpl</a></span>()</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableLatenciesImpl.html#MetricsTableLatenciesImpl-java.lang.String-java.lang.String-java.lang.String-java.lang.String-">MetricsTableLatenciesImpl</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;metricsName,
+                         <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;metricsDescription,
+                         <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;metricsContext,
+                         <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;metricsJmxContext)</code>&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableLatenciesImpl.TableHistograms.html" title="class in org.apache.hadoop.hbase.regionserver">MetricsTableLatenciesImpl.TableHistograms</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableLatenciesImpl.html#getOrCreateTableHistogram-java.lang.String-">getOrCreateTableHistogram</a></span>(<a href="http://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="i1" class="rowColor">
+<td class="colFirst"><code>static <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableLatenciesImpl.html#qualifyMetricsName-org.apache.hadoop.hbase.TableName-java.lang.String-">qualifyMetricsName</a></span>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
+                  <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;metric)</code>&nbsp;</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableLatenciesImpl.html#updateAppend-java.lang.String-long-">updateAppend</a></span>(<a href="http://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,
+            long&nbsp;t)</code>
+<div class="block">Update the Append time histogram.</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableLatenciesImpl.html#updateDelete-java.lang.String-long-">updateDelete</a></span>(<a href="http://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,
+            long&nbsp;t)</code>
+<div class="block">Update the Delete time histogram</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableLatenciesImpl.html#updateDeleteBatch-java.lang.String-long-">updateDeleteBatch</a></span>(<a href="http://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,
+                 long&nbsp;t)</code>
+<div class="block">Update the batch Delete time histogram</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableLatenciesImpl.html#updateGet-java.lang.String-long-">updateGet</a></span>(<a href="http://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,
+         long&nbsp;t)</code>
+<div class="block">Update the Get time histogram .</div>
+</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableLatenciesImpl.html#updateIncrement-java.lang.String-long-">updateIncrement</a></span>(<a href="http://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,
+               long&nbsp;t)</code>
+<div class="block">Update the Increment time histogram.</div>
+</td>
+</tr>
+<tr id="i7" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableLatenciesImpl.html#updatePut-java.lang.String-long-">updatePut</a></span>(<a href="http://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,
+         long&nbsp;t)</code>
+<div class="block">Update the Put time histogram</div>
+</td>
+</tr>
+<tr id="i8" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableLatenciesImpl.html#updatePutBatch-java.lang.String-long-">updatePutBatch</a></span>(<a href="http://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,
+              long&nbsp;t)</code>
+<div class="block">Update the batch Put time histogram</div>
+</td>
+</tr>
+<tr id="i9" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableLatenciesImpl.html#updateScanSize-java.lang.String-long-">updateScanSize</a></span>(<a href="http://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,
+              long&nbsp;scanSize)</code>
+<div class="block">Update the scan size.</div>
+</td>
+</tr>
+<tr id="i10" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableLatenciesImpl.html#updateScanTime-java.lang.String-long-">updateScanTime</a></span>(<a href="http://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,
+              long&nbsp;t)</code>
+<div class="block">Update the scan time.</div>
+</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.hadoop.hbase.metrics.BaseSourceImpl">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.metrics.<a href="../../../../../org/apache/hadoop/hbase/metrics/BaseSourceImpl.html" title="class in org.apache.hadoop.hbase.metrics">BaseSourceImpl</a></h3>
+<code><a href="../../../../../org/apache/hadoop/hbase/metrics/BaseSourceImpl.html#decGauge-java.lang.String-long-">decGauge</a>, <a href="../../../../../org/apache/hadoop/hbase/metrics/BaseSourceImpl.html#getMetrics-org.apache.hadoop.metrics2.MetricsCollector-boolean-">getMetrics</a>, <a href="../../../../../org/apache/hadoop/hbase/metrics/BaseSourceImpl.html#getMetricsContext--">getMetricsContext</a>, <a href="../../../../../org/apache/hadoop/hbase/metrics/BaseSourceImpl.html#getMetricsDescription--">getMetricsDescription</a>, <a href="../../../../../org/apache/hadoop/hbase/metrics/BaseSourceImpl.html#getMetricsJmxContext--">getMetricsJmxContext</a>, <a href="../../../../../org/apache/hadoop/hbase/metrics/BaseSourceImpl.html#getMetricsName--">getMetricsName</a>, <a href="../../../../../org/apache/hadoop/hbase/metrics/BaseSourceImpl.html#getMetricsRegistry--">getMetricsRegistry</a>, <a href="../../../../../org/apache/hadoop/hbase/metrics/BaseSourceImpl.html#incCounters-java.lang.Str
 ing-long-">incCounters</a>, <a href="../../../../../org/apache/hadoop/hbase/metrics/BaseSourceImpl.html#incGauge-java.lang.String-long-">incGauge</a>, <a href="../../../../../org/apache/hadoop/hbase/metrics/BaseSourceImpl.html#init--">init</a>, <a href="../../../../../org/apache/hadoop/hbase/metrics/BaseSourceImpl.html#removeMetric-java.lang.String-">removeMetric</a>, <a href="../../../../../org/apache/hadoop/hbase/metrics/BaseSourceImpl.html#setGauge-java.lang.String-long-">setGauge</a>, <a href="../../../../../org/apache/hadoop/hbase/metrics/BaseSourceImpl.html#updateHistogram-java.lang.String-long-">updateHistogram</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang
 /Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.org.apache.hadoop.hbase.metrics.BaseSource">
+<!--   -->
+</a>
+<h3>Methods inherited from interface&nbsp;org.apache.hadoop.hbase.metrics.<a href="../../../../../org/apache/hadoop/hbase/metrics/BaseSource.html" title="interface in org.apache.hadoop.hbase.metrics">BaseSource</a></h3>
+<code><a href="../../../../../org/apache/hadoop/hbase/metrics/BaseSource.html#getMetricRegistryInfo--">getMetricRegistryInfo</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ FIELD DETAIL =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field.detail">
+<!--   -->
+</a>
+<h3>Field Detail</h3>
+<a name="histogramsByTable">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>histogramsByTable</h4>
+<pre>private final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/HashMap.html?is-external=true" title="class or interface in java.util">HashMap</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>,<a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableLatenciesImpl.TableHistograms.html" title="class in org.apache.hadoop.hbase.regionserver">MetricsTableLatenciesImpl.TableHistograms</a>&gt; <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsTableLatenciesImpl.html#line.36">histogramsByTable</a></pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="MetricsTableLatenciesImpl--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>MetricsTableLatenciesImpl</h4>
+<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsTableLatenciesImpl.html#line.122">MetricsTableLatenciesImpl</a>()</pre>
+</li>
+</ul>
+<a name="MetricsTableLatenciesImpl-java.lang.String-java.lang.String-java.lang.String-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>MetricsTableLatenciesImpl</h4>
+<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsTableLatenciesImpl.html#line.126">MetricsTableLatenciesImpl</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;metricsName,
+                                 <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;metricsDescription,
+                                 <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;metricsContext,
+                                 <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;metricsJmxContext)</pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="qualifyMetricsName-org.apache.hadoop.hbase.TableName-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>qualifyMetricsName</h4>
+<pre>public static&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsTableLatenciesImpl.html#line.102">qualifyMetricsName</a>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
+                                        <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;metric)</pre>
+</li>
+</ul>
+<a name="getOrCreateTableHistogram-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getOrCreateTableHistogram</h4>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableLatenciesImpl.TableHistograms.html" title="class in org.apache.hadoop.hbase.regionserver">MetricsTableLatenciesImpl.TableHistograms</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsTableLatenciesImpl.html#line.111">getOrCreateTableHistogram</a>(<a href="http://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="updatePut-java.lang.String-long-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>updatePut</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsTableLatenciesImpl.html#line.132">updatePut</a>(<a href="http://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,
+                      long&nbsp;t)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableLatencies.html#updatePut-java.lang.String-long-">MetricsTableLatencies</a></code></span></div>
+<div class="block">Update the Put time histogram</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableLatencies.html#updatePut-java.lang.String-long-">updatePut</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableLatencies.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsTableLatencies</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>tableName</code> - The table the metric is for</dd>
+<dd><code>t</code> - time it took</dd>
+</dl>
+</li>
+</ul>
+<a name="updatePutBatch-java.lang.String-long-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>updatePutBatch</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsTableLatenciesImpl.html#line.137">updatePutBatch</a>(<a href="http://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,
+                           long&nbsp;t)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableLatencies.html#updatePutBatch-java.lang.String-long-">MetricsTableLatencies</a></code></span></div>
+<div class="block">Update the batch Put time histogram</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableLatencies.html#updatePutBatch-java.lang.String-long-">updatePutBatch</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableLatencies.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsTableLatencies</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>tableName</code> - The table the metric is for</dd>
+<dd><code>t</code> - time it took</dd>
+</dl>
+</li>
+</ul>
+<a name="updateDelete-java.lang.String-long-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>updateDelete</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsTableLatenciesImpl.html#line.142">updateDelete</a>(<a href="http://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,
+                         long&nbsp;t)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableLatencies.html#updateDelete-java.lang.String-long-">MetricsTableLatencies</a></code></span></div>
+<div class="block">Update the Delete time histogram</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableLatencies.html#updateDelete-java.lang.String-long-">updateDelete</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableLatencies.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsTableLatencies</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>tableName</code> - The table the metric is for</dd>
+<dd><code>t</code> - time it took</dd>
+</dl>
+</li>
+</ul>
+<a name="updateDeleteBatch-java.lang.String-long-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>updateDeleteBatch</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsTableLatenciesImpl.html#line.147">updateDeleteBatch</a>(<a href="http://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,
+                              long&nbsp;t)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableLatencies.html#updateDeleteBatch-java.lang.String-long-">MetricsTableLatencies</a></code></span></div>
+<div class="block">Update the batch Delete time histogram</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableLatencies.html#updateDeleteBatch-java.lang.String-long-">updateDeleteBatch</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableLatencies.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsTableLatencies</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>tableName</code> - The table the metric is for</dd>
+<dd><code>t</code> - time it took</dd>
+</dl>
+</li>
+</ul>
+<a name="updateGet-java.lang.String-long-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>updateGet</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsTableLatenciesImpl.html#line.152">updateGet</a>(<a href="http://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,
+                      long&nbsp;t)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableLatencies.html#updateGet-java.lang.String-long-">MetricsTableLatencies</a></code></span></div>
+<div class="block">Update the Get time histogram .</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableLatencies.html#updateGet-java.lang.String-long-">updateGet</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableLatencies.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsTableLatencies</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>tableName</code> - The table the metric is for</dd>
+<dd><code>t</code> - time it took</dd>
+</dl>
+</li>
+</ul>
+<a name="updateIncrement-java.lang.String-long-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>updateIncrement</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsTableLatenciesImpl.html#line.157">updateIncrement</a>(<a href="http://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,
+                            long&nbsp;t)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableLatencies.html#updateIncrement-java.lang.String-long-">MetricsTableLatencies</a></code></span></div>
+<div class="block">Update the Increment time histogram.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableLatencies.html#updateIncrement-java.lang.String-long-">updateIncrement</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableLatencies.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsTableLatencies</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>tableName</code> - The table the metric is for</dd>
+<dd><code>t</code> - time it took</dd>
+</dl>
+</li>
+</ul>
+<a name="updateAppend-java.lang.String-long-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>updateAppend</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsTableLatenciesImpl.html#line.162">updateAppend</a>(<a href="http://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,
+                         long&nbsp;t)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableLatencies.html#updateAppend-java.lang.String-long-">MetricsTableLatencies</a></code></span></div>
+<div class="block">Update the Append time histogram.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableLatencies.html#updateAppend-java.lang.String-long-">updateAppend</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableLatencies.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsTableLatencies</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>tableName</code> - The table the metric is for</dd>
+<dd><code>t</code> - time it took</dd>
+</dl>
+</li>
+</ul>
+<a name="updateScanSize-java.lang.String-long-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>updateScanSize</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsTableLatenciesImpl.html#line.167">updateScanSize</a>(<a href="http://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,
+                           long&nbsp;scanSize)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableLatencies.html#updateScanSize-java.lang.String-long-">MetricsTableLatencies</a></code></span></div>
+<div class="block">Update the scan size.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableLatencies.html#updateScanSize-java.lang.String-long-">updateScanSize</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableLatencies.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsTableLatencies</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>tableName</code> - The table the metric is for</dd>
+<dd><code>scanSize</code> - size of the scan</dd>
+</dl>
+</li>
+</ul>
+<a name="updateScanTime-java.lang.String-long-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>updateScanTime</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsTableLatenciesImpl.html#line.172">updateScanTime</a>(<a href="http://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,
+                           long&nbsp;t)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableLatencies.html#updateScanTime-java.lang.String-long-">MetricsTableLatencies</a></code></span></div>
+<div class="block">Update the scan time.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableLatencies.html#updateScanTime-java.lang.String-long-">updateScanTime</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableLatencies.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsTableLatencies</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>tableName</code> - The table the metric is for</dd>
+<dd><code>t</code> - time it took</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/MetricsTableLatenciesImpl.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableLatencies.html" title="interface in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableLatenciesImpl.TableHistograms.html" title="class in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/hadoop/hbase/regionserver/MetricsTableLatenciesImpl.html" target="_top">Frames</a></li>
+<li><a href="MetricsTableLatenciesImpl.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li><a href="#nested.class.summary">Nested</a>&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2007&#x2013;2017 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/29b27596/devapidocs/org/apache/hadoop/hbase/regionserver/MetricsTableSource.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/regionserver/MetricsTableSource.html b/devapidocs/org/apache/hadoop/hbase/regionserver/MetricsTableSource.html
index c9177b3..c43a34d 100644
--- a/devapidocs/org/apache/hadoop/hbase/regionserver/MetricsTableSource.html
+++ b/devapidocs/org/apache/hadoop/hbase/regionserver/MetricsTableSource.html
@@ -49,7 +49,7 @@ var activeTableTab = "activeTableTab";
 </div>
 <div class="subNav">
 <ul class="navList">
-<li><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableAggregateSourceImpl.html" title="class in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableLatenciesImpl.TableHistograms.html" title="class in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
 <li><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableSourceImpl.html" title="class in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
 </ul>
 <ul class="navList">
@@ -453,7 +453,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Comparable.h
 </div>
 <div class="subNav">
 <ul class="navList">
-<li><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableAggregateSourceImpl.html" title="class in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableLatenciesImpl.TableHistograms.html" title="class in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
 <li><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableSourceImpl.html" title="class in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
 </ul>
 <ul class="navList">

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/29b27596/devapidocs/org/apache/hadoop/hbase/regionserver/RSRpcServices.LogDelegate.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/regionserver/RSRpcServices.LogDelegate.html b/devapidocs/org/apache/hadoop/hbase/regionserver/RSRpcServices.LogDelegate.html
index 8df9a47..22688c5 100644
--- a/devapidocs/org/apache/hadoop/hbase/regionserver/RSRpcServices.LogDelegate.html
+++ b/devapidocs/org/apache/hadoop/hbase/regionserver/RSRpcServices.LogDelegate.html
@@ -105,7 +105,7 @@ var activeTableTab = "activeTableTab";
 </dl>
 <hr>
 <br>
-<pre>static interface <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.1105">RSRpcServices.LogDelegate</a></pre>
+<pre>static interface <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.1112">RSRpcServices.LogDelegate</a></pre>
 </li>
 </ul>
 </div>
@@ -151,7 +151,7 @@ var activeTableTab = "activeTableTab";
 <ul class="blockListLast">
 <li class="blockList">
 <h4>logBatchWarning</h4>
-<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.LogDelegate.html#line.1106">logBatchWarning</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;firstRegionName,
+<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.LogDelegate.html#line.1113">logBatchWarning</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;firstRegionName,
                      int&nbsp;sum,
                      int&nbsp;rowSizeWarnThreshold)</pre>
 </li>


[07/32] hbase-site git commit: Published site at .

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/29b27596/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html
index b7f041a..c0ea82b 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html
@@ -668,2792 +668,2806 @@
 <span class="sourceLineNo">660</span>    }<a name="line.660"></a>
 <span class="sourceLineNo">661</span>    if (regionServer.metricsRegionServer != null) {<a name="line.661"></a>
 <span class="sourceLineNo">662</span>      regionServer.metricsRegionServer.updateAppend(<a name="line.662"></a>
-<span class="sourceLineNo">663</span>        EnvironmentEdgeManager.currentTime() - before);<a name="line.663"></a>
-<span class="sourceLineNo">664</span>    }<a name="line.664"></a>
-<span class="sourceLineNo">665</span>    return r;<a name="line.665"></a>
-<span class="sourceLineNo">666</span>  }<a name="line.666"></a>
-<span class="sourceLineNo">667</span><a name="line.667"></a>
-<span class="sourceLineNo">668</span>  /**<a name="line.668"></a>
-<span class="sourceLineNo">669</span>   * Execute an increment mutation.<a name="line.669"></a>
-<span class="sourceLineNo">670</span>   *<a name="line.670"></a>
-<span class="sourceLineNo">671</span>   * @param region<a name="line.671"></a>
-<span class="sourceLineNo">672</span>   * @param mutation<a name="line.672"></a>
-<span class="sourceLineNo">673</span>   * @return the Result<a name="line.673"></a>
-<span class="sourceLineNo">674</span>   * @throws IOException<a name="line.674"></a>
-<span class="sourceLineNo">675</span>   */<a name="line.675"></a>
-<span class="sourceLineNo">676</span>  private Result increment(final HRegion region, final OperationQuota quota,<a name="line.676"></a>
-<span class="sourceLineNo">677</span>      final MutationProto mutation, final CellScanner cells, long nonceGroup,<a name="line.677"></a>
-<span class="sourceLineNo">678</span>      ActivePolicyEnforcement spaceQuota)<a name="line.678"></a>
-<span class="sourceLineNo">679</span>      throws IOException {<a name="line.679"></a>
-<span class="sourceLineNo">680</span>    long before = EnvironmentEdgeManager.currentTime();<a name="line.680"></a>
-<span class="sourceLineNo">681</span>    Increment increment = ProtobufUtil.toIncrement(mutation, cells);<a name="line.681"></a>
-<span class="sourceLineNo">682</span>    checkCellSizeLimit(region, increment);<a name="line.682"></a>
-<span class="sourceLineNo">683</span>    spaceQuota.getPolicyEnforcement(region).check(increment);<a name="line.683"></a>
-<span class="sourceLineNo">684</span>    quota.addMutation(increment);<a name="line.684"></a>
-<span class="sourceLineNo">685</span>    Result r = null;<a name="line.685"></a>
-<span class="sourceLineNo">686</span>    if (region.getCoprocessorHost() != null) {<a name="line.686"></a>
-<span class="sourceLineNo">687</span>      r = region.getCoprocessorHost().preIncrement(increment);<a name="line.687"></a>
-<span class="sourceLineNo">688</span>    }<a name="line.688"></a>
-<span class="sourceLineNo">689</span>    if (r == null) {<a name="line.689"></a>
-<span class="sourceLineNo">690</span>      boolean canProceed = startNonceOperation(mutation, nonceGroup);<a name="line.690"></a>
-<span class="sourceLineNo">691</span>      boolean success = false;<a name="line.691"></a>
-<span class="sourceLineNo">692</span>      try {<a name="line.692"></a>
-<span class="sourceLineNo">693</span>        long nonce = mutation.hasNonce() ? mutation.getNonce() : HConstants.NO_NONCE;<a name="line.693"></a>
-<span class="sourceLineNo">694</span>        if (canProceed) {<a name="line.694"></a>
-<span class="sourceLineNo">695</span>          r = region.increment(increment, nonceGroup, nonce);<a name="line.695"></a>
-<span class="sourceLineNo">696</span>        } else {<a name="line.696"></a>
-<span class="sourceLineNo">697</span>          // convert duplicate increment to get<a name="line.697"></a>
-<span class="sourceLineNo">698</span>          List&lt;Cell&gt; results = region.get(ProtobufUtil.toGet(mutation, cells), false, nonceGroup,<a name="line.698"></a>
-<span class="sourceLineNo">699</span>              nonce);<a name="line.699"></a>
-<span class="sourceLineNo">700</span>          r = Result.create(results);<a name="line.700"></a>
-<span class="sourceLineNo">701</span>        }<a name="line.701"></a>
-<span class="sourceLineNo">702</span>        success = true;<a name="line.702"></a>
-<span class="sourceLineNo">703</span>      } finally {<a name="line.703"></a>
-<span class="sourceLineNo">704</span>        if (canProceed) {<a name="line.704"></a>
-<span class="sourceLineNo">705</span>          endNonceOperation(mutation, nonceGroup, success);<a name="line.705"></a>
-<span class="sourceLineNo">706</span>        }<a name="line.706"></a>
-<span class="sourceLineNo">707</span>      }<a name="line.707"></a>
-<span class="sourceLineNo">708</span>      if (region.getCoprocessorHost() != null) {<a name="line.708"></a>
-<span class="sourceLineNo">709</span>        r = region.getCoprocessorHost().postIncrement(increment, r);<a name="line.709"></a>
-<span class="sourceLineNo">710</span>      }<a name="line.710"></a>
-<span class="sourceLineNo">711</span>    }<a name="line.711"></a>
-<span class="sourceLineNo">712</span>    if (regionServer.metricsRegionServer != null) {<a name="line.712"></a>
-<span class="sourceLineNo">713</span>      regionServer.metricsRegionServer.updateIncrement(<a name="line.713"></a>
-<span class="sourceLineNo">714</span>        EnvironmentEdgeManager.currentTime() - before);<a name="line.714"></a>
-<span class="sourceLineNo">715</span>    }<a name="line.715"></a>
-<span class="sourceLineNo">716</span>    return r;<a name="line.716"></a>
-<span class="sourceLineNo">717</span>  }<a name="line.717"></a>
-<span class="sourceLineNo">718</span><a name="line.718"></a>
-<span class="sourceLineNo">719</span>  /**<a name="line.719"></a>
-<span class="sourceLineNo">720</span>   * Run through the regionMutation &lt;code&gt;rm&lt;/code&gt; and per Mutation, do the work, and then when<a name="line.720"></a>
-<span class="sourceLineNo">721</span>   * done, add an instance of a {@link ResultOrException} that corresponds to each Mutation.<a name="line.721"></a>
-<span class="sourceLineNo">722</span>   * @param cellsToReturn  Could be null. May be allocated in this method.  This is what this<a name="line.722"></a>
-<span class="sourceLineNo">723</span>   * method returns as a 'result'.<a name="line.723"></a>
-<span class="sourceLineNo">724</span>   * @param closeCallBack the callback to be used with multigets<a name="line.724"></a>
-<span class="sourceLineNo">725</span>   * @param context the current RpcCallContext<a name="line.725"></a>
-<span class="sourceLineNo">726</span>   * @return Return the &lt;code&gt;cellScanner&lt;/code&gt; passed<a name="line.726"></a>
-<span class="sourceLineNo">727</span>   */<a name="line.727"></a>
-<span class="sourceLineNo">728</span>  private List&lt;CellScannable&gt; doNonAtomicRegionMutation(final HRegion region,<a name="line.728"></a>
-<span class="sourceLineNo">729</span>      final OperationQuota quota, final RegionAction actions, final CellScanner cellScanner,<a name="line.729"></a>
-<span class="sourceLineNo">730</span>      final RegionActionResult.Builder builder, List&lt;CellScannable&gt; cellsToReturn, long nonceGroup,<a name="line.730"></a>
-<span class="sourceLineNo">731</span>      final RegionScannersCloseCallBack closeCallBack, RpcCallContext context,<a name="line.731"></a>
-<span class="sourceLineNo">732</span>      ActivePolicyEnforcement spaceQuotaEnforcement) {<a name="line.732"></a>
-<span class="sourceLineNo">733</span>    // Gather up CONTIGUOUS Puts and Deletes in this mutations List.  Idea is that rather than do<a name="line.733"></a>
-<span class="sourceLineNo">734</span>    // one at a time, we instead pass them in batch.  Be aware that the corresponding<a name="line.734"></a>
-<span class="sourceLineNo">735</span>    // ResultOrException instance that matches each Put or Delete is then added down in the<a name="line.735"></a>
-<span class="sourceLineNo">736</span>    // doBatchOp call.  We should be staying aligned though the Put and Delete are deferred/batched<a name="line.736"></a>
-<span class="sourceLineNo">737</span>    List&lt;ClientProtos.Action&gt; mutations = null;<a name="line.737"></a>
-<span class="sourceLineNo">738</span>    long maxQuotaResultSize = Math.min(maxScannerResultSize, quota.getReadAvailable());<a name="line.738"></a>
-<span class="sourceLineNo">739</span>    IOException sizeIOE = null;<a name="line.739"></a>
-<span class="sourceLineNo">740</span>    Object lastBlock = null;<a name="line.740"></a>
-<span class="sourceLineNo">741</span>    ClientProtos.ResultOrException.Builder resultOrExceptionBuilder = ResultOrException.newBuilder();<a name="line.741"></a>
-<span class="sourceLineNo">742</span>    boolean hasResultOrException = false;<a name="line.742"></a>
-<span class="sourceLineNo">743</span>    for (ClientProtos.Action action : actions.getActionList()) {<a name="line.743"></a>
-<span class="sourceLineNo">744</span>      hasResultOrException = false;<a name="line.744"></a>
-<span class="sourceLineNo">745</span>      resultOrExceptionBuilder.clear();<a name="line.745"></a>
-<span class="sourceLineNo">746</span>      try {<a name="line.746"></a>
-<span class="sourceLineNo">747</span>        Result r = null;<a name="line.747"></a>
-<span class="sourceLineNo">748</span><a name="line.748"></a>
-<span class="sourceLineNo">749</span>        if (context != null<a name="line.749"></a>
-<span class="sourceLineNo">750</span>            &amp;&amp; context.isRetryImmediatelySupported()<a name="line.750"></a>
-<span class="sourceLineNo">751</span>            &amp;&amp; (context.getResponseCellSize() &gt; maxQuotaResultSize<a name="line.751"></a>
-<span class="sourceLineNo">752</span>              || context.getResponseBlockSize() + context.getResponseExceptionSize()<a name="line.752"></a>
-<span class="sourceLineNo">753</span>              &gt; maxQuotaResultSize)) {<a name="line.753"></a>
-<span class="sourceLineNo">754</span><a name="line.754"></a>
-<span class="sourceLineNo">755</span>          // We're storing the exception since the exception and reason string won't<a name="line.755"></a>
-<span class="sourceLineNo">756</span>          // change after the response size limit is reached.<a name="line.756"></a>
-<span class="sourceLineNo">757</span>          if (sizeIOE == null ) {<a name="line.757"></a>
-<span class="sourceLineNo">758</span>            // We don't need the stack un-winding do don't throw the exception.<a name="line.758"></a>
-<span class="sourceLineNo">759</span>            // Throwing will kill the JVM's JIT.<a name="line.759"></a>
-<span class="sourceLineNo">760</span>            //<a name="line.760"></a>
-<span class="sourceLineNo">761</span>            // Instead just create the exception and then store it.<a name="line.761"></a>
-<span class="sourceLineNo">762</span>            sizeIOE = new MultiActionResultTooLarge("Max size exceeded"<a name="line.762"></a>
-<span class="sourceLineNo">763</span>                + " CellSize: " + context.getResponseCellSize()<a name="line.763"></a>
-<span class="sourceLineNo">764</span>                + " BlockSize: " + context.getResponseBlockSize());<a name="line.764"></a>
-<span class="sourceLineNo">765</span><a name="line.765"></a>
-<span class="sourceLineNo">766</span>            // Only report the exception once since there's only one request that<a name="line.766"></a>
-<span class="sourceLineNo">767</span>            // caused the exception. Otherwise this number will dominate the exceptions count.<a name="line.767"></a>
-<span class="sourceLineNo">768</span>            rpcServer.getMetrics().exception(sizeIOE);<a name="line.768"></a>
-<span class="sourceLineNo">769</span>          }<a name="line.769"></a>
-<span class="sourceLineNo">770</span><a name="line.770"></a>
-<span class="sourceLineNo">771</span>          // Now that there's an exception is known to be created<a name="line.771"></a>
-<span class="sourceLineNo">772</span>          // use it for the response.<a name="line.772"></a>
-<span class="sourceLineNo">773</span>          //<a name="line.773"></a>
-<span class="sourceLineNo">774</span>          // This will create a copy in the builder.<a name="line.774"></a>
-<span class="sourceLineNo">775</span>          hasResultOrException = true;<a name="line.775"></a>
-<span class="sourceLineNo">776</span>          NameBytesPair pair = ResponseConverter.buildException(sizeIOE);<a name="line.776"></a>
-<span class="sourceLineNo">777</span>          resultOrExceptionBuilder.setException(pair);<a name="line.777"></a>
-<span class="sourceLineNo">778</span>          context.incrementResponseExceptionSize(pair.getSerializedSize());<a name="line.778"></a>
-<span class="sourceLineNo">779</span>          resultOrExceptionBuilder.setIndex(action.getIndex());<a name="line.779"></a>
-<span class="sourceLineNo">780</span>          builder.addResultOrException(resultOrExceptionBuilder.build());<a name="line.780"></a>
-<span class="sourceLineNo">781</span>          if (cellScanner != null) {<a name="line.781"></a>
-<span class="sourceLineNo">782</span>            skipCellsForMutation(action, cellScanner);<a name="line.782"></a>
-<span class="sourceLineNo">783</span>          }<a name="line.783"></a>
-<span class="sourceLineNo">784</span>          continue;<a name="line.784"></a>
-<span class="sourceLineNo">785</span>        }<a name="line.785"></a>
-<span class="sourceLineNo">786</span>        if (action.hasGet()) {<a name="line.786"></a>
-<span class="sourceLineNo">787</span>          long before = EnvironmentEdgeManager.currentTime();<a name="line.787"></a>
-<span class="sourceLineNo">788</span>          try {<a name="line.788"></a>
-<span class="sourceLineNo">789</span>            Get get = ProtobufUtil.toGet(action.getGet());<a name="line.789"></a>
-<span class="sourceLineNo">790</span>            if (context != null) {<a name="line.790"></a>
-<span class="sourceLineNo">791</span>              r = get(get, ((HRegion) region), closeCallBack, context);<a name="line.791"></a>
-<span class="sourceLineNo">792</span>            } else {<a name="line.792"></a>
-<span class="sourceLineNo">793</span>              r = region.get(get);<a name="line.793"></a>
-<span class="sourceLineNo">794</span>            }<a name="line.794"></a>
-<span class="sourceLineNo">795</span>          } finally {<a name="line.795"></a>
-<span class="sourceLineNo">796</span>            if (regionServer.metricsRegionServer != null) {<a name="line.796"></a>
-<span class="sourceLineNo">797</span>              regionServer.metricsRegionServer.updateGet(<a name="line.797"></a>
-<span class="sourceLineNo">798</span>                EnvironmentEdgeManager.currentTime() - before);<a name="line.798"></a>
-<span class="sourceLineNo">799</span>            }<a name="line.799"></a>
-<span class="sourceLineNo">800</span>          }<a name="line.800"></a>
-<span class="sourceLineNo">801</span>        } else if (action.hasServiceCall()) {<a name="line.801"></a>
-<span class="sourceLineNo">802</span>          hasResultOrException = true;<a name="line.802"></a>
-<span class="sourceLineNo">803</span>          try {<a name="line.803"></a>
-<span class="sourceLineNo">804</span>            com.google.protobuf.Message result =<a name="line.804"></a>
-<span class="sourceLineNo">805</span>                execServiceOnRegion(region, action.getServiceCall());<a name="line.805"></a>
-<span class="sourceLineNo">806</span>            ClientProtos.CoprocessorServiceResult.Builder serviceResultBuilder =<a name="line.806"></a>
-<span class="sourceLineNo">807</span>                ClientProtos.CoprocessorServiceResult.newBuilder();<a name="line.807"></a>
-<span class="sourceLineNo">808</span>            resultOrExceptionBuilder.setServiceResult(<a name="line.808"></a>
-<span class="sourceLineNo">809</span>                serviceResultBuilder.setValue(<a name="line.809"></a>
-<span class="sourceLineNo">810</span>                  serviceResultBuilder.getValueBuilder()<a name="line.810"></a>
-<span class="sourceLineNo">811</span>                    .setName(result.getClass().getName())<a name="line.811"></a>
-<span class="sourceLineNo">812</span>                    // TODO: Copy!!!<a name="line.812"></a>
-<span class="sourceLineNo">813</span>                    .setValue(UnsafeByteOperations.unsafeWrap(result.toByteArray()))));<a name="line.813"></a>
-<span class="sourceLineNo">814</span>          } catch (IOException ioe) {<a name="line.814"></a>
-<span class="sourceLineNo">815</span>            rpcServer.getMetrics().exception(ioe);<a name="line.815"></a>
-<span class="sourceLineNo">816</span>            NameBytesPair pair = ResponseConverter.buildException(ioe);<a name="line.816"></a>
-<span class="sourceLineNo">817</span>            resultOrExceptionBuilder.setException(pair);<a name="line.817"></a>
-<span class="sourceLineNo">818</span>            context.incrementResponseExceptionSize(pair.getSerializedSize());<a name="line.818"></a>
-<span class="sourceLineNo">819</span>          }<a name="line.819"></a>
-<span class="sourceLineNo">820</span>        } else if (action.hasMutation()) {<a name="line.820"></a>
-<span class="sourceLineNo">821</span>          MutationType type = action.getMutation().getMutateType();<a name="line.821"></a>
-<span class="sourceLineNo">822</span>          if (type != MutationType.PUT &amp;&amp; type != MutationType.DELETE &amp;&amp; mutations != null &amp;&amp;<a name="line.822"></a>
-<span class="sourceLineNo">823</span>              !mutations.isEmpty()) {<a name="line.823"></a>
-<span class="sourceLineNo">824</span>            // Flush out any Puts or Deletes already collected.<a name="line.824"></a>
-<span class="sourceLineNo">825</span>            doBatchOp(builder, region, quota, mutations, cellScanner, spaceQuotaEnforcement, false);<a name="line.825"></a>
-<span class="sourceLineNo">826</span>            mutations.clear();<a name="line.826"></a>
-<span class="sourceLineNo">827</span>          }<a name="line.827"></a>
-<span class="sourceLineNo">828</span>          switch (type) {<a name="line.828"></a>
-<span class="sourceLineNo">829</span>            case APPEND:<a name="line.829"></a>
-<span class="sourceLineNo">830</span>              r = append(region, quota, action.getMutation(), cellScanner, nonceGroup,<a name="line.830"></a>
-<span class="sourceLineNo">831</span>                  spaceQuotaEnforcement);<a name="line.831"></a>
-<span class="sourceLineNo">832</span>              break;<a name="line.832"></a>
-<span class="sourceLineNo">833</span>            case INCREMENT:<a name="line.833"></a>
-<span class="sourceLineNo">834</span>              r = increment(region, quota, action.getMutation(), cellScanner, nonceGroup,<a name="line.834"></a>
-<span class="sourceLineNo">835</span>                  spaceQuotaEnforcement);<a name="line.835"></a>
-<span class="sourceLineNo">836</span>              break;<a name="line.836"></a>
-<span class="sourceLineNo">837</span>            case PUT:<a name="line.837"></a>
-<span class="sourceLineNo">838</span>            case DELETE:<a name="line.838"></a>
-<span class="sourceLineNo">839</span>              // Collect the individual mutations and apply in a batch<a name="line.839"></a>
-<span class="sourceLineNo">840</span>              if (mutations == null) {<a name="line.840"></a>
-<span class="sourceLineNo">841</span>                mutations = new ArrayList&lt;&gt;(actions.getActionCount());<a name="line.841"></a>
-<span class="sourceLineNo">842</span>              }<a name="line.842"></a>
-<span class="sourceLineNo">843</span>              mutations.add(action);<a name="line.843"></a>
-<span class="sourceLineNo">844</span>              break;<a name="line.844"></a>
-<span class="sourceLineNo">845</span>            default:<a name="line.845"></a>
-<span class="sourceLineNo">846</span>              throw new DoNotRetryIOException("Unsupported mutate type: " + type.name());<a name="line.846"></a>
-<span class="sourceLineNo">847</span>          }<a name="line.847"></a>
-<span class="sourceLineNo">848</span>        } else {<a name="line.848"></a>
-<span class="sourceLineNo">849</span>          throw new HBaseIOException("Unexpected Action type");<a name="line.849"></a>
-<span class="sourceLineNo">850</span>        }<a name="line.850"></a>
-<span class="sourceLineNo">851</span>        if (r != null) {<a name="line.851"></a>
-<span class="sourceLineNo">852</span>          ClientProtos.Result pbResult = null;<a name="line.852"></a>
-<span class="sourceLineNo">853</span>          if (isClientCellBlockSupport(context)) {<a name="line.853"></a>
-<span class="sourceLineNo">854</span>            pbResult = ProtobufUtil.toResultNoData(r);<a name="line.854"></a>
-<span class="sourceLineNo">855</span>            //  Hard to guess the size here.  Just make a rough guess.<a name="line.855"></a>
-<span class="sourceLineNo">856</span>            if (cellsToReturn == null) {<a name="line.856"></a>
-<span class="sourceLineNo">857</span>              cellsToReturn = new ArrayList&lt;&gt;();<a name="line.857"></a>
-<span class="sourceLineNo">858</span>            }<a name="line.858"></a>
-<span class="sourceLineNo">859</span>            cellsToReturn.add(r);<a name="line.859"></a>
-<span class="sourceLineNo">860</span>          } else {<a name="line.860"></a>
-<span class="sourceLineNo">861</span>            pbResult = ProtobufUtil.toResult(r);<a name="line.861"></a>
-<span class="sourceLineNo">862</span>          }<a name="line.862"></a>
-<span class="sourceLineNo">863</span>          lastBlock = addSize(context, r, lastBlock);<a name="line.863"></a>
-<span class="sourceLineNo">864</span>          hasResultOrException = true;<a name="line.864"></a>
-<span class="sourceLineNo">865</span>          resultOrExceptionBuilder.setResult(pbResult);<a name="line.865"></a>
-<span class="sourceLineNo">866</span>        }<a name="line.866"></a>
-<span class="sourceLineNo">867</span>        // Could get to here and there was no result and no exception.  Presumes we added<a name="line.867"></a>
-<span class="sourceLineNo">868</span>        // a Put or Delete to the collecting Mutations List for adding later.  In this<a name="line.868"></a>
-<span class="sourceLineNo">869</span>        // case the corresponding ResultOrException instance for the Put or Delete will be added<a name="line.869"></a>
-<span class="sourceLineNo">870</span>        // down in the doBatchOp method call rather than up here.<a name="line.870"></a>
-<span class="sourceLineNo">871</span>      } catch (IOException ie) {<a name="line.871"></a>
-<span class="sourceLineNo">872</span>        rpcServer.getMetrics().exception(ie);<a name="line.872"></a>
-<span class="sourceLineNo">873</span>        hasResultOrException = true;<a name="line.873"></a>
-<span class="sourceLineNo">874</span>        NameBytesPair pair = ResponseConverter.buildException(ie);<a name="line.874"></a>
-<span class="sourceLineNo">875</span>        resultOrExceptionBuilder.setException(pair);<a name="line.875"></a>
-<span class="sourceLineNo">876</span>        context.incrementResponseExceptionSize(pair.getSerializedSize());<a name="line.876"></a>
-<span class="sourceLineNo">877</span>      }<a name="line.877"></a>
-<span class="sourceLineNo">878</span>      if (hasResultOrException) {<a name="line.878"></a>
-<span class="sourceLineNo">879</span>        // Propagate index.<a name="line.879"></a>
-<span class="sourceLineNo">880</span>        resultOrExceptionBuilder.setIndex(action.getIndex());<a name="line.880"></a>
-<span class="sourceLineNo">881</span>        builder.addResultOrException(resultOrExceptionBuilder.build());<a name="line.881"></a>
-<span class="sourceLineNo">882</span>      }<a name="line.882"></a>
-<span class="sourceLineNo">883</span>    }<a name="line.883"></a>
-<span class="sourceLineNo">884</span>    // Finish up any outstanding mutations<a name="line.884"></a>
-<span class="sourceLineNo">885</span>    if (mutations != null &amp;&amp; !mutations.isEmpty()) {<a name="line.885"></a>
-<span class="sourceLineNo">886</span>      try {<a name="line.886"></a>
-<span class="sourceLineNo">887</span>        doBatchOp(builder, region, quota, mutations, cellScanner, spaceQuotaEnforcement, false);<a name="line.887"></a>
-<span class="sourceLineNo">888</span>      } catch (IOException ioe) {<a name="line.888"></a>
-<span class="sourceLineNo">889</span>        rpcServer.getMetrics().exception(ioe);<a name="line.889"></a>
-<span class="sourceLineNo">890</span>        NameBytesPair pair = ResponseConverter.buildException(ioe);<a name="line.890"></a>
-<span class="sourceLineNo">891</span>        resultOrExceptionBuilder.setException(pair);<a name="line.891"></a>
-<span class="sourceLineNo">892</span>        context.incrementResponseExceptionSize(pair.getSerializedSize());<a name="line.892"></a>
-<span class="sourceLineNo">893</span>        builder.addResultOrException(resultOrExceptionBuilder.build());<a name="line.893"></a>
-<span class="sourceLineNo">894</span>      }<a name="line.894"></a>
-<span class="sourceLineNo">895</span>    }<a name="line.895"></a>
-<span class="sourceLineNo">896</span>    return cellsToReturn;<a name="line.896"></a>
-<span class="sourceLineNo">897</span>  }<a name="line.897"></a>
-<span class="sourceLineNo">898</span><a name="line.898"></a>
-<span class="sourceLineNo">899</span>  private void checkCellSizeLimit(final HRegion r, final Mutation m) throws IOException {<a name="line.899"></a>
-<span class="sourceLineNo">900</span>    if (r.maxCellSize &gt; 0) {<a name="line.900"></a>
-<span class="sourceLineNo">901</span>      CellScanner cells = m.cellScanner();<a name="line.901"></a>
-<span class="sourceLineNo">902</span>      while (cells.advance()) {<a name="line.902"></a>
-<span class="sourceLineNo">903</span>        int size = PrivateCellUtil.estimatedSerializedSizeOf(cells.current());<a name="line.903"></a>
-<span class="sourceLineNo">904</span>        if (size &gt; r.maxCellSize) {<a name="line.904"></a>
-<span class="sourceLineNo">905</span>          String msg = "Cell with size " + size + " exceeds limit of " + r.maxCellSize + " bytes";<a name="line.905"></a>
-<span class="sourceLineNo">906</span>          if (LOG.isDebugEnabled()) {<a name="line.906"></a>
-<span class="sourceLineNo">907</span>            LOG.debug(msg);<a name="line.907"></a>
-<span class="sourceLineNo">908</span>          }<a name="line.908"></a>
-<span class="sourceLineNo">909</span>          throw new DoNotRetryIOException(msg);<a name="line.909"></a>
-<span class="sourceLineNo">910</span>        }<a name="line.910"></a>
-<span class="sourceLineNo">911</span>      }<a name="line.911"></a>
-<span class="sourceLineNo">912</span>    }<a name="line.912"></a>
-<span class="sourceLineNo">913</span>  }<a name="line.913"></a>
-<span class="sourceLineNo">914</span><a name="line.914"></a>
-<span class="sourceLineNo">915</span>  /**<a name="line.915"></a>
-<span class="sourceLineNo">916</span>   * Execute a list of Put/Delete mutations.<a name="line.916"></a>
-<span class="sourceLineNo">917</span>   *<a name="line.917"></a>
-<span class="sourceLineNo">918</span>   * @param builder<a name="line.918"></a>
-<span class="sourceLineNo">919</span>   * @param region<a name="line.919"></a>
-<span class="sourceLineNo">920</span>   * @param mutations<a name="line.920"></a>
-<span class="sourceLineNo">921</span>   */<a name="line.921"></a>
-<span class="sourceLineNo">922</span>  private void doBatchOp(final RegionActionResult.Builder builder, final HRegion region,<a name="line.922"></a>
-<span class="sourceLineNo">923</span>      final OperationQuota quota, final List&lt;ClientProtos.Action&gt; mutations,<a name="line.923"></a>
-<span class="sourceLineNo">924</span>      final CellScanner cells, ActivePolicyEnforcement spaceQuotaEnforcement, boolean atomic)<a name="line.924"></a>
-<span class="sourceLineNo">925</span>      throws IOException {<a name="line.925"></a>
-<span class="sourceLineNo">926</span>    Mutation[] mArray = new Mutation[mutations.size()];<a name="line.926"></a>
-<span class="sourceLineNo">927</span>    long before = EnvironmentEdgeManager.currentTime();<a name="line.927"></a>
-<span class="sourceLineNo">928</span>    boolean batchContainsPuts = false, batchContainsDelete = false;<a name="line.928"></a>
-<span class="sourceLineNo">929</span>    try {<a name="line.929"></a>
-<span class="sourceLineNo">930</span>      /** HBASE-17924<a name="line.930"></a>
-<span class="sourceLineNo">931</span>       * mutationActionMap is a map to map the relation between mutations and actions<a name="line.931"></a>
-<span class="sourceLineNo">932</span>       * since mutation array may have been reoredered.In order to return the right<a name="line.932"></a>
-<span class="sourceLineNo">933</span>       * result or exception to the corresponding actions, We need to know which action<a name="line.933"></a>
-<span class="sourceLineNo">934</span>       * is the mutation belong to. We can't sort ClientProtos.Action array, since they<a name="line.934"></a>
-<span class="sourceLineNo">935</span>       * are bonded to cellscanners.<a name="line.935"></a>
-<span class="sourceLineNo">936</span>       */<a name="line.936"></a>
-<span class="sourceLineNo">937</span>      Map&lt;Mutation, ClientProtos.Action&gt; mutationActionMap = new HashMap&lt;&gt;();<a name="line.937"></a>
-<span class="sourceLineNo">938</span>      int i = 0;<a name="line.938"></a>
-<span class="sourceLineNo">939</span>      for (ClientProtos.Action action: mutations) {<a name="line.939"></a>
-<span class="sourceLineNo">940</span>        MutationProto m = action.getMutation();<a name="line.940"></a>
-<span class="sourceLineNo">941</span>        Mutation mutation;<a name="line.941"></a>
-<span class="sourceLineNo">942</span>        if (m.getMutateType() == MutationType.PUT) {<a name="line.942"></a>
-<span class="sourceLineNo">943</span>          mutation = ProtobufUtil.toPut(m, cells);<a name="line.943"></a>
-<span class="sourceLineNo">944</span>          batchContainsPuts = true;<a name="line.944"></a>
-<span class="sourceLineNo">945</span>        } else {<a name="line.945"></a>
-<span class="sourceLineNo">946</span>          mutation = ProtobufUtil.toDelete(m, cells);<a name="line.946"></a>
-<span class="sourceLineNo">947</span>          batchContainsDelete = true;<a name="line.947"></a>
-<span class="sourceLineNo">948</span>        }<a name="line.948"></a>
-<span class="sourceLineNo">949</span>        mutationActionMap.put(mutation, action);<a name="line.949"></a>
-<span class="sourceLineNo">950</span>        mArray[i++] = mutation;<a name="line.950"></a>
-<span class="sourceLineNo">951</span>        checkCellSizeLimit(region, mutation);<a name="line.951"></a>
-<span class="sourceLineNo">952</span>        // Check if a space quota disallows this mutation<a name="line.952"></a>
-<span class="sourceLineNo">953</span>        spaceQuotaEnforcement.getPolicyEnforcement(region).check(mutation);<a name="line.953"></a>
-<span class="sourceLineNo">954</span>        quota.addMutation(mutation);<a name="line.954"></a>
-<span class="sourceLineNo">955</span>      }<a name="line.955"></a>
-<span class="sourceLineNo">956</span><a name="line.956"></a>
-<span class="sourceLineNo">957</span>      if (!region.getRegionInfo().isMetaRegion()) {<a name="line.957"></a>
-<span class="sourceLineNo">958</span>        regionServer.cacheFlusher.reclaimMemStoreMemory();<a name="line.958"></a>
-<span class="sourceLineNo">959</span>      }<a name="line.959"></a>
-<span class="sourceLineNo">960</span><a name="line.960"></a>
-<span class="sourceLineNo">961</span>      // HBASE-17924<a name="line.961"></a>
-<span class="sourceLineNo">962</span>      // Sort to improve lock efficiency for non-atomic batch of operations. If atomic (mostly<a name="line.962"></a>
-<span class="sourceLineNo">963</span>      // called from mutateRows()), order is preserved as its expected from the client<a name="line.963"></a>
-<span class="sourceLineNo">964</span>      if (!atomic) {<a name="line.964"></a>
-<span class="sourceLineNo">965</span>        Arrays.sort(mArray);<a name="line.965"></a>
-<span class="sourceLineNo">966</span>      }<a name="line.966"></a>
-<span class="sourceLineNo">967</span><a name="line.967"></a>
-<span class="sourceLineNo">968</span>      OperationStatus[] codes = region.batchMutate(mArray, atomic, HConstants.NO_NONCE,<a name="line.968"></a>
-<span class="sourceLineNo">969</span>        HConstants.NO_NONCE);<a name="line.969"></a>
-<span class="sourceLineNo">970</span>      for (i = 0; i &lt; codes.length; i++) {<a name="line.970"></a>
-<span class="sourceLineNo">971</span>        Mutation currentMutation = mArray[i];<a name="line.971"></a>
-<span class="sourceLineNo">972</span>        ClientProtos.Action currentAction = mutationActionMap.get(currentMutation);<a name="line.972"></a>
-<span class="sourceLineNo">973</span>        int index = currentAction.hasIndex() || !atomic ? currentAction.getIndex() : i;<a name="line.973"></a>
-<span class="sourceLineNo">974</span>        Exception e = null;<a name="line.974"></a>
-<span class="sourceLineNo">975</span>        switch (codes[i].getOperationStatusCode()) {<a name="line.975"></a>
-<span class="sourceLineNo">976</span>          case BAD_FAMILY:<a name="line.976"></a>
-<span class="sourceLineNo">977</span>            e = new NoSuchColumnFamilyException(codes[i].getExceptionMsg());<a name="line.977"></a>
-<span class="sourceLineNo">978</span>            builder.addResultOrException(getResultOrException(e, index));<a name="line.978"></a>
-<span class="sourceLineNo">979</span>            break;<a name="line.979"></a>
-<span class="sourceLineNo">980</span><a name="line.980"></a>
-<span class="sourceLineNo">981</span>          case SANITY_CHECK_FAILURE:<a name="line.981"></a>
-<span class="sourceLineNo">982</span>            e = new FailedSanityCheckException(codes[i].getExceptionMsg());<a name="line.982"></a>
-<span class="sourceLineNo">983</span>            builder.addResultOrException(getResultOrException(e, index));<a name="line.983"></a>
-<span class="sourceLineNo">984</span>            break;<a name="line.984"></a>
-<span class="sourceLineNo">985</span><a name="line.985"></a>
-<span class="sourceLineNo">986</span>          default:<a name="line.986"></a>
-<span class="sourceLineNo">987</span>            e = new DoNotRetryIOException(codes[i].getExceptionMsg());<a name="line.987"></a>
-<span class="sourceLineNo">988</span>            builder.addResultOrException(getResultOrException(e, index));<a name="line.988"></a>
-<span class="sourceLineNo">989</span>            break;<a name="line.989"></a>
-<span class="sourceLineNo">990</span><a name="line.990"></a>
-<span class="sourceLineNo">991</span>          case SUCCESS:<a name="line.991"></a>
-<span class="sourceLineNo">992</span>            builder.addResultOrException(getResultOrException(<a name="line.992"></a>
-<span class="sourceLineNo">993</span>              ClientProtos.Result.getDefaultInstance(), index));<a name="line.993"></a>
-<span class="sourceLineNo">994</span>            break;<a name="line.994"></a>
-<span class="sourceLineNo">995</span>        }<a name="line.995"></a>
-<span class="sourceLineNo">996</span>      }<a name="line.996"></a>
-<span class="sourceLineNo">997</span>    } catch (IOException ie) {<a name="line.997"></a>
-<span class="sourceLineNo">998</span>      if (atomic) {<a name="line.998"></a>
-<span class="sourceLineNo">999</span>        throw ie;<a name="line.999"></a>
-<span class="sourceLineNo">1000</span>      }<a name="line.1000"></a>
-<span class="sourceLineNo">1001</span>      for (Action mutation : mutations) {<a name="line.1001"></a>
-<span class="sourceLineNo">1002</span>        builder.addResultOrException(getResultOrException(ie, mutation.getIndex()));<a name="line.1002"></a>
+<span class="sourceLineNo">663</span>          region.getTableDescriptor().getTableName(),<a name="line.663"></a>
+<span class="sourceLineNo">664</span>        EnvironmentEdgeManager.currentTime() - before);<a name="line.664"></a>
+<span class="sourceLineNo">665</span>    }<a name="line.665"></a>
+<span class="sourceLineNo">666</span>    return r;<a name="line.666"></a>
+<span class="sourceLineNo">667</span>  }<a name="line.667"></a>
+<span class="sourceLineNo">668</span><a name="line.668"></a>
+<span class="sourceLineNo">669</span>  /**<a name="line.669"></a>
+<span class="sourceLineNo">670</span>   * Execute an increment mutation.<a name="line.670"></a>
+<span class="sourceLineNo">671</span>   *<a name="line.671"></a>
+<span class="sourceLineNo">672</span>   * @param region<a name="line.672"></a>
+<span class="sourceLineNo">673</span>   * @param mutation<a name="line.673"></a>
+<span class="sourceLineNo">674</span>   * @return the Result<a name="line.674"></a>
+<span class="sourceLineNo">675</span>   * @throws IOException<a name="line.675"></a>
+<span class="sourceLineNo">676</span>   */<a name="line.676"></a>
+<span class="sourceLineNo">677</span>  private Result increment(final HRegion region, final OperationQuota quota,<a name="line.677"></a>
+<span class="sourceLineNo">678</span>      final MutationProto mutation, final CellScanner cells, long nonceGroup,<a name="line.678"></a>
+<span class="sourceLineNo">679</span>      ActivePolicyEnforcement spaceQuota)<a name="line.679"></a>
+<span class="sourceLineNo">680</span>      throws IOException {<a name="line.680"></a>
+<span class="sourceLineNo">681</span>    long before = EnvironmentEdgeManager.currentTime();<a name="line.681"></a>
+<span class="sourceLineNo">682</span>    Increment increment = ProtobufUtil.toIncrement(mutation, cells);<a name="line.682"></a>
+<span class="sourceLineNo">683</span>    checkCellSizeLimit(region, increment);<a name="line.683"></a>
+<span class="sourceLineNo">684</span>    spaceQuota.getPolicyEnforcement(region).check(increment);<a name="line.684"></a>
+<span class="sourceLineNo">685</span>    quota.addMutation(increment);<a name="line.685"></a>
+<span class="sourceLineNo">686</span>    Result r = null;<a name="line.686"></a>
+<span class="sourceLineNo">687</span>    if (region.getCoprocessorHost() != null) {<a name="line.687"></a>
+<span class="sourceLineNo">688</span>      r = region.getCoprocessorHost().preIncrement(increment);<a name="line.688"></a>
+<span class="sourceLineNo">689</span>    }<a name="line.689"></a>
+<span class="sourceLineNo">690</span>    if (r == null) {<a name="line.690"></a>
+<span class="sourceLineNo">691</span>      boolean canProceed = startNonceOperation(mutation, nonceGroup);<a name="line.691"></a>
+<span class="sourceLineNo">692</span>      boolean success = false;<a name="line.692"></a>
+<span class="sourceLineNo">693</span>      try {<a name="line.693"></a>
+<span class="sourceLineNo">694</span>        long nonce = mutation.hasNonce() ? mutation.getNonce() : HConstants.NO_NONCE;<a name="line.694"></a>
+<span class="sourceLineNo">695</span>        if (canProceed) {<a name="line.695"></a>
+<span class="sourceLineNo">696</span>          r = region.increment(increment, nonceGroup, nonce);<a name="line.696"></a>
+<span class="sourceLineNo">697</span>        } else {<a name="line.697"></a>
+<span class="sourceLineNo">698</span>          // convert duplicate increment to get<a name="line.698"></a>
+<span class="sourceLineNo">699</span>          List&lt;Cell&gt; results = region.get(ProtobufUtil.toGet(mutation, cells), false, nonceGroup,<a name="line.699"></a>
+<span class="sourceLineNo">700</span>              nonce);<a name="line.700"></a>
+<span class="sourceLineNo">701</span>          r = Result.create(results);<a name="line.701"></a>
+<span class="sourceLineNo">702</span>        }<a name="line.702"></a>
+<span class="sourceLineNo">703</span>        success = true;<a name="line.703"></a>
+<span class="sourceLineNo">704</span>      } finally {<a name="line.704"></a>
+<span class="sourceLineNo">705</span>        if (canProceed) {<a name="line.705"></a>
+<span class="sourceLineNo">706</span>          endNonceOperation(mutation, nonceGroup, success);<a name="line.706"></a>
+<span class="sourceLineNo">707</span>        }<a name="line.707"></a>
+<span class="sourceLineNo">708</span>      }<a name="line.708"></a>
+<span class="sourceLineNo">709</span>      if (region.getCoprocessorHost() != null) {<a name="line.709"></a>
+<span class="sourceLineNo">710</span>        r = region.getCoprocessorHost().postIncrement(increment, r);<a name="line.710"></a>
+<span class="sourceLineNo">711</span>      }<a name="line.711"></a>
+<span class="sourceLineNo">712</span>    }<a name="line.712"></a>
+<span class="sourceLineNo">713</span>    if (regionServer.metricsRegionServer != null) {<a name="line.713"></a>
+<span class="sourceLineNo">714</span>      regionServer.metricsRegionServer.updateIncrement(<a name="line.714"></a>
+<span class="sourceLineNo">715</span>          region.getTableDescriptor().getTableName(),<a name="line.715"></a>
+<span class="sourceLineNo">716</span>          EnvironmentEdgeManager.currentTime() - before);<a name="line.716"></a>
+<span class="sourceLineNo">717</span>    }<a name="line.717"></a>
+<span class="sourceLineNo">718</span>    return r;<a name="line.718"></a>
+<span class="sourceLineNo">719</span>  }<a name="line.719"></a>
+<span class="sourceLineNo">720</span><a name="line.720"></a>
+<span class="sourceLineNo">721</span>  /**<a name="line.721"></a>
+<span class="sourceLineNo">722</span>   * Run through the regionMutation &lt;code&gt;rm&lt;/code&gt; and per Mutation, do the work, and then when<a name="line.722"></a>
+<span class="sourceLineNo">723</span>   * done, add an instance of a {@link ResultOrException} that corresponds to each Mutation.<a name="line.723"></a>
+<span class="sourceLineNo">724</span>   * @param cellsToReturn  Could be null. May be allocated in this method.  This is what this<a name="line.724"></a>
+<span class="sourceLineNo">725</span>   * method returns as a 'result'.<a name="line.725"></a>
+<span class="sourceLineNo">726</span>   * @param closeCallBack the callback to be used with multigets<a name="line.726"></a>
+<span class="sourceLineNo">727</span>   * @param context the current RpcCallContext<a name="line.727"></a>
+<span class="sourceLineNo">728</span>   * @return Return the &lt;code&gt;cellScanner&lt;/code&gt; passed<a name="line.728"></a>
+<span class="sourceLineNo">729</span>   */<a name="line.729"></a>
+<span class="sourceLineNo">730</span>  private List&lt;CellScannable&gt; doNonAtomicRegionMutation(final HRegion region,<a name="line.730"></a>
+<span class="sourceLineNo">731</span>      final OperationQuota quota, final RegionAction actions, final CellScanner cellScanner,<a name="line.731"></a>
+<span class="sourceLineNo">732</span>      final RegionActionResult.Builder builder, List&lt;CellScannable&gt; cellsToReturn, long nonceGroup,<a name="line.732"></a>
+<span class="sourceLineNo">733</span>      final RegionScannersCloseCallBack closeCallBack, RpcCallContext context,<a name="line.733"></a>
+<span class="sourceLineNo">734</span>      ActivePolicyEnforcement spaceQuotaEnforcement) {<a name="line.734"></a>
+<span class="sourceLineNo">735</span>    // Gather up CONTIGUOUS Puts and Deletes in this mutations List.  Idea is that rather than do<a name="line.735"></a>
+<span class="sourceLineNo">736</span>    // one at a time, we instead pass them in batch.  Be aware that the corresponding<a name="line.736"></a>
+<span class="sourceLineNo">737</span>    // ResultOrException instance that matches each Put or Delete is then added down in the<a name="line.737"></a>
+<span class="sourceLineNo">738</span>    // doBatchOp call.  We should be staying aligned though the Put and Delete are deferred/batched<a name="line.738"></a>
+<span class="sourceLineNo">739</span>    List&lt;ClientProtos.Action&gt; mutations = null;<a name="line.739"></a>
+<span class="sourceLineNo">740</span>    long maxQuotaResultSize = Math.min(maxScannerResultSize, quota.getReadAvailable());<a name="line.740"></a>
+<span class="sourceLineNo">741</span>    IOException sizeIOE = null;<a name="line.741"></a>
+<span class="sourceLineNo">742</span>    Object lastBlock = null;<a name="line.742"></a>
+<span class="sourceLineNo">743</span>    ClientProtos.ResultOrException.Builder resultOrExceptionBuilder = ResultOrException.newBuilder();<a name="line.743"></a>
+<span class="sourceLineNo">744</span>    boolean hasResultOrException = false;<a name="line.744"></a>
+<span class="sourceLineNo">745</span>    for (ClientProtos.Action action : actions.getActionList()) {<a name="line.745"></a>
+<span class="sourceLineNo">746</span>      hasResultOrException = false;<a name="line.746"></a>
+<span class="sourceLineNo">747</span>      resultOrExceptionBuilder.clear();<a name="line.747"></a>
+<span class="sourceLineNo">748</span>      try {<a name="line.748"></a>
+<span class="sourceLineNo">749</span>        Result r = null;<a name="line.749"></a>
+<span class="sourceLineNo">750</span><a name="line.750"></a>
+<span class="sourceLineNo">751</span>        if (context != null<a name="line.751"></a>
+<span class="sourceLineNo">752</span>            &amp;&amp; context.isRetryImmediatelySupported()<a name="line.752"></a>
+<span class="sourceLineNo">753</span>            &amp;&amp; (context.getResponseCellSize() &gt; maxQuotaResultSize<a name="line.753"></a>
+<span class="sourceLineNo">754</span>              || context.getResponseBlockSize() + context.getResponseExceptionSize()<a name="line.754"></a>
+<span class="sourceLineNo">755</span>              &gt; maxQuotaResultSize)) {<a name="line.755"></a>
+<span class="sourceLineNo">756</span><a name="line.756"></a>
+<span class="sourceLineNo">757</span>          // We're storing the exception since the exception and reason string won't<a name="line.757"></a>
+<span class="sourceLineNo">758</span>          // change after the response size limit is reached.<a name="line.758"></a>
+<span class="sourceLineNo">759</span>          if (sizeIOE == null ) {<a name="line.759"></a>
+<span class="sourceLineNo">760</span>            // We don't need the stack un-winding do don't throw the exception.<a name="line.760"></a>
+<span class="sourceLineNo">761</span>            // Throwing will kill the JVM's JIT.<a name="line.761"></a>
+<span class="sourceLineNo">762</span>            //<a name="line.762"></a>
+<span class="sourceLineNo">763</span>            // Instead just create the exception and then store it.<a name="line.763"></a>
+<span class="sourceLineNo">764</span>            sizeIOE = new MultiActionResultTooLarge("Max size exceeded"<a name="line.764"></a>
+<span class="sourceLineNo">765</span>                + " CellSize: " + context.getResponseCellSize()<a name="line.765"></a>
+<span class="sourceLineNo">766</span>                + " BlockSize: " + context.getResponseBlockSize());<a name="line.766"></a>
+<span class="sourceLineNo">767</span><a name="line.767"></a>
+<span class="sourceLineNo">768</span>            // Only report the exception once since there's only one request that<a name="line.768"></a>
+<span class="sourceLineNo">769</span>            // caused the exception. Otherwise this number will dominate the exceptions count.<a name="line.769"></a>
+<span class="sourceLineNo">770</span>            rpcServer.getMetrics().exception(sizeIOE);<a name="line.770"></a>
+<span class="sourceLineNo">771</span>          }<a name="line.771"></a>
+<span class="sourceLineNo">772</span><a name="line.772"></a>
+<span class="sourceLineNo">773</span>          // Now that there's an exception is known to be created<a name="line.773"></a>
+<span class="sourceLineNo">774</span>          // use it for the response.<a name="line.774"></a>
+<span class="sourceLineNo">775</span>          //<a name="line.775"></a>
+<span class="sourceLineNo">776</span>          // This will create a copy in the builder.<a name="line.776"></a>
+<span class="sourceLineNo">777</span>          hasResultOrException = true;<a name="line.777"></a>
+<span class="sourceLineNo">778</span>          NameBytesPair pair = ResponseConverter.buildException(sizeIOE);<a name="line.778"></a>
+<span class="sourceLineNo">779</span>          resultOrExceptionBuilder.setException(pair);<a name="line.779"></a>
+<span class="sourceLineNo">780</span>          context.incrementResponseExceptionSize(pair.getSerializedSize());<a name="line.780"></a>
+<span class="sourceLineNo">781</span>          resultOrExceptionBuilder.setIndex(action.getIndex());<a name="line.781"></a>
+<span class="sourceLineNo">782</span>          builder.addResultOrException(resultOrExceptionBuilder.build());<a name="line.782"></a>
+<span class="sourceLineNo">783</span>          if (cellScanner != null) {<a name="line.783"></a>
+<span class="sourceLineNo">784</span>            skipCellsForMutation(action, cellScanner);<a name="line.784"></a>
+<span class="sourceLineNo">785</span>          }<a name="line.785"></a>
+<span class="sourceLineNo">786</span>          continue;<a name="line.786"></a>
+<span class="sourceLineNo">787</span>        }<a name="line.787"></a>
+<span class="sourceLineNo">788</span>        if (action.hasGet()) {<a name="line.788"></a>
+<span class="sourceLineNo">789</span>          long before = EnvironmentEdgeManager.currentTime();<a name="line.789"></a>
+<span class="sourceLineNo">790</span>          try {<a name="line.790"></a>
+<span class="sourceLineNo">791</span>            Get get = ProtobufUtil.toGet(action.getGet());<a name="line.791"></a>
+<span class="sourceLineNo">792</span>            if (context != null) {<a name="line.792"></a>
+<span class="sourceLineNo">793</span>              r = get(get, ((HRegion) region), closeCallBack, context);<a name="line.793"></a>
+<span class="sourceLineNo">794</span>            } else {<a name="line.794"></a>
+<span class="sourceLineNo">795</span>              r = region.get(get);<a name="line.795"></a>
+<span class="sourceLineNo">796</span>            }<a name="line.796"></a>
+<span class="sourceLineNo">797</span>          } finally {<a name="line.797"></a>
+<span class="sourceLineNo">798</span>            if (regionServer.metricsRegionServer != null) {<a name="line.798"></a>
+<span class="sourceLineNo">799</span>              regionServer.metricsRegionServer.updateGet(<a name="line.799"></a>
+<span class="sourceLineNo">800</span>                  region.getTableDescriptor().getTableName(),<a name="line.800"></a>
+<span class="sourceLineNo">801</span>                  EnvironmentEdgeManager.currentTime() - before);<a name="line.801"></a>
+<span class="sourceLineNo">802</span>            }<a name="line.802"></a>
+<span class="sourceLineNo">803</span>          }<a name="line.803"></a>
+<span class="sourceLineNo">804</span>        } else if (action.hasServiceCall()) {<a name="line.804"></a>
+<span class="sourceLineNo">805</span>          hasResultOrException = true;<a name="line.805"></a>
+<span class="sourceLineNo">806</span>          try {<a name="line.806"></a>
+<span class="sourceLineNo">807</span>            com.google.protobuf.Message result =<a name="line.807"></a>
+<span class="sourceLineNo">808</span>                execServiceOnRegion(region, action.getServiceCall());<a name="line.808"></a>
+<span class="sourceLineNo">809</span>            ClientProtos.CoprocessorServiceResult.Builder serviceResultBuilder =<a name="line.809"></a>
+<span class="sourceLineNo">810</span>                ClientProtos.CoprocessorServiceResult.newBuilder();<a name="line.810"></a>
+<span class="sourceLineNo">811</span>            resultOrExceptionBuilder.setServiceResult(<a name="line.811"></a>
+<span class="sourceLineNo">812</span>                serviceResultBuilder.setValue(<a name="line.812"></a>
+<span class="sourceLineNo">813</span>                  serviceResultBuilder.getValueBuilder()<a name="line.813"></a>
+<span class="sourceLineNo">814</span>                    .setName(result.getClass().getName())<a name="line.814"></a>
+<span class="sourceLineNo">815</span>                    // TODO: Copy!!!<a name="line.815"></a>
+<span class="sourceLineNo">816</span>                    .setValue(UnsafeByteOperations.unsafeWrap(result.toByteArray()))));<a name="line.816"></a>
+<span class="sourceLineNo">817</span>          } catch (IOException ioe) {<a name="line.817"></a>
+<span class="sourceLineNo">818</span>            rpcServer.getMetrics().exception(ioe);<a name="line.818"></a>
+<span class="sourceLineNo">819</span>            NameBytesPair pair = ResponseConverter.buildException(ioe);<a name="line.819"></a>
+<span class="sourceLineNo">820</span>            resultOrExceptionBuilder.setException(pair);<a name="line.820"></a>
+<span class="sourceLineNo">821</span>            context.incrementResponseExceptionSize(pair.getSerializedSize());<a name="line.821"></a>
+<span class="sourceLineNo">822</span>          }<a name="line.822"></a>
+<span class="sourceLineNo">823</span>        } else if (action.hasMutation()) {<a name="line.823"></a>
+<span class="sourceLineNo">824</span>          MutationType type = action.getMutation().getMutateType();<a name="line.824"></a>
+<span class="sourceLineNo">825</span>          if (type != MutationType.PUT &amp;&amp; type != MutationType.DELETE &amp;&amp; mutations != null &amp;&amp;<a name="line.825"></a>
+<span class="sourceLineNo">826</span>              !mutations.isEmpty()) {<a name="line.826"></a>
+<span class="sourceLineNo">827</span>            // Flush out any Puts or Deletes already collected.<a name="line.827"></a>
+<span class="sourceLineNo">828</span>            doBatchOp(builder, region, quota, mutations, cellScanner, spaceQuotaEnforcement, false);<a name="line.828"></a>
+<span class="sourceLineNo">829</span>            mutations.clear();<a name="line.829"></a>
+<span class="sourceLineNo">830</span>          }<a name="line.830"></a>
+<span class="sourceLineNo">831</span>          switch (type) {<a name="line.831"></a>
+<span class="sourceLineNo">832</span>            case APPEND:<a name="line.832"></a>
+<span class="sourceLineNo">833</span>              r = append(region, quota, action.getMutation(), cellScanner, nonceGroup,<a name="line.833"></a>
+<span class="sourceLineNo">834</span>                  spaceQuotaEnforcement);<a name="line.834"></a>
+<span class="sourceLineNo">835</span>              break;<a name="line.835"></a>
+<span class="sourceLineNo">836</span>            case INCREMENT:<a name="line.836"></a>
+<span class="sourceLineNo">837</span>              r = increment(region, quota, action.getMutation(), cellScanner, nonceGroup,<a name="line.837"></a>
+<span class="sourceLineNo">838</span>                  spaceQuotaEnforcement);<a name="line.838"></a>
+<span class="sourceLineNo">839</span>              break;<a name="line.839"></a>
+<span class="sourceLineNo">840</span>            case PUT:<a name="line.840"></a>
+<span class="sourceLineNo">841</span>            case DELETE:<a name="line.841"></a>
+<span class="sourceLineNo">842</span>              // Collect the individual mutations and apply in a batch<a name="line.842"></a>
+<span class="sourceLineNo">843</span>              if (mutations == null) {<a name="line.843"></a>
+<span class="sourceLineNo">844</span>                mutations = new ArrayList&lt;&gt;(actions.getActionCount());<a name="line.844"></a>
+<span class="sourceLineNo">845</span>              }<a name="line.845"></a>
+<span class="sourceLineNo">846</span>              mutations.add(action);<a name="line.846"></a>
+<span class="sourceLineNo">847</span>              break;<a name="line.847"></a>
+<span class="sourceLineNo">848</span>            default:<a name="line.848"></a>
+<span class="sourceLineNo">849</span>              throw new DoNotRetryIOException("Unsupported mutate type: " + type.name());<a name="line.849"></a>
+<span class="sourceLineNo">850</span>          }<a name="line.850"></a>
+<span class="sourceLineNo">851</span>        } else {<a name="line.851"></a>
+<span class="sourceLineNo">852</span>          throw new HBaseIOException("Unexpected Action type");<a name="line.852"></a>
+<span class="sourceLineNo">853</span>        }<a name="line.853"></a>
+<span class="sourceLineNo">854</span>        if (r != null) {<a name="line.854"></a>
+<span class="sourceLineNo">855</span>          ClientProtos.Result pbResult = null;<a name="line.855"></a>
+<span class="sourceLineNo">856</span>          if (isClientCellBlockSupport(context)) {<a name="line.856"></a>
+<span class="sourceLineNo">857</span>            pbResult = ProtobufUtil.toResultNoData(r);<a name="line.857"></a>
+<span class="sourceLineNo">858</span>            //  Hard to guess the size here.  Just make a rough guess.<a name="line.858"></a>
+<span class="sourceLineNo">859</span>            if (cellsToReturn == null) {<a name="line.859"></a>
+<span class="sourceLineNo">860</span>              cellsToReturn = new ArrayList&lt;&gt;();<a name="line.860"></a>
+<span class="sourceLineNo">861</span>            }<a name="line.861"></a>
+<span class="sourceLineNo">862</span>            cellsToReturn.add(r);<a name="line.862"></a>
+<span class="sourceLineNo">863</span>          } else {<a name="line.863"></a>
+<span class="sourceLineNo">864</span>            pbResult = ProtobufUtil.toResult(r);<a name="line.864"></a>
+<span class="sourceLineNo">865</span>          }<a name="line.865"></a>
+<span class="sourceLineNo">866</span>          lastBlock = addSize(context, r, lastBlock);<a name="line.866"></a>
+<span class="sourceLineNo">867</span>          hasResultOrException = true;<a name="line.867"></a>
+<span class="sourceLineNo">868</span>          resultOrExceptionBuilder.setResult(pbResult);<a name="line.868"></a>
+<span class="sourceLineNo">869</span>        }<a name="line.869"></a>
+<span class="sourceLineNo">870</span>        // Could get to here and there was no result and no exception.  Presumes we added<a name="line.870"></a>
+<span class="sourceLineNo">871</span>        // a Put or Delete to the collecting Mutations List for adding later.  In this<a name="line.871"></a>
+<span class="sourceLineNo">872</span>        // case the corresponding ResultOrException instance for the Put or Delete will be added<a name="line.872"></a>
+<span class="sourceLineNo">873</span>        // down in the doBatchOp method call rather than up here.<a name="line.873"></a>
+<span class="sourceLineNo">874</span>      } catch (IOException ie) {<a name="line.874"></a>
+<span class="sourceLineNo">875</span>        rpcServer.getMetrics().exception(ie);<a name="line.875"></a>
+<span class="sourceLineNo">876</span>        hasResultOrException = true;<a name="line.876"></a>
+<span class="sourceLineNo">877</span>        NameBytesPair pair = ResponseConverter.buildException(ie);<a name="line.877"></a>
+<span class="sourceLineNo">878</span>        resultOrExceptionBuilder.setException(pair);<a name="line.878"></a>
+<span class="sourceLineNo">879</span>        context.incrementResponseExceptionSize(pair.getSerializedSize());<a name="line.879"></a>
+<span class="sourceLineNo">880</span>      }<a name="line.880"></a>
+<span class="sourceLineNo">881</span>      if (hasResultOrException) {<a name="line.881"></a>
+<span class="sourceLineNo">882</span>        // Propagate index.<a name="line.882"></a>
+<span class="sourceLineNo">883</span>        resultOrExceptionBuilder.setIndex(action.getIndex());<a name="line.883"></a>
+<span class="sourceLineNo">884</span>        builder.addResultOrException(resultOrExceptionBuilder.build());<a name="line.884"></a>
+<span class="sourceLineNo">885</span>      }<a name="line.885"></a>
+<span class="sourceLineNo">886</span>    }<a name="line.886"></a>
+<span class="sourceLineNo">887</span>    // Finish up any outstanding mutations<a name="line.887"></a>
+<span class="sourceLineNo">888</span>    if (mutations != null &amp;&amp; !mutations.isEmpty()) {<a name="line.888"></a>
+<span class="sourceLineNo">889</span>      try {<a name="line.889"></a>
+<span class="sourceLineNo">890</span>        doBatchOp(builder, region, quota, mutations, cellScanner, spaceQuotaEnforcement, false);<a name="line.890"></a>
+<span class="sourceLineNo">891</span>      } catch (IOException ioe) {<a name="line.891"></a>
+<span class="sourceLineNo">892</span>        rpcServer.getMetrics().exception(ioe);<a name="line.892"></a>
+<span class="sourceLineNo">893</span>        NameBytesPair pair = ResponseConverter.buildException(ioe);<a name="line.893"></a>
+<span class="sourceLineNo">894</span>        resultOrExceptionBuilder.setException(pair);<a name="line.894"></a>
+<span class="sourceLineNo">895</span>        context.incrementResponseExceptionSize(pair.getSerializedSize());<a name="line.895"></a>
+<span class="sourceLineNo">896</span>        builder.addResultOrException(resultOrExceptionBuilder.build());<a name="line.896"></a>
+<span class="sourceLineNo">897</span>      }<a name="line.897"></a>
+<span class="sourceLineNo">898</span>    }<a name="line.898"></a>
+<span class="sourceLineNo">899</span>    return cellsToReturn;<a name="line.899"></a>
+<span class="sourceLineNo">900</span>  }<a name="line.900"></a>
+<span class="sourceLineNo">901</span><a name="line.901"></a>
+<span class="sourceLineNo">902</span>  private void checkCellSizeLimit(final HRegion r, final Mutation m) throws IOException {<a name="line.902"></a>
+<span class="sourceLineNo">903</span>    if (r.maxCellSize &gt; 0) {<a name="line.903"></a>
+<span class="sourceLineNo">904</span>      CellScanner cells = m.cellScanner();<a name="line.904"></a>
+<span class="sourceLineNo">905</span>      while (cells.advance()) {<a name="line.905"></a>
+<span class="sourceLineNo">906</span>        int size = PrivateCellUtil.estimatedSerializedSizeOf(cells.current());<a name="line.906"></a>
+<span class="sourceLineNo">907</span>        if (size &gt; r.maxCellSize) {<a name="line.907"></a>
+<span class="sourceLineNo">908</span>          String msg = "Cell with size " + size + " exceeds limit of " + r.maxCellSize + " bytes";<a name="line.908"></a>
+<span class="sourceLineNo">909</span>          if (LOG.isDebugEnabled()) {<a name="line.909"></a>
+<span class="sourceLineNo">910</span>            LOG.debug(msg);<a name="line.910"></a>
+<span class="sourceLineNo">911</span>          }<a name="line.911"></a>
+<span class="sourceLineNo">912</span>          throw new DoNotRetryIOException(msg);<a name="line.912"></a>
+<span class="sourceLineNo">913</span>        }<a name="line.913"></a>
+<span class="sourceLineNo">914</span>      }<a name="line.914"></a>
+<span class="sourceLineNo">915</span>    }<a name="line.915"></a>
+<span class="sourceLineNo">916</span>  }<a name="line.916"></a>
+<span class="sourceLineNo">917</span><a name="line.917"></a>
+<span class="sourceLineNo">918</span>  /**<a name="line.918"></a>
+<span class="sourceLineNo">919</span>   * Execute a list of Put/Delete mutations.<a name="line.919"></a>
+<span class="sourceLineNo">920</span>   *<a name="line.920"></a>
+<span class="sourceLineNo">921</span>   * @param builder<a name="line.921"></a>
+<span class="sourceLineNo">922</span>   * @param region<a name="line.922"></a>
+<span class="sourceLineNo">923</span>   * @param mutations<a name="line.923"></a>
+<span class="sourceLineNo">924</span>   */<a name="line.924"></a>
+<span class="sourceLineNo">925</span>  private void doBatchOp(final RegionActionResult.Builder builder, final HRegion region,<a name="line.925"></a>
+<span class="sourceLineNo">926</span>      final OperationQuota quota, final List&lt;ClientProtos.Action&gt; mutations,<a name="line.926"></a>
+<span class="sourceLineNo">927</span>      final CellScanner cells, ActivePolicyEnforcement spaceQuotaEnforcement, boolean atomic)<a name="line.927"></a>
+<span class="sourceLineNo">928</span>      throws IOException {<a name="line.928"></a>
+<span class="sourceLineNo">929</span>    Mutation[] mArray = new Mutation[mutations.size()];<a name="line.929"></a>
+<span class="sourceLineNo">930</span>    long before = EnvironmentEdgeManager.currentTime();<a name="line.930"></a>
+<span class="sourceLineNo">931</span>    boolean batchContainsPuts = false, batchContainsDelete = false;<a name="line.931"></a>
+<span class="sourceLineNo">932</span>    try {<a name="line.932"></a>
+<span class="sourceLineNo">933</span>      /** HBASE-17924<a name="line.933"></a>
+<span class="sourceLineNo">934</span>       * mutationActionMap is a map to map the relation between mutations and actions<a name="line.934"></a>
+<span class="sourceLineNo">935</span>       * since mutation array may have been reoredered.In order to return the right<a name="line.935"></a>
+<span class="sourceLineNo">936</span>       * result or exception to the corresponding actions, We need to know which action<a name="line.936"></a>
+<span class="sourceLineNo">937</span>       * is the mutation belong to. We can't sort ClientProtos.Action array, since they<a name="line.937"></a>
+<span class="sourceLineNo">938</span>       * are bonded to cellscanners.<a name="line.938"></a>
+<span class="sourceLineNo">939</span>       */<a name="line.939"></a>
+<span class="sourceLineNo">940</span>      Map&lt;Mutation, ClientProtos.Action&gt; mutationActionMap = new HashMap&lt;&gt;();<a name="line.940"></a>
+<span class="sourceLineNo">941</span>      int i = 0;<a name="line.941"></a>
+<span class="sourceLineNo">942</span>      for (ClientProtos.Action action: mutations) {<a name="line.942"></a>
+<span class="sourceLineNo">943</span>        MutationProto m = action.getMutation();<a name="line.943"></a>
+<span class="sourceLineNo">944</span>        Mutation mutation;<a name="line.944"></a>
+<span class="sourceLineNo">945</span>        if (m.getMutateType() == MutationType.PUT) {<a name="line.945"></a>
+<span class="sourceLineNo">946</span>          mutation = ProtobufUtil.toPut(m, cells);<a name="line.946"></a>
+<span class="sourceLineNo">947</span>          batchContainsPuts = true;<a name="line.947"></a>
+<span class="sourceLineNo">948</span>        } else {<a name="line.948"></a>
+<span class="sourceLineNo">949</span>          mutation = ProtobufUtil.toDelete(m, cells);<a name="line.949"></a>
+<span class="sourceLineNo">950</span>          batchContainsDelete = true;<a name="line.950"></a>
+<span class="sourceLineNo">951</span>        }<a name="line.951"></a>
+<span class="sourceLineNo">952</span>        mutationActionMap.put(mutation, action);<a name="line.952"></a>
+<span class="sourceLineNo">953</span>        mArray[i++] = mutation;<a name="line.953"></a>
+<span class="sourceLineNo">954</span>        checkCellSizeLimit(region, mutation);<a name="line.954"></a>
+<span class="sourceLineNo">955</span>        // Check if a space quota disallows this mutation<a name="line.955"></a>
+<span class="sourceLineNo">956</span>        spaceQuotaEnforcement.getPolicyEnforcement(region).check(mutation);<a name="line.956"></a>
+<span class="sourceLineNo">957</span>        quota.addMutation(mutation);<a name="line.957"></a>
+<span class="sourceLineNo">958</span>      }<a name="line.958"></a>
+<span class="sourceLineNo">959</span><a name="line.959"></a>
+<span class="sourceLineNo">960</span>      if (!region.getRegionInfo().isMetaRegion()) {<a name="line.960"></a>
+<span class="sourceLineNo">961</span>        regionServer.cacheFlusher.reclaimMemStoreMemory();<a name="line.961"></a>
+<span class="sourceLineNo">962</span>      }<a name="line.962"></a>
+<span class="sourceLineNo">963</span><a name="line.963"></a>
+<span class="sourceLineNo">964</span>      // HBASE-17924<a name="line.964"></a>
+<span class="sourceLineNo">965</span>      // Sort to improve lock efficiency for non-atomic batch of operations. If atomic (mostly<a name="line.965"></a>
+<span class="sourceLineNo">966</span>      // called from mutateRows()), order is preserved as its expected from the client<a name="line.966"></a>
+<span class="sourceLineNo">967</span>      if (!atomic) {<a name="line.967"></a>
+<span class="sourceLineNo">968</span>        Arrays.sort(mArray);<a name="line.968"></a>
+<span class="sourceLineNo">969</span>      }<a name="line.969"></a>
+<span class="sourceLineNo">970</span><a name="line.970"></a>
+<span class="sourceLineNo">971</span>      OperationStatus[] codes = region.batchMutate(mArray, atomic, HConstants.NO_NONCE,<a name="line.971"></a>
+<span class="sourceLineNo">972</span>        HConstants.NO_NONCE);<a name="line.972"></a>
+<span class="sourceLineNo">973</span>      for (i = 0; i &lt; codes.length; i++) {<a name="line.973"></a>
+<span class="sourceLineNo">974</span>        Mutation currentMutation = mArray[i];<a name="line.974"></a>
+<span class="sourceLineNo">975</span>        ClientProtos.Action currentAction = mutationActionMap.get(currentMutation);<a name="line.975"></a>
+<span class="sourceLineNo">976</span>        int index = currentAction.hasIndex() || !atomic ? currentAction.getIndex() : i;<a name="line.976"></a>
+<span class="sourceLineNo">977</span>        Exception e = null;<a name="line.977"></a>
+<span class="sourceLineNo">978</span>        switch (codes[i].getOperationStatusCode()) {<a name="line.978"></a>
+<span class="sourceLineNo">979</span>          case BAD_FAMILY:<a name="line.979"></a>
+<span class="sourceLineNo">980</span>            e = new NoSuchColumnFamilyException(codes[i].getExceptionMsg());<a name="line.980"></a>
+<span class="sourceLineNo">981</span>            builder.addResultOrException(getResultOrException(e, index));<a name="line.981"></a>
+<span class="sourceLineNo">982</span>            break;<a name="line.982"></a>
+<span class="sourceLineNo">983</span><a name="line.983"></a>
+<span class="sourceLineNo">984</span>          case SANITY_CHECK_FAILURE:<a name="line.984"></a>
+<span class="sourceLineNo">985</span>            e = new FailedSanityCheckException(codes[i].getExceptionMsg());<a name="line.985"></a>
+<span class="sourceLineNo">986</span>            builder.addResultOrException(getResultOrException(e, index));<a name="line.986"></a>
+<span class="sourceLineNo">987</span>            break;<a name="line.987"></a>
+<span class="sourceLineNo">988</span><a name="line.988"></a>
+<span class="sourceLineNo">989</span>          default:<a name="line.989"></a>
+<span class="sourceLineNo">990</span>            e = new DoNotRetryIOException(codes[i].getExceptionMsg());<a name="line.990"></a>
+<span class="sourceLineNo">991</span>            builder.addResultOrException(getResultOrException(e, index));<a name="line.991"></a>
+<span class="sourceLineNo">992</span>            break;<a name="line.992"></a>
+<span class="sourceLineNo">993</span><a name="line.993"></a>
+<span class="sourceLineNo">994</span>          case SUCCESS:<a name="line.994"></a>
+<span class="sourceLineNo">995</span>            builder.addResultOrException(getResultOrException(<a name="line.995"></a>
+<span class="sourceLineNo">996</span>              ClientProtos.Result.getDefaultInstance(), index));<a name="line.996"></a>
+<span class="sourceLineNo">997</span>            break;<a name="line.997"></a>
+<span class="sourceLineNo">998</span>        }<a name="line.998"></a>
+<span class="sourceLineNo">999</span>      }<a name="line.999"></a>
+<span class="sourceLineNo">1000</span>    } catch (IOException ie) {<a name="line.1000"></a>
+<span class="sourceLineNo">1001</span>      if (atomic) {<a name="line.1001"></a>
+<span class="sourceLineNo">1002</span>        throw ie;<a name="line.1002"></a>
 <span class="sourceLineNo">1003</span>      }<a name="line.1003"></a>
-<span class="sourceLineNo">1004</span>    }<a name="line.1004"></a>
-<span class="sourceLineNo">1005</span>    if (regionServer.metricsRegionServer != null) {<a name="line.1005"></a>
-<span class="sourceLineNo">1006</span>      long after = EnvironmentEdgeManager.currentTime();<a name="line.1006"></a>
-<span class="sourceLineNo">1007</span>      if (batchContainsPuts) {<a name="line.1007"></a>
-<span class="sourceLineNo">1008</span>        regionServer.metricsRegionServer.updatePutBatch(after - before);<a name="line.1008"></a>
-<span class="sourceLineNo">1009</span>      }<a name="line.1009"></a>
-<span class="sourceLineNo">1010</span>      if (batchContainsDelete) {<a name="line.1010"></a>
-<span class="sourceLineNo">1011</span>        regionServer.metricsRegionServer.updateDeleteBatch(after - before);<a name="line.1011"></a>
-<span class="sourceLineNo">1012</span>      }<a name="line.1012"></a>
-<span class="sourceLineNo">1013</span>    }<a name="line.1013"></a>
-<span class="sourceLineNo">1014</span>  }<a name="line.1014"></a>
-<span class="sourceLineNo">1015</span><a name="line.1015"></a>
-<span class="sourceLineNo">1016</span>  /**<a name="line.1016"></a>
-<span class="sourceLineNo">1017</span>   * Execute a list of Put/Delete mutations. The function returns OperationStatus instead of<a name="line.1017"></a>
-<span class="sourceLineNo">1018</span>   * constructing MultiResponse to save a possible loop if caller doesn't need MultiResponse.<a name="line.1018"></a>
-<span class="sourceLineNo">1019</span>   * @param region<a name="line.1019"></a>
-<span class="sourceLineNo">1020</span>   * @param mutations<a name="line.1020"></a>
-<span class="sourceLineNo">1021</span>   * @param replaySeqId<a name="line.1021"></a>
-<span class="sourceLineNo">1022</span>   * @return an array of OperationStatus which internally contains the OperationStatusCode and the<a name="line.1022"></a>
-<span class="sourceLineNo">1023</span>   *         exceptionMessage if any<a name="line.1023"></a>
-<span class="sourceLineNo">1024</span>   * @throws IOException<a name="line.1024"></a>
-<span class="sourceLineNo">1025</span>   */<a name="line.1025"></a>
-<span class="sourceLineNo">1026</span>  private OperationStatus [] doReplayBatchOp(final HRegion region,<a name="line.1026"></a>
-<span class="sourceLineNo">1027</span>      final List&lt;WALSplitter.MutationReplay&gt; mutations, long replaySeqId) throws IOException {<a name="line.1027"></a>
-<span class="sourceLineNo">1028</span>    long before = EnvironmentEdgeManager.currentTime();<a name="line.1028"></a>
-<span class="sourceLineNo">1029</span>    boolean batchContainsPuts = false, batchContainsDelete = false;<a name="line.1029"></a>
-<span class="sourceLineNo">1030</span>    try {<a name="line.1030"></a>
-<span class="sourceLineNo">1031</span>      for (Iterator&lt;WALSplitter.MutationReplay&gt; it = mutations.iterator(); it.hasNext();) {<a name="line.1031"></a>
-<span class="sourceLineNo">1032</span>        WALSplitter.MutationReplay m = it.next();<a name="line.1032"></a>
-<span class="sourceLineNo">1033</span><a name="line.1033"></a>
-<span class="sourceLineNo">1034</span>        if (m.type == MutationType.PUT) {<a name="line.1034"></a>
-<span class="sourceLineNo">1035</span>          batchContainsPuts = true;<a name="line.1035"></a>
-<span class="sourceLineNo">1036</span>        } else {<a name="line.1036"></a>
-<span class="sourceLineNo">1037</span>          batchContainsDelete = true;<a name="line.1037"></a>
-<span class="sourceLineNo">1038</span>        }<a name="line.1038"></a>
-<span class="sourceLineNo">1039</span><a name="line.1039"></a>
-<span class="sourceLineNo">1040</span>        NavigableMap&lt;byte[], List&lt;Cell&gt;&gt; map = m.mutation.getFamilyCellMap();<a name="line.1040"></a>
-<span class="sourceLineNo">1041</span>        List&lt;Cell&gt; metaCells = map.get(WALEdit.METAFAMILY);<a name="line.1041"></a>
-<span class="sourceLineNo">1042</span>        if (metaCells != null &amp;&amp; !metaCells.isEmpty()) {<a name="line.1042"></a>
-<span class="sourceLineNo">1043</span>          for (Cell metaCell : metaCells) {<a name="line.1043"></a>
-<span class="sourceLineNo">1044</span>            CompactionDescriptor compactionDesc = WALEdit.getCompaction(metaCell);<a name="line.1044"></a>
-<span class="sourceLineNo">1045</span>            boolean isDefaultReplica = RegionReplicaUtil.isDefaultReplica(region.getRegionInfo());<a name="line.1045"></a>
-<span class="sourceLineNo">1046</span>            HRegion hRegion = (HRegion)region;<a name="line.1046"></a>
-<span class="sourceLineNo">1047</span>            if (compactionDesc != null) {<a name="line.1047"></a>
-<span class="sourceLineNo">1048</span>              // replay the compaction. Remove the files from stores only if we are the primary<a name="line.1048"></a>
-<span class="sourceLineNo">1049</span>              // region replica (thus own the files)<a name="line.1049"></a>
-<span class="sourceLineNo">1050</span>              hRegion.replayWALCompactionMarker(compactionDesc, !isDefaultReplica, isDefaultReplica,<a name="line.1050"></a>
-<span class="sourceLineNo">1051</span>                replaySeqId);<a name="line.1051"></a>
-<span class="sourceLineNo">1052</span>              continue;<a name="line.1052"></a>
-<span class="sourceLineNo">1053</span>            }<a name="line.1053"></a>
-<span class="sourceLineNo">1054</span>            FlushDescriptor flushDesc = WALEdit.getFlushDescriptor(metaCell);<a name="line.1054"></a>
-<span class="sourceLineNo">1055</span>            if (flushDesc != null &amp;&amp; !isDefaultReplica) {<a name="line.1055"></a>
-<span class="sourceLineNo">1056</span>              hRegion.replayWALFlushMarker(flushDesc, replaySeqId);<a name="line.1056"></a>
+<span class="sourceLineNo">1004</span>      for (Action mutation : mutations) {<a name="line.1004"></a>
+<span class="sourceLineNo">1005</span>        builder.addResultOrException(getResultOrException(ie, mutation.getIndex()));<a name="line.1005"></a>
+<span class="sourceLineNo">1006</span>      }<a name="line.1006"></a>
+<span class="sourceLineNo">1007</span>    }<a name="line.1007"></a>
+<span class="sourceLineNo">1008</span>    if (regionServer.metricsRegionServer != null) {<a name="line.1008"></a>
+<span class="sourceLineNo">1009</span>      long after = EnvironmentEdgeManager.currentTime();<a name="line.1009"></a>
+<span class="sourceLineNo">1010</span>      if (batchContainsPuts) {<a name="line.1010"></a>
+<span class="sourceLineNo">1011</span>        regionServer.metricsRegionServer.updatePutBatch(<a name="line.1011"></a>
+<span class="sourceLineNo">1012</span>            region.getTableDescriptor().getTableName(), after - before);<a name="line.1012"></a>
+<span class="sourceLineNo">1013</span>      }<a name="line.1013"></a>
+<span class="sourceLineNo">1014</span>      if (batchContainsDelete) {<a name="line.1014"></a>
+<span class="sourceLineNo">1015</span>        regionServer.metricsRegionServer.updateDeleteBatch(<a name="line.1015"></a>
+<span class="sourceLineNo">1016</span>            region.getTableDescriptor().getTableName(), after - before);<a name="line.1016"></a>
+<span class="sourceLineNo">1017</span>      }<a name="line.1017"></a>
+<span class="sourceLineNo">1018</span>    }<a name="line.1018"></a>
+<span class="sourceLineNo">1019</span>  }<a name="line.1019"></a>
+<span class="sourceLineNo">1020</span><a name="line.1020"></a>
+<span class="sourceLineNo">1021</span>  /**<a name="line.1021"></a>
+<span class="sourceLineNo">1022</span>   * Execute a list of Put/Delete mutations. The function returns OperationStatus instead of<a name="line.1022"></a>
+<span class="sourceLineNo">1023</span>   * constructing MultiResponse to save a possible loop if caller doesn't need MultiResponse.<a name="line.1023"></a>
+<span class="sourceLineNo">1024</span>   * @param region<a name="line.1024"></a>
+<span class="sourceLineNo">1025</span>   * @param mutations<a name="line.1025"></a>
+<span class="sourceLineNo">1026</span>   * @param replaySeqId<a name="line.1026"></a>
+<span class="sourceLineNo">1027</span>   * @return an array of OperationStatus which internally contains the OperationStatusCode and the<a name="line.1027"></a>
+<span class="sourceLineNo">1028</span>   *         exceptionMessage if any<a name="line.1028"></a>
+<span class="sourceLineNo">1029</span>   * @throws IOException<a name="line.1029"></a>
+<span class="sourceLineNo">1030</span>   */<a name="line.1030"></a>
+<span class="sourceLineNo">1031</span>  private OperationStatus [] doReplayBatchOp(final HRegion region,<a name="line.1031"></a>
+<span class="sourceLineNo">1032</span>      final List&lt;WALSplitter.MutationReplay&gt; mutations, long replaySeqId) throws IOException {<a name="line.1032"></a>
+<span class="sourceLineNo">1033</span>    long before = EnvironmentEdgeManager.currentTime();<a name="line.1033"></a>
+<span class="sourceLineNo">1034</span>    boolean batchContainsPuts = false, batchContainsDelete = false;<a name="line.1034"></a>
+<span class="sourceLineNo">1035</span>    try {<a name="line.1035"></a>
+<span class="sourceLineNo">1036</span>      for (Iterator&lt;WALSplitter.MutationReplay&gt; it = mutations.iterator(); it.hasNext();) {<a name="line.1036"></a>
+<span class="sourceLineNo">1037</span>        WALSplitter.MutationReplay m = it.next();<a name="line.1037"></a>
+<span class="sourceLineNo">1038</span><a name="line.1038"></a>
+<span class="sourceLineNo">1039</span>        if (m.type == MutationType.PUT) {<a name="line.1039"></a>
+<span class="sourceLineNo">1040</span>          batchContainsPuts = true;<a name="line.1040"></a>
+<span class="sourceLineNo">1041</span>        } else {<a name="line.1041"></a>
+<span class="sourceLineNo">1042</span>          batchContainsDelete = true;<a name="line.1042"></a>
+<span class="sourceLineNo">1043</span>        }<a name="line.1043"></a>
+<span class="sourceLineNo">1044</span><a name="line.1044"></a>
+<span class="sourceLineNo">1045</span>        NavigableMap&lt;byte[], List&lt;Cell&gt;&gt; map = m.mutation.getFamilyCellMap();<a name="line.1045"></a>
+<span class="sourceLineNo">1046</span>        List&lt;Cell&gt; metaCells = map.get(WALEdit.METAFAMILY);<a name="line.1046"></a>
+<span class="sourceLineNo">1047</span>        if (metaCells != null &amp;&amp; !metaCells.isEmpty()) {<a name="line.1047"></a>
+<span class="sourceLineNo">1048</span>          for (Cell metaCell : metaCells) {<a name="line.1048"></a>
+<span class="sourceLineNo">1049</span>            CompactionDescriptor compactionDesc = WALEdit.getCompaction(metaCell);<a name="line.1049"></a>
+<span class="sourceLineNo">1050</span>            boolean isDefaultReplica = RegionReplicaUtil.isDefaultReplica(region.getRegionInfo());<a name="line.1050"></a>
+<span class="sourceLineNo">1051</span>            HRegion hRegion = (HRegion)region;<a name="line.1051"></a>
+<span class="sourceLineNo">1052</span>            if (compactionDesc != null) {<a name="line.1052"></a>
+<span class="sourceLineNo">1053</span>              // replay the compaction. Remove the files from stores only if we are the primary<a name="line.1053"></a>
+<span class="sourceLineNo">1054</span>              // region replica (thus own the files)<a name="line.1054"></a>
+<span class="sourceLineNo">1055</span>              hRegion.replayWALCompactionMarker(compactionDesc, !isDefaultReplica, isDefaultReplica,<a name="line.1055"></a>
+<span class="sourceLineNo">1056</span>                replaySeqId);<a name="line.1056"></a>
 <span class="sourceLineNo">1057</span>              continue;<a name="line.1057"></a>
 <span class="sourceLineNo">1058</span>            }<a name="line.1058"></a>
-<span class="sourceLineNo">1059</span>            RegionEventDescriptor regionEvent = WALEdit.getRegionEventDescriptor(metaCell);<a name="line.1059"></a>
-<span class="sourceLineNo">1060</span>            if (regionEvent != null &amp;&amp; !isDefaultReplica) {<a name="line.1060"></a>
-<span class="sourceLineNo">1061</span>              hRegion.replayWALRegionEventMarker(regionEvent);<a name="line.1061"></a>
+<span class="sourceLineNo">1059</span>            FlushDescriptor flushDesc = WALEdit.getFlushDescriptor(metaCell);<a name="line.1059"></a>
+<span class="sourceLineNo">1060</span>            if (flushDesc != null &amp;&amp; !isDefaultReplica) {<a name="line.1060"></a>
+<span class="sourceLineNo">1061</span>              hRegion.replayWALFlushMarker(flushDesc, replaySeqId);<a name="line.1061"></a>
 <span class="sourceLineNo">1062</span>              continue;<a name="line.1062"></a>
 <span class="sourceLineNo">1063</span>            }<a name="line.1063"></a>
-<span class="sourceLineNo">1064</span>            BulkLoadDescriptor bulkLoadEvent = WALEdit.getBulkLoadDescriptor(metaCell);<a name="line.1064"></a>
-<span class="sourceLineNo">1065</span>            if (bulkLoadEvent != null) {<a name="line.1065"></a>
-<span class="sourceLineNo">1066</span>              hRegion.replayWALBulkLoadEventMarker(bulkLoadEvent);<a name="line.1066"></a>
+<span class="sourceLineNo">1064</span>            RegionEventDescriptor regionEvent = WALEdit.getRegionEventDescriptor(metaCell);<a name="line.1064"></a>
+<span class="sourceLineNo">1065</span>            if (regionEvent != null &amp;&amp; !isDefaultReplica) {<a name="line.1065"></a>
+<span class="sourceLineNo">1066</span>              hRegion.replayWALRegionEventMarker(regionEvent);<a name="line.1066"></a>
 <span class="sourceLineNo">1067</span>              continue;<a name="line.1067"></a>
 <span class="sourceLineNo">1068</span>            }<a name="line.1068"></a>
-<span class="sourceLineNo">1069</span>          }<a name="line.1069"></a>
-<span class="sourceLineNo">1070</span>          it.remove();<a name="line.1070"></a>
-<span class="sourceLineNo">1071</span>        }<a name="line.1071"></a>
-<span class="sourceLineNo">1072</span>      }<a name="line.1072"></a>
-<span class="sourceLineNo">1073</span>      requestCount.increment();<a name="line.1073"></a>
-<span class="sourceLineNo">1074</span>      if (!region.getRegionInfo().isMetaRegion()) {<a name="line.1074"></a>
-<span class="sourceLineNo">1075</span>        regionServer.cacheFlusher.reclaimMemStoreMemory();<a name="line.1075"></a>
-<span class="sourceLineNo">1076</span>      }<a name="line.1076"></a>
-<span class="sourceLineNo">1077</span>      return region.batchReplay(mutations.toArray(<a name="line.1077"></a>
-<span class="sourceLineNo">1078</span>        new WALSplitter.MutationReplay[mutations.size()]), replaySeqId);<a name="line.1078"></a>
-<span class="sourceLineNo">1079</span>    } finally {<a name="line.1079"></a>
-<span class="sourceLineNo">1080</span>      if (regionServer.metricsRegionServer != null) {<a name="line.1080"></a>
-<span class="sourceLineNo">1081</span>        long after = EnvironmentEdgeManager.currentTime();<a name="line.1081"></a>
-<span class="sourceLineNo">1082</span>          if (batchContainsPuts) {<a name="line.1082"></a>
-<span class="sourceLineNo">1083</span>          regionServer.metricsRegionServer.updatePutBatch(after - before);<a name="line.1083"></a>
-<span class="sourceLineNo">1084</span>        }<a name="line.1084"></a>
-<span class="sourceLineNo">1085</span>        if (batchContainsDelete) {<a name="line.1085"></a>
-<span class="sourceLineNo">1086</span>          regionServer.metricsRegionServer.updateDeleteBatch(after - before);<a name="line.1086"></a>
-<span class="sourceLineNo">1087</span>        }<a name="line.1087"></a>
-<span class="sourceLineNo">1088</span>      }<a name="line.1088"></a>
-<span class="sourceLineNo">1089</span>    }<a name="line.1089"></a>
-<span class="sourceLineNo">1090</span>  }<a name="line.1090"></a>
-<span class="sourceLineNo">1091</span><a name="line.1091"></a>
-<span class="sourceLineNo">1092</span>  private void closeAllScanners() {<a name="line.1092"></a>
-<span class="sourceLineNo">1093</span>    // Close any outstanding scanners. Means they'll get an UnknownScanner<a name="line.1093"></a>
-<span class="sourceLineNo">1094</span>    // exception next time they come in.<a name="line.1094"></a>
-<span class="sourceLineNo">1095</span>    for (Map.Entry&lt;String, RegionScannerHolder&gt; e : scanners.entrySet()) {<a name="line.1095"></a>
-<span class="sourceLineNo">1096</span>      try {<a name="line.1096"></a>
-<span class="sourceLineNo">1097</span>        e.getValue().s.close();<a name="line.1097"></a>
-<span class="sourceLineNo">1098</span>      } catch (IOException ioe) {<a name="line.1098"></a>
-<span class="sourceLineNo">1099</span>        LOG.warn("Closing scanner " + e.getKey(), ioe);<a name="line.1099"></a>
-<span class="sourceLineNo">1100</span>      }<a name="line.1100"></a>
-<span class="sourceLineNo">1101</span>    }<a name="line.1101"></a>
-<span class="sourceLineNo">1102</span>  }<a name="line.1102"></a>
-<span class="sourceLineNo">1103</span><a name="line.1103"></a>
-<span class="sourceLineNo">1104</span>  // Exposed for testing<a name="line.1104"></a>
-<span class="sourceLineNo">1105</span>  interface LogDelegate {<a name="line.1105"></a>
-<span class="sourceLineNo">1106</span>    void logBatchWarning(String firstRegionName, int sum, int rowSizeWarnThreshold);<a name="line.1106"></a>
-<span class="sourceLineNo">1107</span>  }<a name=

<TRUNCATED>

[20/32] hbase-site git commit: Published site at .

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/29b27596/devapidocs/org/apache/hadoop/hbase/replication/regionserver/package-tree.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/replication/regionserver/package-tree.html b/devapidocs/org/apache/hadoop/hbase/replication/regionserver/package-tree.html
index 5585e25..e7733f9 100644
--- a/devapidocs/org/apache/hadoop/hbase/replication/regionserver/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/replication/regionserver/package-tree.html
@@ -197,8 +197,8 @@
 <ul>
 <li type="circle">java.lang.<a href="http://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="http://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="http://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>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/29b27596/devapidocs/org/apache/hadoop/hbase/rest/model/package-tree.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/rest/model/package-tree.html b/devapidocs/org/apache/hadoop/hbase/rest/model/package-tree.html
index dc2f127..91776e4 100644
--- a/devapidocs/org/apache/hadoop/hbase/rest/model/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/rest/model/package-tree.html
@@ -110,8 +110,8 @@
 <ul>
 <li type="circle">java.lang.<a href="http://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="http://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="http://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
 <ul>
-<li type="circle">org.apache.hadoop.hbase.rest.model.<a href="../../../../../../org/apache/hadoop/hbase/rest/model/ScannerModel.FilterModel.ByteArrayComparableModel.ComparatorType.html" title="enum in org.apache.hadoop.hbase.rest.model"><span class="typeNameLink">ScannerModel.FilterModel.ByteArrayComparableModel.ComparatorType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.rest.model.<a href="../../../../../../org/apache/hadoop/hbase/rest/model/ScannerModel.FilterModel.FilterType.html" title="enum in org.apache.hadoop.hbase.rest.model"><span class="typeNameLink">ScannerModel.FilterModel.FilterType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.rest.model.<a href="../../../../../../org/apache/hadoop/hbase/rest/model/ScannerModel.FilterModel.ByteArrayComparableModel.ComparatorType.html" title="enum in org.apache.hadoop.hbase.rest.model"><span class="typeNameLink">ScannerModel.FilterModel.ByteArrayComparableModel.ComparatorType</span></a></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/29b27596/devapidocs/org/apache/hadoop/hbase/security/access/package-tree.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/security/access/package-tree.html b/devapidocs/org/apache/hadoop/hbase/security/access/package-tree.html
index 33cc3a8..0d94484 100644
--- a/devapidocs/org/apache/hadoop/hbase/security/access/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/security/access/package-tree.html
@@ -136,8 +136,8 @@
 <ul>
 <li type="circle">java.lang.<a href="http://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="http://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="http://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
 <ul>
-<li type="circle">org.apache.hadoop.hbase.security.access.<a href="../../../../../../org/apache/hadoop/hbase/security/access/AccessControlFilter.Strategy.html" title="enum in org.apache.hadoop.hbase.security.access"><span class="typeNameLink">AccessControlFilter.Strategy</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.security.access.<a href="../../../../../../org/apache/hadoop/hbase/security/access/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>
 </ul>
 </li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/29b27596/devapidocs/org/apache/hadoop/hbase/security/package-tree.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/security/package-tree.html b/devapidocs/org/apache/hadoop/hbase/security/package-tree.html
index d776b93..c4d3f6e 100644
--- a/devapidocs/org/apache/hadoop/hbase/security/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/security/package-tree.html
@@ -192,8 +192,8 @@
 <li type="circle">java.lang.<a href="http://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="http://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="http://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>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/29b27596/devapidocs/org/apache/hadoop/hbase/thrift/package-tree.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/thrift/package-tree.html b/devapidocs/org/apache/hadoop/hbase/thrift/package-tree.html
index fc3b716..570c4fa 100644
--- a/devapidocs/org/apache/hadoop/hbase/thrift/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/thrift/package-tree.html
@@ -198,8 +198,8 @@
 <ul>
 <li type="circle">java.lang.<a href="http://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="http://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="http://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/ThriftServerRunner.ImplType.html" title="enum in org.apache.hadoop.hbase.thrift"><span class="typeNameLink">ThriftServerRunner.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/ThriftServerRunner.ImplType.html" title="enum in org.apache.hadoop.hbase.thrift"><span class="typeNameLink">ThriftServerRunner.ImplType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.thrift.<a href="../../../../../org/apache/hadoop/hbase/thrift/MetricsThriftServerSourceFactoryImpl.FactoryStorage.html" title="enum in org.apache.hadoop.hbase.thrift"><span class="typeNameLink">MetricsThriftServerSourceFactoryImpl.FactoryStorage</span></a></li>
 </ul>
 </li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/29b27596/devapidocs/org/apache/hadoop/hbase/util/package-tree.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/util/package-tree.html b/devapidocs/org/apache/hadoop/hbase/util/package-tree.html
index 4a5ff2e..3dbf77a 100644
--- a/devapidocs/org/apache/hadoop/hbase/util/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/util/package-tree.html
@@ -537,14 +537,14 @@
 <ul>
 <li type="circle">java.lang.<a href="http://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="http://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="http://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/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.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/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/PoolMap.PoolType.html" title="enum in org.apache.hadoop.hbase.util"><span class="typeNameLink">PoolMap.PoolType</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/Bytes.LexicographicalComparerHolder.PureJavaComparer.html" title="enum in org.apache.hadoop.hbase.util"><span class="typeNameLink">Bytes.LexicographicalComparerHolder.PureJavaComparer</span></a> (implements org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/Bytes.Comparer.html" title="interface in org.apache.hadoop.hbase.util">Bytes.Comparer</a>&lt;T&gt;)</li>
 <li type="circle">org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/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/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/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/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/ChecksumType.html" title="enum in org.apache.hadoop.hbase.util"><span class="typeNameLink">ChecksumType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/Bytes.LexicographicalComparerHolder.UnsafeComparer.html" title="enum in org.apache.hadoop.hbase.util"><span class="typeNameLink">Bytes.LexicographicalComparerHolder.UnsafeComparer</span></a> (implements org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/Bytes.Comparer.html" title="interface in org.apache.hadoop.hbase.util">Bytes.Comparer</a>&lt;T&gt;)</li>
+<li type="circle">org.apache.hadoop.hbase.util.<a href="../../../../../org/apache/hadoop/hbase/util/PoolMap.PoolType.html" title="enum in org.apache.hadoop.hbase.util"><span class="typeNameLink">PoolMap.PoolType</span></a></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/29b27596/devapidocs/org/apache/hadoop/hbase/wal/package-tree.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/wal/package-tree.html b/devapidocs/org/apache/hadoop/hbase/wal/package-tree.html
index f71ca25..2af2b6e 100644
--- a/devapidocs/org/apache/hadoop/hbase/wal/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/wal/package-tree.html
@@ -175,8 +175,8 @@
 <ul>
 <li type="circle">java.lang.<a href="http://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="http://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="http://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
 <ul>
-<li type="circle">org.apache.hadoop.hbase.wal.<a href="../../../../../org/apache/hadoop/hbase/wal/RegionGroupingProvider.Strategies.html" title="enum in org.apache.hadoop.hbase.wal"><span class="typeNameLink">RegionGroupingProvider.Strategies</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.wal.<a href="../../../../../org/apache/hadoop/hbase/wal/WALFactory.Providers.html" title="enum in org.apache.hadoop.hbase.wal"><span class="typeNameLink">WALFactory.Providers</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.wal.<a href="../../../../../org/apache/hadoop/hbase/wal/RegionGroupingProvider.Strategies.html" title="enum in org.apache.hadoop.hbase.wal"><span class="typeNameLink">RegionGroupingProvider.Strategies</span></a></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/29b27596/devapidocs/org/apache/hadoop/metrics2/class-use/MetricHistogram.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/metrics2/class-use/MetricHistogram.html b/devapidocs/org/apache/hadoop/metrics2/class-use/MetricHistogram.html
index 9fbe04d..311f19b 100644
--- a/devapidocs/org/apache/hadoop/metrics2/class-use/MetricHistogram.html
+++ b/devapidocs/org/apache/hadoop/metrics2/class-use/MetricHistogram.html
@@ -286,69 +286,85 @@ service.</div>
 <td class="colLast"><span class="typeNameLabel">MetricsRegionServerSourceImpl.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.html#appendHisto">appendHisto</a></span></code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
+<td class="colFirst"><code>(package private) <a href="../../../../../org/apache/hadoop/metrics2/MetricHistogram.html" title="interface in org.apache.hadoop.metrics2">MetricHistogram</a></code></td>
+<td class="colLast"><span class="typeNameLabel">MetricsTableLatenciesImpl.TableHistograms.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableLatenciesImpl.TableHistograms.html#appendTimeHisto">appendTimeHisto</a></span></code>&nbsp;</td>
+</tr>
+<tr class="altColor">
 <td class="colFirst"><code>private <a href="../../../../../org/apache/hadoop/metrics2/MetricHistogram.html" title="interface in org.apache.hadoop.metrics2">MetricHistogram</a></code></td>
 <td class="colLast"><span class="typeNameLabel">MetricsHeapMemoryManagerSourceImpl.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsHeapMemoryManagerSourceImpl.html#blockedFlushHistogram">blockedFlushHistogram</a></span></code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>private <a href="../../../../../org/apache/hadoop/metrics2/MetricHistogram.html" title="interface in org.apache.hadoop.metrics2">MetricHistogram</a></code></td>
 <td class="colLast"><span class="typeNameLabel">MetricsRegionServerSourceImpl.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.html#checkAndDeleteHisto">checkAndDeleteHisto</a></span></code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>private <a href="../../../../../org/apache/hadoop/metrics2/MetricHistogram.html" title="interface in org.apache.hadoop.metrics2">MetricHistogram</a></code></td>
 <td class="colLast"><span class="typeNameLabel">MetricsRegionServerSourceImpl.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.html#checkAndPutHisto">checkAndPutHisto</a></span></code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>private <a href="../../../../../org/apache/hadoop/metrics2/MetricHistogram.html" title="interface in org.apache.hadoop.metrics2">MetricHistogram</a></code></td>
 <td class="colLast"><span class="typeNameLabel">MetricsRegionServerSourceImpl.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.html#compactionInputFileCountHisto">compactionInputFileCountHisto</a></span></code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>private <a href="../../../../../org/apache/hadoop/metrics2/MetricHistogram.html" title="interface in org.apache.hadoop.metrics2">MetricHistogram</a></code></td>
 <td class="colLast"><span class="typeNameLabel">MetricsRegionServerSourceImpl.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.html#compactionInputSizeHisto">compactionInputSizeHisto</a></span></code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>private <a href="../../../../../org/apache/hadoop/metrics2/MetricHistogram.html" title="interface in org.apache.hadoop.metrics2">MetricHistogram</a></code></td>
 <td class="colLast"><span class="typeNameLabel">MetricsRegionServerSourceImpl.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.html#compactionOutputFileCountHisto">compactionOutputFileCountHisto</a></span></code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>private <a href="../../../../../org/apache/hadoop/metrics2/MetricHistogram.html" title="interface in org.apache.hadoop.metrics2">MetricHistogram</a></code></td>
 <td class="colLast"><span class="typeNameLabel">MetricsRegionServerSourceImpl.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.html#compactionOutputSizeHisto">compactionOutputSizeHisto</a></span></code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>private <a href="../../../../../org/apache/hadoop/metrics2/MetricHistogram.html" title="interface in org.apache.hadoop.metrics2">MetricHistogram</a></code></td>
 <td class="colLast"><span class="typeNameLabel">MetricsRegionServerSourceImpl.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.html#compactionTimeHisto">compactionTimeHisto</a></span></code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>private <a href="../../../../../org/apache/hadoop/metrics2/MetricHistogram.html" title="interface in org.apache.hadoop.metrics2">MetricHistogram</a></code></td>
 <td class="colLast"><span class="typeNameLabel">MetricsHeapMemoryManagerSourceImpl.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsHeapMemoryManagerSourceImpl.html#decBlockCacheSizeHistogram">decBlockCacheSizeHistogram</a></span></code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>private <a href="../../../../../org/apache/hadoop/metrics2/MetricHistogram.html" title="interface in org.apache.hadoop.metrics2">MetricHistogram</a></code></td>
 <td class="colLast"><span class="typeNameLabel">MetricsHeapMemoryManagerSourceImpl.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsHeapMemoryManagerSourceImpl.html#decMemStoreSizeHistogram">decMemStoreSizeHistogram</a></span></code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>private <a href="../../../../../org/apache/hadoop/metrics2/MetricHistogram.html" title="interface in org.apache.hadoop.metrics2">MetricHistogram</a></code></td>
 <td class="colLast"><span class="typeNameLabel">MetricsRegionServerSourceImpl.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.html#deleteBatchHisto">deleteBatchHisto</a></span></code>&nbsp;</td>
 </tr>
+<tr class="rowColor">
+<td class="colFirst"><code>(package private) <a href="../../../../../org/apache/hadoop/metrics2/MetricHistogram.html" title="interface in org.apache.hadoop.metrics2">MetricHistogram</a></code></td>
+<td class="colLast"><span class="typeNameLabel">MetricsTableLatenciesImpl.TableHistograms.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableLatenciesImpl.TableHistograms.html#deleteBatchTimeHisto">deleteBatchTimeHisto</a></span></code>&nbsp;</td>
+</tr>
 <tr class="altColor">
 <td class="colFirst"><code>private <a href="../../../../../org/apache/hadoop/metrics2/MetricHistogram.html" title="interface in org.apache.hadoop.metrics2">MetricHistogram</a></code></td>
 <td class="colLast"><span class="typeNameLabel">MetricsRegionServerSourceImpl.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.html#deleteHisto">deleteHisto</a></span></code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
+<td class="colFirst"><code>(package private) <a href="../../../../../org/apache/hadoop/metrics2/MetricHistogram.html" title="interface in org.apache.hadoop.metrics2">MetricHistogram</a></code></td>
+<td class="colLast"><span class="typeNameLabel">MetricsTableLatenciesImpl.TableHistograms.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableLatenciesImpl.TableHistograms.html#deleteTimeHisto">deleteTimeHisto</a></span></code>&nbsp;</td>
+</tr>
+<tr class="altColor">
 <td class="colFirst"><code>private <a href="../../../../../org/apache/hadoop/metrics2/MetricHistogram.html" title="interface in org.apache.hadoop.metrics2">MetricHistogram</a></code></td>
 <td class="colLast"><span class="typeNameLabel">MetricsRegionServerSourceImpl.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.html#flushMemstoreSizeHisto">flushMemstoreSizeHisto</a></span></code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>private <a href="../../../../../org/apache/hadoop/metrics2/MetricHistogram.html" title="interface in org.apache.hadoop.metrics2">MetricHistogram</a></code></td>
 <td class="colLast"><span class="typeNameLabel">MetricsRegionServerSourceImpl.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.html#flushOutputSizeHisto">flushOutputSizeHisto</a></span></code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>private <a href="../../../../../org/apache/hadoop/metrics2/MetricHistogram.html" title="interface in org.apache.hadoop.metrics2">MetricHistogram</a></code></td>
 <td class="colLast"><span class="typeNameLabel">MetricsRegionServerSourceImpl.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.html#flushTimeHisto">flushTimeHisto</a></span></code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>private <a href="../../../../../org/apache/hadoop/metrics2/MetricHistogram.html" title="interface in org.apache.hadoop.metrics2">MetricHistogram</a></code></td>
 <td class="colLast"><span class="typeNameLabel">MetricsRegionServerSourceImpl.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.html#getHisto">getHisto</a></span></code>&nbsp;</td>
 </tr>
+<tr class="altColor">
+<td class="colFirst"><code>(package private) <a href="../../../../../org/apache/hadoop/metrics2/MetricHistogram.html" title="interface in org.apache.hadoop.metrics2">MetricHistogram</a></code></td>
+<td class="colLast"><span class="typeNameLabel">MetricsTableLatenciesImpl.TableHistograms.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableLatenciesImpl.TableHistograms.html#getTimeHisto">getTimeHisto</a></span></code>&nbsp;</td>
+</tr>
 <tr class="rowColor">
 <td class="colFirst"><code>private <a href="../../../../../org/apache/hadoop/metrics2/MetricHistogram.html" title="interface in org.apache.hadoop.metrics2">MetricHistogram</a></code></td>
 <td class="colLast"><span class="typeNameLabel">MetricsHeapMemoryManagerSourceImpl.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsHeapMemoryManagerSourceImpl.html#incBlockCacheSizeHistogram">incBlockCacheSizeHistogram</a></span></code>&nbsp;</td>
@@ -362,58 +378,78 @@ service.</div>
 <td class="colLast"><span class="typeNameLabel">MetricsRegionServerSourceImpl.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.html#incrementHisto">incrementHisto</a></span></code>&nbsp;</td>
 </tr>
 <tr class="altColor">
+<td class="colFirst"><code>(package private) <a href="../../../../../org/apache/hadoop/metrics2/MetricHistogram.html" title="interface in org.apache.hadoop.metrics2">MetricHistogram</a></code></td>
+<td class="colLast"><span class="typeNameLabel">MetricsTableLatenciesImpl.TableHistograms.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableLatenciesImpl.TableHistograms.html#incrementTimeHisto">incrementTimeHisto</a></span></code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
 <td class="colFirst"><code>private <a href="../../../../../org/apache/hadoop/metrics2/MetricHistogram.html" title="interface in org.apache.hadoop.metrics2">MetricHistogram</a></code></td>
 <td class="colLast"><span class="typeNameLabel">MetricsRegionServerSourceImpl.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.html#majorCompactionInputFileCountHisto">majorCompactionInputFileCountHisto</a></span></code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>private <a href="../../../../../org/apache/hadoop/metrics2/MetricHistogram.html" title="interface in org.apache.hadoop.metrics2">MetricHistogram</a></code></td>
 <td class="colLast"><span class="typeNameLabel">MetricsRegionServerSourceImpl.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.html#majorCompactionInputSizeHisto">majorCompactionInputSizeHisto</a></span></code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>private <a href="../../../../../org/apache/hadoop/metrics2/MetricHistogram.html" title="interface in org.apache.hadoop.metrics2">MetricHistogram</a></code></td>
 <td class="colLast"><span class="typeNameLabel">MetricsRegionServerSourceImpl.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.html#majorCompactionOutputFileCountHisto">majorCompactionOutputFileCountHisto</a></span></code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>private <a href="../../../../../org/apache/hadoop/metrics2/MetricHistogram.html" title="interface in org.apache.hadoop.metrics2">MetricHistogram</a></code></td>
 <td class="colLast"><span class="typeNameLabel">MetricsRegionServerSourceImpl.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.html#majorCompactionOutputSizeHisto">majorCompactionOutputSizeHisto</a></span></code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>private <a href="../../../../../org/apache/hadoop/metrics2/MetricHistogram.html" title="interface in org.apache.hadoop.metrics2">MetricHistogram</a></code></td>
 <td class="colLast"><span class="typeNameLabel">MetricsRegionServerSourceImpl.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.html#majorCompactionTimeHisto">majorCompactionTimeHisto</a></span></code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>private <a href="../../../../../org/apache/hadoop/metrics2/MetricHistogram.html" title="interface in org.apache.hadoop.metrics2">MetricHistogram</a></code></td>
 <td class="colLast"><span class="typeNameLabel">MetricsRegionServerSourceImpl.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.html#pausesWithGc">pausesWithGc</a></span></code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>private <a href="../../../../../org/apache/hadoop/metrics2/MetricHistogram.html" title="interface in org.apache.hadoop.metrics2">MetricHistogram</a></code></td>
 <td class="colLast"><span class="typeNameLabel">MetricsRegionServerSourceImpl.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.html#pausesWithoutGc">pausesWithoutGc</a></span></code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>private <a href="../../../../../org/apache/hadoop/metrics2/MetricHistogram.html" title="interface in org.apache.hadoop.metrics2">MetricHistogram</a></code></td>
 <td class="colLast"><span class="typeNameLabel">MetricsRegionServerSourceImpl.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.html#putBatchHisto">putBatchHisto</a></span></code>&nbsp;</td>
 </tr>
+<tr class="rowColor">
+<td class="colFirst"><code>(package private) <a href="../../../../../org/apache/hadoop/metrics2/MetricHistogram.html" title="interface in org.apache.hadoop.metrics2">MetricHistogram</a></code></td>
+<td class="colLast"><span class="typeNameLabel">MetricsTableLatenciesImpl.TableHistograms.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableLatenciesImpl.TableHistograms.html#putBatchTimeHisto">putBatchTimeHisto</a></span></code>&nbsp;</td>
+</tr>
 <tr class="altColor">
 <td class="colFirst"><code>private <a href="../../../../../org/apache/hadoop/metrics2/MetricHistogram.html" title="interface in org.apache.hadoop.metrics2">MetricHistogram</a></code></td>
 <td class="colLast"><span class="typeNameLabel">MetricsRegionServerSourceImpl.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.html#putHisto">putHisto</a></span></code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
+<td class="colFirst"><code>(package private) <a href="../../../../../org/apache/hadoop/metrics2/MetricHistogram.html" title="interface in org.apache.hadoop.metrics2">MetricHistogram</a></code></td>
+<td class="colLast"><span class="typeNameLabel">MetricsTableLatenciesImpl.TableHistograms.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableLatenciesImpl.TableHistograms.html#putTimeHisto">putTimeHisto</a></span></code>&nbsp;</td>
+</tr>
+<tr class="altColor">
 <td class="colFirst"><code>private <a href="../../../../../org/apache/hadoop/metrics2/MetricHistogram.html" title="interface in org.apache.hadoop.metrics2">MetricHistogram</a></code></td>
 <td class="colLast"><span class="typeNameLabel">MetricsRegionServerSourceImpl.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.html#replayHisto">replayHisto</a></span></code>&nbsp;</td>
 </tr>
+<tr class="rowColor">
+<td class="colFirst"><code>(package private) <a href="../../../../../org/apache/hadoop/metrics2/MetricHistogram.html" title="interface in org.apache.hadoop.metrics2">MetricHistogram</a></code></td>
+<td class="colLast"><span class="typeNameLabel">MetricsTableLatenciesImpl.TableHistograms.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableLatenciesImpl.TableHistograms.html#scanSizeHisto">scanSizeHisto</a></span></code>&nbsp;</td>
+</tr>
 <tr class="altColor">
 <td class="colFirst"><code>private <a href="../../../../../org/apache/hadoop/metrics2/MetricHistogram.html" title="interface in org.apache.hadoop.metrics2">MetricHistogram</a></code></td>
 <td class="colLast"><span class="typeNameLabel">MetricsRegionServerSourceImpl.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.html#scanSizeHisto">scanSizeHisto</a></span></code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
+<td class="colFirst"><code>(package private) <a href="../../../../../org/apache/hadoop/metrics2/MetricHistogram.html" title="interface in org.apache.hadoop.metrics2">MetricHistogram</a></code></td>
+<td class="colLast"><span class="typeNameLabel">MetricsTableLatenciesImpl.TableHistograms.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableLatenciesImpl.TableHistograms.html#scanTimeHisto">scanTimeHisto</a></span></code>&nbsp;</td>
+</tr>
+<tr class="altColor">
 <td class="colFirst"><code>private <a href="../../../../../org/apache/hadoop/metrics2/MetricHistogram.html" title="interface in org.apache.hadoop.metrics2">MetricHistogram</a></code></td>
 <td class="colLast"><span class="typeNameLabel">MetricsRegionServerSourceImpl.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.html#scanTimeHisto">scanTimeHisto</a></span></code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>private <a href="../../../../../org/apache/hadoop/metrics2/MetricHistogram.html" title="interface in org.apache.hadoop.metrics2">MetricHistogram</a></code></td>
 <td class="colLast"><span class="typeNameLabel">MetricsRegionServerSourceImpl.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.html#splitTimeHisto">splitTimeHisto</a></span></code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>private <a href="../../../../../org/apache/hadoop/metrics2/MetricHistogram.html" title="interface in org.apache.hadoop.metrics2">MetricHistogram</a></code></td>
 <td class="colLast"><span class="typeNameLabel">MetricsHeapMemoryManagerSourceImpl.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsHeapMemoryManagerSourceImpl.html#unblockedFlushHistogram">unblockedFlushHistogram</a></span></code>&nbsp;</td>
 </tr>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/29b27596/devapidocs/org/apache/hadoop/metrics2/lib/class-use/DynamicMetricsRegistry.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/metrics2/lib/class-use/DynamicMetricsRegistry.html b/devapidocs/org/apache/hadoop/metrics2/lib/class-use/DynamicMetricsRegistry.html
index 87565fd..34af1ef 100644
--- a/devapidocs/org/apache/hadoop/metrics2/lib/class-use/DynamicMetricsRegistry.html
+++ b/devapidocs/org/apache/hadoop/metrics2/lib/class-use/DynamicMetricsRegistry.html
@@ -160,6 +160,18 @@
 </tr>
 </tbody>
 </table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing constructors, and an explanation">
+<caption><span>Constructors in <a href="../../../../../../org/apache/hadoop/hbase/regionserver/package-summary.html">org.apache.hadoop.hbase.regionserver</a> with parameters of type <a href="../../../../../../org/apache/hadoop/metrics2/lib/DynamicMetricsRegistry.html" title="class in org.apache.hadoop.metrics2.lib">DynamicMetricsRegistry</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableLatenciesImpl.TableHistograms.html#TableHistograms-org.apache.hadoop.metrics2.lib.DynamicMetricsRegistry-org.apache.hadoop.hbase.TableName-">TableHistograms</a></span>(<a href="../../../../../../org/apache/hadoop/metrics2/lib/DynamicMetricsRegistry.html" title="class in org.apache.hadoop.metrics2.lib">DynamicMetricsRegistry</a>&nbsp;registry,
+               <a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tn)</code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
 </li>
 <li class="blockList"><a name="org.apache.hadoop.metrics2.lib">
 <!--   -->

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/29b27596/devapidocs/overview-tree.html
----------------------------------------------------------------------
diff --git a/devapidocs/overview-tree.html b/devapidocs/overview-tree.html
index 3310b3a..9f23f4b 100644
--- a/devapidocs/overview-tree.html
+++ b/devapidocs/overview-tree.html
@@ -742,6 +742,7 @@
 <li type="circle">org.apache.hadoop.hbase.rest.<a href="org/apache/hadoop/hbase/rest/MetricsRESTSourceImpl.html" title="class in org.apache.hadoop.hbase.rest"><span class="typeNameLink">MetricsRESTSourceImpl</span></a> (implements org.apache.hadoop.hbase.rest.<a href="org/apache/hadoop/hbase/rest/MetricsRESTSource.html" title="interface in org.apache.hadoop.hbase.rest">MetricsRESTSource</a>)</li>
 <li type="circle">org.apache.hadoop.hbase.master.<a href="org/apache/hadoop/hbase/master/MetricsSnapshotSourceImpl.html" title="class in org.apache.hadoop.hbase.master"><span class="typeNameLink">MetricsSnapshotSourceImpl</span></a> (implements org.apache.hadoop.hbase.master.<a href="org/apache/hadoop/hbase/master/MetricsSnapshotSource.html" title="interface in org.apache.hadoop.hbase.master">MetricsSnapshotSource</a>)</li>
 <li type="circle">org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MetricsTableAggregateSourceImpl.html" title="class in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">MetricsTableAggregateSourceImpl</span></a> (implements org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MetricsTableAggregateSource.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsTableAggregateSource</a>)</li>
+<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MetricsTableLatenciesImpl.html" title="class in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">MetricsTableLatenciesImpl</span></a> (implements org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MetricsTableLatencies.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsTableLatencies</a>)</li>
 <li type="circle">org.apache.hadoop.hbase.regionserver.wal.<a href="org/apache/hadoop/hbase/regionserver/wal/MetricsWALSourceImpl.html" title="class in org.apache.hadoop.hbase.regionserver.wal"><span class="typeNameLink">MetricsWALSourceImpl</span></a> (implements org.apache.hadoop.hbase.regionserver.wal.<a href="org/apache/hadoop/hbase/regionserver/wal/MetricsWALSource.html" title="interface in org.apache.hadoop.hbase.regionserver.wal">MetricsWALSource</a>)</li>
 <li type="circle">org.apache.hadoop.hbase.zookeeper.<a href="org/apache/hadoop/hbase/zookeeper/MetricsZooKeeperSourceImpl.html" title="class in org.apache.hadoop.hbase.zookeeper"><span class="typeNameLink">MetricsZooKeeperSourceImpl</span></a> (implements org.apache.hadoop.hbase.zookeeper.<a href="org/apache/hadoop/hbase/zookeeper/MetricsZooKeeperSource.html" title="interface in org.apache.hadoop.hbase.zookeeper">MetricsZooKeeperSource</a>)</li>
 </ul>
@@ -1649,7 +1650,7 @@
 <li type="circle">javax.servlet.http.HttpServlet (implements java.io.<a href="http://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.http.conf.<a href="org/apache/hadoop/hbase/http/conf/ConfServlet.html" title="class in org.apache.hadoop.hbase.http.conf"><span class="typeNameLink">ConfServlet</span></a></li>
-<li type="circle">org.eclipse.jetty.servlet.DefaultServlet (implements org.eclipse.jetty.util.resource.ResourceFactory, org.eclipse.jetty.server.ResourceService.WelcomeFactory)
+<li type="circle">org.eclipse.jetty.servlet.DefaultServlet (implements org.eclipse.jetty.util.resource.ResourceFactory)
 <ul>
 <li type="circle">org.apache.hadoop.hbase.http.<a href="org/apache/hadoop/hbase/http/AdminAuthorizedServlet.html" title="class in org.apache.hadoop.hbase.http"><span class="typeNameLink">AdminAuthorizedServlet</span></a></li>
 </ul>
@@ -2268,6 +2269,7 @@
 <li type="circle">org.apache.hadoop.hbase.master.<a href="org/apache/hadoop/hbase/master/MetricsSnapshot.html" title="class in org.apache.hadoop.hbase.master"><span class="typeNameLink">MetricsSnapshot</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.replication.regionserver.<a href="org/apache/hadoop/hbase/replication/regionserver/MetricsSource.html" title="class in org.apache.hadoop.hbase.replication.regionserver"><span class="typeNameLink">MetricsSource</span></a> (implements org.apache.hadoop.hbase.metrics.<a href="org/apache/hadoop/hbase/metrics/BaseSource.html" title="interface in org.apache.hadoop.hbase.metrics">BaseSource</a>)</li>
 <li type="circle">org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MetricsTable.html" title="class in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">MetricsTable</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MetricsTableLatenciesImpl.TableHistograms.html" title="class in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">MetricsTableLatenciesImpl.TableHistograms</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MetricsTableSourceImpl.html" title="class in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">MetricsTableSourceImpl</span></a> (implements org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MetricsTableSource.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsTableSource</a>)</li>
 <li type="circle">org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregateImpl.html" title="class in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">MetricsTableWrapperAggregateImpl</span></a> (implements java.io.<a href="http://docs.oracle.com/javase/8/docs/api/java/io/Closeable.html?is-external=true" title="class or interface in java.io">Closeable</a>, org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregate.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsTableWrapperAggregate</a>)</li>
 <li type="circle">org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregateImpl.MetricsTableValues.html" title="class in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">MetricsTableWrapperAggregateImpl.MetricsTableValues</span></a></li>
@@ -2940,6 +2942,7 @@
 <li type="circle">org.apache.hadoop.hbase.regionserver.snapshot.<a href="org/apache/hadoop/hbase/regionserver/snapshot/RegionServerSnapshotManager.SnapshotSubprocedureBuilder.html" title="class in org.apache.hadoop.hbase.regionserver.snapshot"><span class="typeNameLink">RegionServerSnapshotManager.SnapshotSubprocedureBuilder</span></a> (implements org.apache.hadoop.hbase.procedure.<a href="org/apache/hadoop/hbase/procedure/SubprocedureFactory.html" title="interface in org.apache.hadoop.hbase.procedure">SubprocedureFactory</a>)</li>
 <li type="circle">org.apache.hadoop.hbase.regionserver.snapshot.<a href="org/apache/hadoop/hbase/regionserver/snapshot/RegionServerSnapshotManager.SnapshotSubprocedurePool.html" title="class in org.apache.hadoop.hbase.regionserver.snapshot"><span class="typeNameLink">RegionServerSnapshotManager.SnapshotSubprocedurePool</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.quotas.<a href="org/apache/hadoop/hbase/quotas/RegionServerSpaceQuotaManager.html" title="class in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">RegionServerSpaceQuotaManager</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/RegionServerTableMetrics.html" title="class in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">RegionServerTableMetrics</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/RegionServicesForStores.html" title="class in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">RegionServicesForStores</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.mapreduce.<a href="org/apache/hadoop/hbase/mapreduce/RegionSizeCalculator.html" title="class in org.apache.hadoop.hbase.mapreduce"><span class="typeNameLink">RegionSizeCalculator</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.util.<a href="org/apache/hadoop/hbase/util/RegionSplitCalculator.html" title="class in org.apache.hadoop.hbase.util"><span class="typeNameLink">RegionSplitCalculator</span></a>&lt;R&gt;</li>
@@ -4779,6 +4782,7 @@
 <li type="circle">org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MetricsRegionWrapper.html" title="interface in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">MetricsRegionWrapper</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.replication.regionserver.<a href="org/apache/hadoop/hbase/replication/regionserver/MetricsReplicationSinkSource.html" title="interface in org.apache.hadoop.hbase.replication.regionserver"><span class="typeNameLink">MetricsReplicationSinkSource</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.replication.regionserver.<a href="org/apache/hadoop/hbase/replication/regionserver/MetricsReplicationSourceFactory.html" title="interface in org.apache.hadoop.hbase.replication.regionserver"><span class="typeNameLink">MetricsReplicationSourceFactory</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MetricsTableLatencies.html" title="interface in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">MetricsTableLatencies</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregate.html" title="interface in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">MetricsTableWrapperAggregate</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.thrift.<a href="org/apache/hadoop/hbase/thrift/MetricsThriftServerSourceFactory.html" title="interface in org.apache.hadoop.hbase.thrift"><span class="typeNameLink">MetricsThriftServerSourceFactory</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.util.<a href="org/apache/hadoop/hbase/util/ModifyRegionUtils.RegionEditTask.html" title="interface in org.apache.hadoop.hbase.util"><span class="typeNameLink">ModifyRegionUtils.RegionEditTask</span></a></li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/29b27596/devapidocs/src-html/org/apache/hadoop/hbase/Version.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/Version.html b/devapidocs/src-html/org/apache/hadoop/hbase/Version.html
index cd726db..96a64a4 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/Version.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/Version.html
@@ -16,11 +16,11 @@
 <span class="sourceLineNo">008</span>@InterfaceAudience.Private<a name="line.8"></a>
 <span class="sourceLineNo">009</span>public class Version {<a name="line.9"></a>
 <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 = "2e8bd0036dbdf3a99786e5531495d8d4cb51b86c";<a name="line.11"></a>
+<span class="sourceLineNo">011</span>  public static final String revision = "d6a4a3dc331129e949faaaaa134107cb71172928";<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 Dec  1 14:42:20 UTC 2017";<a name="line.13"></a>
+<span class="sourceLineNo">013</span>  public static final String date = "Sat Dec  2 14:42:12 UTC 2017";<a name="line.13"></a>
 <span class="sourceLineNo">014</span>  public static final String url = "git://asf920.gq1.ygridcore.net/home/jenkins/jenkins-slave/workspace/hbase_generate_website/hbase";<a name="line.14"></a>
-<span class="sourceLineNo">015</span>  public static final String srcChecksum = "0be79d5711fa88be92020f5e7f116383";<a name="line.15"></a>
+<span class="sourceLineNo">015</span>  public static final String srcChecksum = "f5ac229014b3452e383c1cb180577e57";<a name="line.15"></a>
 <span class="sourceLineNo">016</span>}<a name="line.16"></a>
 
 


[08/32] hbase-site git commit: Published site at .

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/29b27596/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.ScannerListener.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.ScannerListener.html b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.ScannerListener.html
index b7f041a..c0ea82b 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.ScannerListener.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.ScannerListener.html
@@ -668,2792 +668,2806 @@
 <span class="sourceLineNo">660</span>    }<a name="line.660"></a>
 <span class="sourceLineNo">661</span>    if (regionServer.metricsRegionServer != null) {<a name="line.661"></a>
 <span class="sourceLineNo">662</span>      regionServer.metricsRegionServer.updateAppend(<a name="line.662"></a>
-<span class="sourceLineNo">663</span>        EnvironmentEdgeManager.currentTime() - before);<a name="line.663"></a>
-<span class="sourceLineNo">664</span>    }<a name="line.664"></a>
-<span class="sourceLineNo">665</span>    return r;<a name="line.665"></a>
-<span class="sourceLineNo">666</span>  }<a name="line.666"></a>
-<span class="sourceLineNo">667</span><a name="line.667"></a>
-<span class="sourceLineNo">668</span>  /**<a name="line.668"></a>
-<span class="sourceLineNo">669</span>   * Execute an increment mutation.<a name="line.669"></a>
-<span class="sourceLineNo">670</span>   *<a name="line.670"></a>
-<span class="sourceLineNo">671</span>   * @param region<a name="line.671"></a>
-<span class="sourceLineNo">672</span>   * @param mutation<a name="line.672"></a>
-<span class="sourceLineNo">673</span>   * @return the Result<a name="line.673"></a>
-<span class="sourceLineNo">674</span>   * @throws IOException<a name="line.674"></a>
-<span class="sourceLineNo">675</span>   */<a name="line.675"></a>
-<span class="sourceLineNo">676</span>  private Result increment(final HRegion region, final OperationQuota quota,<a name="line.676"></a>
-<span class="sourceLineNo">677</span>      final MutationProto mutation, final CellScanner cells, long nonceGroup,<a name="line.677"></a>
-<span class="sourceLineNo">678</span>      ActivePolicyEnforcement spaceQuota)<a name="line.678"></a>
-<span class="sourceLineNo">679</span>      throws IOException {<a name="line.679"></a>
-<span class="sourceLineNo">680</span>    long before = EnvironmentEdgeManager.currentTime();<a name="line.680"></a>
-<span class="sourceLineNo">681</span>    Increment increment = ProtobufUtil.toIncrement(mutation, cells);<a name="line.681"></a>
-<span class="sourceLineNo">682</span>    checkCellSizeLimit(region, increment);<a name="line.682"></a>
-<span class="sourceLineNo">683</span>    spaceQuota.getPolicyEnforcement(region).check(increment);<a name="line.683"></a>
-<span class="sourceLineNo">684</span>    quota.addMutation(increment);<a name="line.684"></a>
-<span class="sourceLineNo">685</span>    Result r = null;<a name="line.685"></a>
-<span class="sourceLineNo">686</span>    if (region.getCoprocessorHost() != null) {<a name="line.686"></a>
-<span class="sourceLineNo">687</span>      r = region.getCoprocessorHost().preIncrement(increment);<a name="line.687"></a>
-<span class="sourceLineNo">688</span>    }<a name="line.688"></a>
-<span class="sourceLineNo">689</span>    if (r == null) {<a name="line.689"></a>
-<span class="sourceLineNo">690</span>      boolean canProceed = startNonceOperation(mutation, nonceGroup);<a name="line.690"></a>
-<span class="sourceLineNo">691</span>      boolean success = false;<a name="line.691"></a>
-<span class="sourceLineNo">692</span>      try {<a name="line.692"></a>
-<span class="sourceLineNo">693</span>        long nonce = mutation.hasNonce() ? mutation.getNonce() : HConstants.NO_NONCE;<a name="line.693"></a>
-<span class="sourceLineNo">694</span>        if (canProceed) {<a name="line.694"></a>
-<span class="sourceLineNo">695</span>          r = region.increment(increment, nonceGroup, nonce);<a name="line.695"></a>
-<span class="sourceLineNo">696</span>        } else {<a name="line.696"></a>
-<span class="sourceLineNo">697</span>          // convert duplicate increment to get<a name="line.697"></a>
-<span class="sourceLineNo">698</span>          List&lt;Cell&gt; results = region.get(ProtobufUtil.toGet(mutation, cells), false, nonceGroup,<a name="line.698"></a>
-<span class="sourceLineNo">699</span>              nonce);<a name="line.699"></a>
-<span class="sourceLineNo">700</span>          r = Result.create(results);<a name="line.700"></a>
-<span class="sourceLineNo">701</span>        }<a name="line.701"></a>
-<span class="sourceLineNo">702</span>        success = true;<a name="line.702"></a>
-<span class="sourceLineNo">703</span>      } finally {<a name="line.703"></a>
-<span class="sourceLineNo">704</span>        if (canProceed) {<a name="line.704"></a>
-<span class="sourceLineNo">705</span>          endNonceOperation(mutation, nonceGroup, success);<a name="line.705"></a>
-<span class="sourceLineNo">706</span>        }<a name="line.706"></a>
-<span class="sourceLineNo">707</span>      }<a name="line.707"></a>
-<span class="sourceLineNo">708</span>      if (region.getCoprocessorHost() != null) {<a name="line.708"></a>
-<span class="sourceLineNo">709</span>        r = region.getCoprocessorHost().postIncrement(increment, r);<a name="line.709"></a>
-<span class="sourceLineNo">710</span>      }<a name="line.710"></a>
-<span class="sourceLineNo">711</span>    }<a name="line.711"></a>
-<span class="sourceLineNo">712</span>    if (regionServer.metricsRegionServer != null) {<a name="line.712"></a>
-<span class="sourceLineNo">713</span>      regionServer.metricsRegionServer.updateIncrement(<a name="line.713"></a>
-<span class="sourceLineNo">714</span>        EnvironmentEdgeManager.currentTime() - before);<a name="line.714"></a>
-<span class="sourceLineNo">715</span>    }<a name="line.715"></a>
-<span class="sourceLineNo">716</span>    return r;<a name="line.716"></a>
-<span class="sourceLineNo">717</span>  }<a name="line.717"></a>
-<span class="sourceLineNo">718</span><a name="line.718"></a>
-<span class="sourceLineNo">719</span>  /**<a name="line.719"></a>
-<span class="sourceLineNo">720</span>   * Run through the regionMutation &lt;code&gt;rm&lt;/code&gt; and per Mutation, do the work, and then when<a name="line.720"></a>
-<span class="sourceLineNo">721</span>   * done, add an instance of a {@link ResultOrException} that corresponds to each Mutation.<a name="line.721"></a>
-<span class="sourceLineNo">722</span>   * @param cellsToReturn  Could be null. May be allocated in this method.  This is what this<a name="line.722"></a>
-<span class="sourceLineNo">723</span>   * method returns as a 'result'.<a name="line.723"></a>
-<span class="sourceLineNo">724</span>   * @param closeCallBack the callback to be used with multigets<a name="line.724"></a>
-<span class="sourceLineNo">725</span>   * @param context the current RpcCallContext<a name="line.725"></a>
-<span class="sourceLineNo">726</span>   * @return Return the &lt;code&gt;cellScanner&lt;/code&gt; passed<a name="line.726"></a>
-<span class="sourceLineNo">727</span>   */<a name="line.727"></a>
-<span class="sourceLineNo">728</span>  private List&lt;CellScannable&gt; doNonAtomicRegionMutation(final HRegion region,<a name="line.728"></a>
-<span class="sourceLineNo">729</span>      final OperationQuota quota, final RegionAction actions, final CellScanner cellScanner,<a name="line.729"></a>
-<span class="sourceLineNo">730</span>      final RegionActionResult.Builder builder, List&lt;CellScannable&gt; cellsToReturn, long nonceGroup,<a name="line.730"></a>
-<span class="sourceLineNo">731</span>      final RegionScannersCloseCallBack closeCallBack, RpcCallContext context,<a name="line.731"></a>
-<span class="sourceLineNo">732</span>      ActivePolicyEnforcement spaceQuotaEnforcement) {<a name="line.732"></a>
-<span class="sourceLineNo">733</span>    // Gather up CONTIGUOUS Puts and Deletes in this mutations List.  Idea is that rather than do<a name="line.733"></a>
-<span class="sourceLineNo">734</span>    // one at a time, we instead pass them in batch.  Be aware that the corresponding<a name="line.734"></a>
-<span class="sourceLineNo">735</span>    // ResultOrException instance that matches each Put or Delete is then added down in the<a name="line.735"></a>
-<span class="sourceLineNo">736</span>    // doBatchOp call.  We should be staying aligned though the Put and Delete are deferred/batched<a name="line.736"></a>
-<span class="sourceLineNo">737</span>    List&lt;ClientProtos.Action&gt; mutations = null;<a name="line.737"></a>
-<span class="sourceLineNo">738</span>    long maxQuotaResultSize = Math.min(maxScannerResultSize, quota.getReadAvailable());<a name="line.738"></a>
-<span class="sourceLineNo">739</span>    IOException sizeIOE = null;<a name="line.739"></a>
-<span class="sourceLineNo">740</span>    Object lastBlock = null;<a name="line.740"></a>
-<span class="sourceLineNo">741</span>    ClientProtos.ResultOrException.Builder resultOrExceptionBuilder = ResultOrException.newBuilder();<a name="line.741"></a>
-<span class="sourceLineNo">742</span>    boolean hasResultOrException = false;<a name="line.742"></a>
-<span class="sourceLineNo">743</span>    for (ClientProtos.Action action : actions.getActionList()) {<a name="line.743"></a>
-<span class="sourceLineNo">744</span>      hasResultOrException = false;<a name="line.744"></a>
-<span class="sourceLineNo">745</span>      resultOrExceptionBuilder.clear();<a name="line.745"></a>
-<span class="sourceLineNo">746</span>      try {<a name="line.746"></a>
-<span class="sourceLineNo">747</span>        Result r = null;<a name="line.747"></a>
-<span class="sourceLineNo">748</span><a name="line.748"></a>
-<span class="sourceLineNo">749</span>        if (context != null<a name="line.749"></a>
-<span class="sourceLineNo">750</span>            &amp;&amp; context.isRetryImmediatelySupported()<a name="line.750"></a>
-<span class="sourceLineNo">751</span>            &amp;&amp; (context.getResponseCellSize() &gt; maxQuotaResultSize<a name="line.751"></a>
-<span class="sourceLineNo">752</span>              || context.getResponseBlockSize() + context.getResponseExceptionSize()<a name="line.752"></a>
-<span class="sourceLineNo">753</span>              &gt; maxQuotaResultSize)) {<a name="line.753"></a>
-<span class="sourceLineNo">754</span><a name="line.754"></a>
-<span class="sourceLineNo">755</span>          // We're storing the exception since the exception and reason string won't<a name="line.755"></a>
-<span class="sourceLineNo">756</span>          // change after the response size limit is reached.<a name="line.756"></a>
-<span class="sourceLineNo">757</span>          if (sizeIOE == null ) {<a name="line.757"></a>
-<span class="sourceLineNo">758</span>            // We don't need the stack un-winding do don't throw the exception.<a name="line.758"></a>
-<span class="sourceLineNo">759</span>            // Throwing will kill the JVM's JIT.<a name="line.759"></a>
-<span class="sourceLineNo">760</span>            //<a name="line.760"></a>
-<span class="sourceLineNo">761</span>            // Instead just create the exception and then store it.<a name="line.761"></a>
-<span class="sourceLineNo">762</span>            sizeIOE = new MultiActionResultTooLarge("Max size exceeded"<a name="line.762"></a>
-<span class="sourceLineNo">763</span>                + " CellSize: " + context.getResponseCellSize()<a name="line.763"></a>
-<span class="sourceLineNo">764</span>                + " BlockSize: " + context.getResponseBlockSize());<a name="line.764"></a>
-<span class="sourceLineNo">765</span><a name="line.765"></a>
-<span class="sourceLineNo">766</span>            // Only report the exception once since there's only one request that<a name="line.766"></a>
-<span class="sourceLineNo">767</span>            // caused the exception. Otherwise this number will dominate the exceptions count.<a name="line.767"></a>
-<span class="sourceLineNo">768</span>            rpcServer.getMetrics().exception(sizeIOE);<a name="line.768"></a>
-<span class="sourceLineNo">769</span>          }<a name="line.769"></a>
-<span class="sourceLineNo">770</span><a name="line.770"></a>
-<span class="sourceLineNo">771</span>          // Now that there's an exception is known to be created<a name="line.771"></a>
-<span class="sourceLineNo">772</span>          // use it for the response.<a name="line.772"></a>
-<span class="sourceLineNo">773</span>          //<a name="line.773"></a>
-<span class="sourceLineNo">774</span>          // This will create a copy in the builder.<a name="line.774"></a>
-<span class="sourceLineNo">775</span>          hasResultOrException = true;<a name="line.775"></a>
-<span class="sourceLineNo">776</span>          NameBytesPair pair = ResponseConverter.buildException(sizeIOE);<a name="line.776"></a>
-<span class="sourceLineNo">777</span>          resultOrExceptionBuilder.setException(pair);<a name="line.777"></a>
-<span class="sourceLineNo">778</span>          context.incrementResponseExceptionSize(pair.getSerializedSize());<a name="line.778"></a>
-<span class="sourceLineNo">779</span>          resultOrExceptionBuilder.setIndex(action.getIndex());<a name="line.779"></a>
-<span class="sourceLineNo">780</span>          builder.addResultOrException(resultOrExceptionBuilder.build());<a name="line.780"></a>
-<span class="sourceLineNo">781</span>          if (cellScanner != null) {<a name="line.781"></a>
-<span class="sourceLineNo">782</span>            skipCellsForMutation(action, cellScanner);<a name="line.782"></a>
-<span class="sourceLineNo">783</span>          }<a name="line.783"></a>
-<span class="sourceLineNo">784</span>          continue;<a name="line.784"></a>
-<span class="sourceLineNo">785</span>        }<a name="line.785"></a>
-<span class="sourceLineNo">786</span>        if (action.hasGet()) {<a name="line.786"></a>
-<span class="sourceLineNo">787</span>          long before = EnvironmentEdgeManager.currentTime();<a name="line.787"></a>
-<span class="sourceLineNo">788</span>          try {<a name="line.788"></a>
-<span class="sourceLineNo">789</span>            Get get = ProtobufUtil.toGet(action.getGet());<a name="line.789"></a>
-<span class="sourceLineNo">790</span>            if (context != null) {<a name="line.790"></a>
-<span class="sourceLineNo">791</span>              r = get(get, ((HRegion) region), closeCallBack, context);<a name="line.791"></a>
-<span class="sourceLineNo">792</span>            } else {<a name="line.792"></a>
-<span class="sourceLineNo">793</span>              r = region.get(get);<a name="line.793"></a>
-<span class="sourceLineNo">794</span>            }<a name="line.794"></a>
-<span class="sourceLineNo">795</span>          } finally {<a name="line.795"></a>
-<span class="sourceLineNo">796</span>            if (regionServer.metricsRegionServer != null) {<a name="line.796"></a>
-<span class="sourceLineNo">797</span>              regionServer.metricsRegionServer.updateGet(<a name="line.797"></a>
-<span class="sourceLineNo">798</span>                EnvironmentEdgeManager.currentTime() - before);<a name="line.798"></a>
-<span class="sourceLineNo">799</span>            }<a name="line.799"></a>
-<span class="sourceLineNo">800</span>          }<a name="line.800"></a>
-<span class="sourceLineNo">801</span>        } else if (action.hasServiceCall()) {<a name="line.801"></a>
-<span class="sourceLineNo">802</span>          hasResultOrException = true;<a name="line.802"></a>
-<span class="sourceLineNo">803</span>          try {<a name="line.803"></a>
-<span class="sourceLineNo">804</span>            com.google.protobuf.Message result =<a name="line.804"></a>
-<span class="sourceLineNo">805</span>                execServiceOnRegion(region, action.getServiceCall());<a name="line.805"></a>
-<span class="sourceLineNo">806</span>            ClientProtos.CoprocessorServiceResult.Builder serviceResultBuilder =<a name="line.806"></a>
-<span class="sourceLineNo">807</span>                ClientProtos.CoprocessorServiceResult.newBuilder();<a name="line.807"></a>
-<span class="sourceLineNo">808</span>            resultOrExceptionBuilder.setServiceResult(<a name="line.808"></a>
-<span class="sourceLineNo">809</span>                serviceResultBuilder.setValue(<a name="line.809"></a>
-<span class="sourceLineNo">810</span>                  serviceResultBuilder.getValueBuilder()<a name="line.810"></a>
-<span class="sourceLineNo">811</span>                    .setName(result.getClass().getName())<a name="line.811"></a>
-<span class="sourceLineNo">812</span>                    // TODO: Copy!!!<a name="line.812"></a>
-<span class="sourceLineNo">813</span>                    .setValue(UnsafeByteOperations.unsafeWrap(result.toByteArray()))));<a name="line.813"></a>
-<span class="sourceLineNo">814</span>          } catch (IOException ioe) {<a name="line.814"></a>
-<span class="sourceLineNo">815</span>            rpcServer.getMetrics().exception(ioe);<a name="line.815"></a>
-<span class="sourceLineNo">816</span>            NameBytesPair pair = ResponseConverter.buildException(ioe);<a name="line.816"></a>
-<span class="sourceLineNo">817</span>            resultOrExceptionBuilder.setException(pair);<a name="line.817"></a>
-<span class="sourceLineNo">818</span>            context.incrementResponseExceptionSize(pair.getSerializedSize());<a name="line.818"></a>
-<span class="sourceLineNo">819</span>          }<a name="line.819"></a>
-<span class="sourceLineNo">820</span>        } else if (action.hasMutation()) {<a name="line.820"></a>
-<span class="sourceLineNo">821</span>          MutationType type = action.getMutation().getMutateType();<a name="line.821"></a>
-<span class="sourceLineNo">822</span>          if (type != MutationType.PUT &amp;&amp; type != MutationType.DELETE &amp;&amp; mutations != null &amp;&amp;<a name="line.822"></a>
-<span class="sourceLineNo">823</span>              !mutations.isEmpty()) {<a name="line.823"></a>
-<span class="sourceLineNo">824</span>            // Flush out any Puts or Deletes already collected.<a name="line.824"></a>
-<span class="sourceLineNo">825</span>            doBatchOp(builder, region, quota, mutations, cellScanner, spaceQuotaEnforcement, false);<a name="line.825"></a>
-<span class="sourceLineNo">826</span>            mutations.clear();<a name="line.826"></a>
-<span class="sourceLineNo">827</span>          }<a name="line.827"></a>
-<span class="sourceLineNo">828</span>          switch (type) {<a name="line.828"></a>
-<span class="sourceLineNo">829</span>            case APPEND:<a name="line.829"></a>
-<span class="sourceLineNo">830</span>              r = append(region, quota, action.getMutation(), cellScanner, nonceGroup,<a name="line.830"></a>
-<span class="sourceLineNo">831</span>                  spaceQuotaEnforcement);<a name="line.831"></a>
-<span class="sourceLineNo">832</span>              break;<a name="line.832"></a>
-<span class="sourceLineNo">833</span>            case INCREMENT:<a name="line.833"></a>
-<span class="sourceLineNo">834</span>              r = increment(region, quota, action.getMutation(), cellScanner, nonceGroup,<a name="line.834"></a>
-<span class="sourceLineNo">835</span>                  spaceQuotaEnforcement);<a name="line.835"></a>
-<span class="sourceLineNo">836</span>              break;<a name="line.836"></a>
-<span class="sourceLineNo">837</span>            case PUT:<a name="line.837"></a>
-<span class="sourceLineNo">838</span>            case DELETE:<a name="line.838"></a>
-<span class="sourceLineNo">839</span>              // Collect the individual mutations and apply in a batch<a name="line.839"></a>
-<span class="sourceLineNo">840</span>              if (mutations == null) {<a name="line.840"></a>
-<span class="sourceLineNo">841</span>                mutations = new ArrayList&lt;&gt;(actions.getActionCount());<a name="line.841"></a>
-<span class="sourceLineNo">842</span>              }<a name="line.842"></a>
-<span class="sourceLineNo">843</span>              mutations.add(action);<a name="line.843"></a>
-<span class="sourceLineNo">844</span>              break;<a name="line.844"></a>
-<span class="sourceLineNo">845</span>            default:<a name="line.845"></a>
-<span class="sourceLineNo">846</span>              throw new DoNotRetryIOException("Unsupported mutate type: " + type.name());<a name="line.846"></a>
-<span class="sourceLineNo">847</span>          }<a name="line.847"></a>
-<span class="sourceLineNo">848</span>        } else {<a name="line.848"></a>
-<span class="sourceLineNo">849</span>          throw new HBaseIOException("Unexpected Action type");<a name="line.849"></a>
-<span class="sourceLineNo">850</span>        }<a name="line.850"></a>
-<span class="sourceLineNo">851</span>        if (r != null) {<a name="line.851"></a>
-<span class="sourceLineNo">852</span>          ClientProtos.Result pbResult = null;<a name="line.852"></a>
-<span class="sourceLineNo">853</span>          if (isClientCellBlockSupport(context)) {<a name="line.853"></a>
-<span class="sourceLineNo">854</span>            pbResult = ProtobufUtil.toResultNoData(r);<a name="line.854"></a>
-<span class="sourceLineNo">855</span>            //  Hard to guess the size here.  Just make a rough guess.<a name="line.855"></a>
-<span class="sourceLineNo">856</span>            if (cellsToReturn == null) {<a name="line.856"></a>
-<span class="sourceLineNo">857</span>              cellsToReturn = new ArrayList&lt;&gt;();<a name="line.857"></a>
-<span class="sourceLineNo">858</span>            }<a name="line.858"></a>
-<span class="sourceLineNo">859</span>            cellsToReturn.add(r);<a name="line.859"></a>
-<span class="sourceLineNo">860</span>          } else {<a name="line.860"></a>
-<span class="sourceLineNo">861</span>            pbResult = ProtobufUtil.toResult(r);<a name="line.861"></a>
-<span class="sourceLineNo">862</span>          }<a name="line.862"></a>
-<span class="sourceLineNo">863</span>          lastBlock = addSize(context, r, lastBlock);<a name="line.863"></a>
-<span class="sourceLineNo">864</span>          hasResultOrException = true;<a name="line.864"></a>
-<span class="sourceLineNo">865</span>          resultOrExceptionBuilder.setResult(pbResult);<a name="line.865"></a>
-<span class="sourceLineNo">866</span>        }<a name="line.866"></a>
-<span class="sourceLineNo">867</span>        // Could get to here and there was no result and no exception.  Presumes we added<a name="line.867"></a>
-<span class="sourceLineNo">868</span>        // a Put or Delete to the collecting Mutations List for adding later.  In this<a name="line.868"></a>
-<span class="sourceLineNo">869</span>        // case the corresponding ResultOrException instance for the Put or Delete will be added<a name="line.869"></a>
-<span class="sourceLineNo">870</span>        // down in the doBatchOp method call rather than up here.<a name="line.870"></a>
-<span class="sourceLineNo">871</span>      } catch (IOException ie) {<a name="line.871"></a>
-<span class="sourceLineNo">872</span>        rpcServer.getMetrics().exception(ie);<a name="line.872"></a>
-<span class="sourceLineNo">873</span>        hasResultOrException = true;<a name="line.873"></a>
-<span class="sourceLineNo">874</span>        NameBytesPair pair = ResponseConverter.buildException(ie);<a name="line.874"></a>
-<span class="sourceLineNo">875</span>        resultOrExceptionBuilder.setException(pair);<a name="line.875"></a>
-<span class="sourceLineNo">876</span>        context.incrementResponseExceptionSize(pair.getSerializedSize());<a name="line.876"></a>
-<span class="sourceLineNo">877</span>      }<a name="line.877"></a>
-<span class="sourceLineNo">878</span>      if (hasResultOrException) {<a name="line.878"></a>
-<span class="sourceLineNo">879</span>        // Propagate index.<a name="line.879"></a>
-<span class="sourceLineNo">880</span>        resultOrExceptionBuilder.setIndex(action.getIndex());<a name="line.880"></a>
-<span class="sourceLineNo">881</span>        builder.addResultOrException(resultOrExceptionBuilder.build());<a name="line.881"></a>
-<span class="sourceLineNo">882</span>      }<a name="line.882"></a>
-<span class="sourceLineNo">883</span>    }<a name="line.883"></a>
-<span class="sourceLineNo">884</span>    // Finish up any outstanding mutations<a name="line.884"></a>
-<span class="sourceLineNo">885</span>    if (mutations != null &amp;&amp; !mutations.isEmpty()) {<a name="line.885"></a>
-<span class="sourceLineNo">886</span>      try {<a name="line.886"></a>
-<span class="sourceLineNo">887</span>        doBatchOp(builder, region, quota, mutations, cellScanner, spaceQuotaEnforcement, false);<a name="line.887"></a>
-<span class="sourceLineNo">888</span>      } catch (IOException ioe) {<a name="line.888"></a>
-<span class="sourceLineNo">889</span>        rpcServer.getMetrics().exception(ioe);<a name="line.889"></a>
-<span class="sourceLineNo">890</span>        NameBytesPair pair = ResponseConverter.buildException(ioe);<a name="line.890"></a>
-<span class="sourceLineNo">891</span>        resultOrExceptionBuilder.setException(pair);<a name="line.891"></a>
-<span class="sourceLineNo">892</span>        context.incrementResponseExceptionSize(pair.getSerializedSize());<a name="line.892"></a>
-<span class="sourceLineNo">893</span>        builder.addResultOrException(resultOrExceptionBuilder.build());<a name="line.893"></a>
-<span class="sourceLineNo">894</span>      }<a name="line.894"></a>
-<span class="sourceLineNo">895</span>    }<a name="line.895"></a>
-<span class="sourceLineNo">896</span>    return cellsToReturn;<a name="line.896"></a>
-<span class="sourceLineNo">897</span>  }<a name="line.897"></a>
-<span class="sourceLineNo">898</span><a name="line.898"></a>
-<span class="sourceLineNo">899</span>  private void checkCellSizeLimit(final HRegion r, final Mutation m) throws IOException {<a name="line.899"></a>
-<span class="sourceLineNo">900</span>    if (r.maxCellSize &gt; 0) {<a name="line.900"></a>
-<span class="sourceLineNo">901</span>      CellScanner cells = m.cellScanner();<a name="line.901"></a>
-<span class="sourceLineNo">902</span>      while (cells.advance()) {<a name="line.902"></a>
-<span class="sourceLineNo">903</span>        int size = PrivateCellUtil.estimatedSerializedSizeOf(cells.current());<a name="line.903"></a>
-<span class="sourceLineNo">904</span>        if (size &gt; r.maxCellSize) {<a name="line.904"></a>
-<span class="sourceLineNo">905</span>          String msg = "Cell with size " + size + " exceeds limit of " + r.maxCellSize + " bytes";<a name="line.905"></a>
-<span class="sourceLineNo">906</span>          if (LOG.isDebugEnabled()) {<a name="line.906"></a>
-<span class="sourceLineNo">907</span>            LOG.debug(msg);<a name="line.907"></a>
-<span class="sourceLineNo">908</span>          }<a name="line.908"></a>
-<span class="sourceLineNo">909</span>          throw new DoNotRetryIOException(msg);<a name="line.909"></a>
-<span class="sourceLineNo">910</span>        }<a name="line.910"></a>
-<span class="sourceLineNo">911</span>      }<a name="line.911"></a>
-<span class="sourceLineNo">912</span>    }<a name="line.912"></a>
-<span class="sourceLineNo">913</span>  }<a name="line.913"></a>
-<span class="sourceLineNo">914</span><a name="line.914"></a>
-<span class="sourceLineNo">915</span>  /**<a name="line.915"></a>
-<span class="sourceLineNo">916</span>   * Execute a list of Put/Delete mutations.<a name="line.916"></a>
-<span class="sourceLineNo">917</span>   *<a name="line.917"></a>
-<span class="sourceLineNo">918</span>   * @param builder<a name="line.918"></a>
-<span class="sourceLineNo">919</span>   * @param region<a name="line.919"></a>
-<span class="sourceLineNo">920</span>   * @param mutations<a name="line.920"></a>
-<span class="sourceLineNo">921</span>   */<a name="line.921"></a>
-<span class="sourceLineNo">922</span>  private void doBatchOp(final RegionActionResult.Builder builder, final HRegion region,<a name="line.922"></a>
-<span class="sourceLineNo">923</span>      final OperationQuota quota, final List&lt;ClientProtos.Action&gt; mutations,<a name="line.923"></a>
-<span class="sourceLineNo">924</span>      final CellScanner cells, ActivePolicyEnforcement spaceQuotaEnforcement, boolean atomic)<a name="line.924"></a>
-<span class="sourceLineNo">925</span>      throws IOException {<a name="line.925"></a>
-<span class="sourceLineNo">926</span>    Mutation[] mArray = new Mutation[mutations.size()];<a name="line.926"></a>
-<span class="sourceLineNo">927</span>    long before = EnvironmentEdgeManager.currentTime();<a name="line.927"></a>
-<span class="sourceLineNo">928</span>    boolean batchContainsPuts = false, batchContainsDelete = false;<a name="line.928"></a>
-<span class="sourceLineNo">929</span>    try {<a name="line.929"></a>
-<span class="sourceLineNo">930</span>      /** HBASE-17924<a name="line.930"></a>
-<span class="sourceLineNo">931</span>       * mutationActionMap is a map to map the relation between mutations and actions<a name="line.931"></a>
-<span class="sourceLineNo">932</span>       * since mutation array may have been reoredered.In order to return the right<a name="line.932"></a>
-<span class="sourceLineNo">933</span>       * result or exception to the corresponding actions, We need to know which action<a name="line.933"></a>
-<span class="sourceLineNo">934</span>       * is the mutation belong to. We can't sort ClientProtos.Action array, since they<a name="line.934"></a>
-<span class="sourceLineNo">935</span>       * are bonded to cellscanners.<a name="line.935"></a>
-<span class="sourceLineNo">936</span>       */<a name="line.936"></a>
-<span class="sourceLineNo">937</span>      Map&lt;Mutation, ClientProtos.Action&gt; mutationActionMap = new HashMap&lt;&gt;();<a name="line.937"></a>
-<span class="sourceLineNo">938</span>      int i = 0;<a name="line.938"></a>
-<span class="sourceLineNo">939</span>      for (ClientProtos.Action action: mutations) {<a name="line.939"></a>
-<span class="sourceLineNo">940</span>        MutationProto m = action.getMutation();<a name="line.940"></a>
-<span class="sourceLineNo">941</span>        Mutation mutation;<a name="line.941"></a>
-<span class="sourceLineNo">942</span>        if (m.getMutateType() == MutationType.PUT) {<a name="line.942"></a>
-<span class="sourceLineNo">943</span>          mutation = ProtobufUtil.toPut(m, cells);<a name="line.943"></a>
-<span class="sourceLineNo">944</span>          batchContainsPuts = true;<a name="line.944"></a>
-<span class="sourceLineNo">945</span>        } else {<a name="line.945"></a>
-<span class="sourceLineNo">946</span>          mutation = ProtobufUtil.toDelete(m, cells);<a name="line.946"></a>
-<span class="sourceLineNo">947</span>          batchContainsDelete = true;<a name="line.947"></a>
-<span class="sourceLineNo">948</span>        }<a name="line.948"></a>
-<span class="sourceLineNo">949</span>        mutationActionMap.put(mutation, action);<a name="line.949"></a>
-<span class="sourceLineNo">950</span>        mArray[i++] = mutation;<a name="line.950"></a>
-<span class="sourceLineNo">951</span>        checkCellSizeLimit(region, mutation);<a name="line.951"></a>
-<span class="sourceLineNo">952</span>        // Check if a space quota disallows this mutation<a name="line.952"></a>
-<span class="sourceLineNo">953</span>        spaceQuotaEnforcement.getPolicyEnforcement(region).check(mutation);<a name="line.953"></a>
-<span class="sourceLineNo">954</span>        quota.addMutation(mutation);<a name="line.954"></a>
-<span class="sourceLineNo">955</span>      }<a name="line.955"></a>
-<span class="sourceLineNo">956</span><a name="line.956"></a>
-<span class="sourceLineNo">957</span>      if (!region.getRegionInfo().isMetaRegion()) {<a name="line.957"></a>
-<span class="sourceLineNo">958</span>        regionServer.cacheFlusher.reclaimMemStoreMemory();<a name="line.958"></a>
-<span class="sourceLineNo">959</span>      }<a name="line.959"></a>
-<span class="sourceLineNo">960</span><a name="line.960"></a>
-<span class="sourceLineNo">961</span>      // HBASE-17924<a name="line.961"></a>
-<span class="sourceLineNo">962</span>      // Sort to improve lock efficiency for non-atomic batch of operations. If atomic (mostly<a name="line.962"></a>
-<span class="sourceLineNo">963</span>      // called from mutateRows()), order is preserved as its expected from the client<a name="line.963"></a>
-<span class="sourceLineNo">964</span>      if (!atomic) {<a name="line.964"></a>
-<span class="sourceLineNo">965</span>        Arrays.sort(mArray);<a name="line.965"></a>
-<span class="sourceLineNo">966</span>      }<a name="line.966"></a>
-<span class="sourceLineNo">967</span><a name="line.967"></a>
-<span class="sourceLineNo">968</span>      OperationStatus[] codes = region.batchMutate(mArray, atomic, HConstants.NO_NONCE,<a name="line.968"></a>
-<span class="sourceLineNo">969</span>        HConstants.NO_NONCE);<a name="line.969"></a>
-<span class="sourceLineNo">970</span>      for (i = 0; i &lt; codes.length; i++) {<a name="line.970"></a>
-<span class="sourceLineNo">971</span>        Mutation currentMutation = mArray[i];<a name="line.971"></a>
-<span class="sourceLineNo">972</span>        ClientProtos.Action currentAction = mutationActionMap.get(currentMutation);<a name="line.972"></a>
-<span class="sourceLineNo">973</span>        int index = currentAction.hasIndex() || !atomic ? currentAction.getIndex() : i;<a name="line.973"></a>
-<span class="sourceLineNo">974</span>        Exception e = null;<a name="line.974"></a>
-<span class="sourceLineNo">975</span>        switch (codes[i].getOperationStatusCode()) {<a name="line.975"></a>
-<span class="sourceLineNo">976</span>          case BAD_FAMILY:<a name="line.976"></a>
-<span class="sourceLineNo">977</span>            e = new NoSuchColumnFamilyException(codes[i].getExceptionMsg());<a name="line.977"></a>
-<span class="sourceLineNo">978</span>            builder.addResultOrException(getResultOrException(e, index));<a name="line.978"></a>
-<span class="sourceLineNo">979</span>            break;<a name="line.979"></a>
-<span class="sourceLineNo">980</span><a name="line.980"></a>
-<span class="sourceLineNo">981</span>          case SANITY_CHECK_FAILURE:<a name="line.981"></a>
-<span class="sourceLineNo">982</span>            e = new FailedSanityCheckException(codes[i].getExceptionMsg());<a name="line.982"></a>
-<span class="sourceLineNo">983</span>            builder.addResultOrException(getResultOrException(e, index));<a name="line.983"></a>
-<span class="sourceLineNo">984</span>            break;<a name="line.984"></a>
-<span class="sourceLineNo">985</span><a name="line.985"></a>
-<span class="sourceLineNo">986</span>          default:<a name="line.986"></a>
-<span class="sourceLineNo">987</span>            e = new DoNotRetryIOException(codes[i].getExceptionMsg());<a name="line.987"></a>
-<span class="sourceLineNo">988</span>            builder.addResultOrException(getResultOrException(e, index));<a name="line.988"></a>
-<span class="sourceLineNo">989</span>            break;<a name="line.989"></a>
-<span class="sourceLineNo">990</span><a name="line.990"></a>
-<span class="sourceLineNo">991</span>          case SUCCESS:<a name="line.991"></a>
-<span class="sourceLineNo">992</span>            builder.addResultOrException(getResultOrException(<a name="line.992"></a>
-<span class="sourceLineNo">993</span>              ClientProtos.Result.getDefaultInstance(), index));<a name="line.993"></a>
-<span class="sourceLineNo">994</span>            break;<a name="line.994"></a>
-<span class="sourceLineNo">995</span>        }<a name="line.995"></a>
-<span class="sourceLineNo">996</span>      }<a name="line.996"></a>
-<span class="sourceLineNo">997</span>    } catch (IOException ie) {<a name="line.997"></a>
-<span class="sourceLineNo">998</span>      if (atomic) {<a name="line.998"></a>
-<span class="sourceLineNo">999</span>        throw ie;<a name="line.999"></a>
-<span class="sourceLineNo">1000</span>      }<a name="line.1000"></a>
-<span class="sourceLineNo">1001</span>      for (Action mutation : mutations) {<a name="line.1001"></a>
-<span class="sourceLineNo">1002</span>        builder.addResultOrException(getResultOrException(ie, mutation.getIndex()));<a name="line.1002"></a>
+<span class="sourceLineNo">663</span>          region.getTableDescriptor().getTableName(),<a name="line.663"></a>
+<span class="sourceLineNo">664</span>        EnvironmentEdgeManager.currentTime() - before);<a name="line.664"></a>
+<span class="sourceLineNo">665</span>    }<a name="line.665"></a>
+<span class="sourceLineNo">666</span>    return r;<a name="line.666"></a>
+<span class="sourceLineNo">667</span>  }<a name="line.667"></a>
+<span class="sourceLineNo">668</span><a name="line.668"></a>
+<span class="sourceLineNo">669</span>  /**<a name="line.669"></a>
+<span class="sourceLineNo">670</span>   * Execute an increment mutation.<a name="line.670"></a>
+<span class="sourceLineNo">671</span>   *<a name="line.671"></a>
+<span class="sourceLineNo">672</span>   * @param region<a name="line.672"></a>
+<span class="sourceLineNo">673</span>   * @param mutation<a name="line.673"></a>
+<span class="sourceLineNo">674</span>   * @return the Result<a name="line.674"></a>
+<span class="sourceLineNo">675</span>   * @throws IOException<a name="line.675"></a>
+<span class="sourceLineNo">676</span>   */<a name="line.676"></a>
+<span class="sourceLineNo">677</span>  private Result increment(final HRegion region, final OperationQuota quota,<a name="line.677"></a>
+<span class="sourceLineNo">678</span>      final MutationProto mutation, final CellScanner cells, long nonceGroup,<a name="line.678"></a>
+<span class="sourceLineNo">679</span>      ActivePolicyEnforcement spaceQuota)<a name="line.679"></a>
+<span class="sourceLineNo">680</span>      throws IOException {<a name="line.680"></a>
+<span class="sourceLineNo">681</span>    long before = EnvironmentEdgeManager.currentTime();<a name="line.681"></a>
+<span class="sourceLineNo">682</span>    Increment increment = ProtobufUtil.toIncrement(mutation, cells);<a name="line.682"></a>
+<span class="sourceLineNo">683</span>    checkCellSizeLimit(region, increment);<a name="line.683"></a>
+<span class="sourceLineNo">684</span>    spaceQuota.getPolicyEnforcement(region).check(increment);<a name="line.684"></a>
+<span class="sourceLineNo">685</span>    quota.addMutation(increment);<a name="line.685"></a>
+<span class="sourceLineNo">686</span>    Result r = null;<a name="line.686"></a>
+<span class="sourceLineNo">687</span>    if (region.getCoprocessorHost() != null) {<a name="line.687"></a>
+<span class="sourceLineNo">688</span>      r = region.getCoprocessorHost().preIncrement(increment);<a name="line.688"></a>
+<span class="sourceLineNo">689</span>    }<a name="line.689"></a>
+<span class="sourceLineNo">690</span>    if (r == null) {<a name="line.690"></a>
+<span class="sourceLineNo">691</span>      boolean canProceed = startNonceOperation(mutation, nonceGroup);<a name="line.691"></a>
+<span class="sourceLineNo">692</span>      boolean success = false;<a name="line.692"></a>
+<span class="sourceLineNo">693</span>      try {<a name="line.693"></a>
+<span class="sourceLineNo">694</span>        long nonce = mutation.hasNonce() ? mutation.getNonce() : HConstants.NO_NONCE;<a name="line.694"></a>
+<span class="sourceLineNo">695</span>        if (canProceed) {<a name="line.695"></a>
+<span class="sourceLineNo">696</span>          r = region.increment(increment, nonceGroup, nonce);<a name="line.696"></a>
+<span class="sourceLineNo">697</span>        } else {<a name="line.697"></a>
+<span class="sourceLineNo">698</span>          // convert duplicate increment to get<a name="line.698"></a>
+<span class="sourceLineNo">699</span>          List&lt;Cell&gt; results = region.get(ProtobufUtil.toGet(mutation, cells), false, nonceGroup,<a name="line.699"></a>
+<span class="sourceLineNo">700</span>              nonce);<a name="line.700"></a>
+<span class="sourceLineNo">701</span>          r = Result.create(results);<a name="line.701"></a>
+<span class="sourceLineNo">702</span>        }<a name="line.702"></a>
+<span class="sourceLineNo">703</span>        success = true;<a name="line.703"></a>
+<span class="sourceLineNo">704</span>      } finally {<a name="line.704"></a>
+<span class="sourceLineNo">705</span>        if (canProceed) {<a name="line.705"></a>
+<span class="sourceLineNo">706</span>          endNonceOperation(mutation, nonceGroup, success);<a name="line.706"></a>
+<span class="sourceLineNo">707</span>        }<a name="line.707"></a>
+<span class="sourceLineNo">708</span>      }<a name="line.708"></a>
+<span class="sourceLineNo">709</span>      if (region.getCoprocessorHost() != null) {<a name="line.709"></a>
+<span class="sourceLineNo">710</span>        r = region.getCoprocessorHost().postIncrement(increment, r);<a name="line.710"></a>
+<span class="sourceLineNo">711</span>      }<a name="line.711"></a>
+<span class="sourceLineNo">712</span>    }<a name="line.712"></a>
+<span class="sourceLineNo">713</span>    if (regionServer.metricsRegionServer != null) {<a name="line.713"></a>
+<span class="sourceLineNo">714</span>      regionServer.metricsRegionServer.updateIncrement(<a name="line.714"></a>
+<span class="sourceLineNo">715</span>          region.getTableDescriptor().getTableName(),<a name="line.715"></a>
+<span class="sourceLineNo">716</span>          EnvironmentEdgeManager.currentTime() - before);<a name="line.716"></a>
+<span class="sourceLineNo">717</span>    }<a name="line.717"></a>
+<span class="sourceLineNo">718</span>    return r;<a name="line.718"></a>
+<span class="sourceLineNo">719</span>  }<a name="line.719"></a>
+<span class="sourceLineNo">720</span><a name="line.720"></a>
+<span class="sourceLineNo">721</span>  /**<a name="line.721"></a>
+<span class="sourceLineNo">722</span>   * Run through the regionMutation &lt;code&gt;rm&lt;/code&gt; and per Mutation, do the work, and then when<a name="line.722"></a>
+<span class="sourceLineNo">723</span>   * done, add an instance of a {@link ResultOrException} that corresponds to each Mutation.<a name="line.723"></a>
+<span class="sourceLineNo">724</span>   * @param cellsToReturn  Could be null. May be allocated in this method.  This is what this<a name="line.724"></a>
+<span class="sourceLineNo">725</span>   * method returns as a 'result'.<a name="line.725"></a>
+<span class="sourceLineNo">726</span>   * @param closeCallBack the callback to be used with multigets<a name="line.726"></a>
+<span class="sourceLineNo">727</span>   * @param context the current RpcCallContext<a name="line.727"></a>
+<span class="sourceLineNo">728</span>   * @return Return the &lt;code&gt;cellScanner&lt;/code&gt; passed<a name="line.728"></a>
+<span class="sourceLineNo">729</span>   */<a name="line.729"></a>
+<span class="sourceLineNo">730</span>  private List&lt;CellScannable&gt; doNonAtomicRegionMutation(final HRegion region,<a name="line.730"></a>
+<span class="sourceLineNo">731</span>      final OperationQuota quota, final RegionAction actions, final CellScanner cellScanner,<a name="line.731"></a>
+<span class="sourceLineNo">732</span>      final RegionActionResult.Builder builder, List&lt;CellScannable&gt; cellsToReturn, long nonceGroup,<a name="line.732"></a>
+<span class="sourceLineNo">733</span>      final RegionScannersCloseCallBack closeCallBack, RpcCallContext context,<a name="line.733"></a>
+<span class="sourceLineNo">734</span>      ActivePolicyEnforcement spaceQuotaEnforcement) {<a name="line.734"></a>
+<span class="sourceLineNo">735</span>    // Gather up CONTIGUOUS Puts and Deletes in this mutations List.  Idea is that rather than do<a name="line.735"></a>
+<span class="sourceLineNo">736</span>    // one at a time, we instead pass them in batch.  Be aware that the corresponding<a name="line.736"></a>
+<span class="sourceLineNo">737</span>    // ResultOrException instance that matches each Put or Delete is then added down in the<a name="line.737"></a>
+<span class="sourceLineNo">738</span>    // doBatchOp call.  We should be staying aligned though the Put and Delete are deferred/batched<a name="line.738"></a>
+<span class="sourceLineNo">739</span>    List&lt;ClientProtos.Action&gt; mutations = null;<a name="line.739"></a>
+<span class="sourceLineNo">740</span>    long maxQuotaResultSize = Math.min(maxScannerResultSize, quota.getReadAvailable());<a name="line.740"></a>
+<span class="sourceLineNo">741</span>    IOException sizeIOE = null;<a name="line.741"></a>
+<span class="sourceLineNo">742</span>    Object lastBlock = null;<a name="line.742"></a>
+<span class="sourceLineNo">743</span>    ClientProtos.ResultOrException.Builder resultOrExceptionBuilder = ResultOrException.newBuilder();<a name="line.743"></a>
+<span class="sourceLineNo">744</span>    boolean hasResultOrException = false;<a name="line.744"></a>
+<span class="sourceLineNo">745</span>    for (ClientProtos.Action action : actions.getActionList()) {<a name="line.745"></a>
+<span class="sourceLineNo">746</span>      hasResultOrException = false;<a name="line.746"></a>
+<span class="sourceLineNo">747</span>      resultOrExceptionBuilder.clear();<a name="line.747"></a>
+<span class="sourceLineNo">748</span>      try {<a name="line.748"></a>
+<span class="sourceLineNo">749</span>        Result r = null;<a name="line.749"></a>
+<span class="sourceLineNo">750</span><a name="line.750"></a>
+<span class="sourceLineNo">751</span>        if (context != null<a name="line.751"></a>
+<span class="sourceLineNo">752</span>            &amp;&amp; context.isRetryImmediatelySupported()<a name="line.752"></a>
+<span class="sourceLineNo">753</span>            &amp;&amp; (context.getResponseCellSize() &gt; maxQuotaResultSize<a name="line.753"></a>
+<span class="sourceLineNo">754</span>              || context.getResponseBlockSize() + context.getResponseExceptionSize()<a name="line.754"></a>
+<span class="sourceLineNo">755</span>              &gt; maxQuotaResultSize)) {<a name="line.755"></a>
+<span class="sourceLineNo">756</span><a name="line.756"></a>
+<span class="sourceLineNo">757</span>          // We're storing the exception since the exception and reason string won't<a name="line.757"></a>
+<span class="sourceLineNo">758</span>          // change after the response size limit is reached.<a name="line.758"></a>
+<span class="sourceLineNo">759</span>          if (sizeIOE == null ) {<a name="line.759"></a>
+<span class="sourceLineNo">760</span>            // We don't need the stack un-winding do don't throw the exception.<a name="line.760"></a>
+<span class="sourceLineNo">761</span>            // Throwing will kill the JVM's JIT.<a name="line.761"></a>
+<span class="sourceLineNo">762</span>            //<a name="line.762"></a>
+<span class="sourceLineNo">763</span>            // Instead just create the exception and then store it.<a name="line.763"></a>
+<span class="sourceLineNo">764</span>            sizeIOE = new MultiActionResultTooLarge("Max size exceeded"<a name="line.764"></a>
+<span class="sourceLineNo">765</span>                + " CellSize: " + context.getResponseCellSize()<a name="line.765"></a>
+<span class="sourceLineNo">766</span>                + " BlockSize: " + context.getResponseBlockSize());<a name="line.766"></a>
+<span class="sourceLineNo">767</span><a name="line.767"></a>
+<span class="sourceLineNo">768</span>            // Only report the exception once since there's only one request that<a name="line.768"></a>
+<span class="sourceLineNo">769</span>            // caused the exception. Otherwise this number will dominate the exceptions count.<a name="line.769"></a>
+<span class="sourceLineNo">770</span>            rpcServer.getMetrics().exception(sizeIOE);<a name="line.770"></a>
+<span class="sourceLineNo">771</span>          }<a name="line.771"></a>
+<span class="sourceLineNo">772</span><a name="line.772"></a>
+<span class="sourceLineNo">773</span>          // Now that there's an exception is known to be created<a name="line.773"></a>
+<span class="sourceLineNo">774</span>          // use it for the response.<a name="line.774"></a>
+<span class="sourceLineNo">775</span>          //<a name="line.775"></a>
+<span class="sourceLineNo">776</span>          // This will create a copy in the builder.<a name="line.776"></a>
+<span class="sourceLineNo">777</span>          hasResultOrException = true;<a name="line.777"></a>
+<span class="sourceLineNo">778</span>          NameBytesPair pair = ResponseConverter.buildException(sizeIOE);<a name="line.778"></a>
+<span class="sourceLineNo">779</span>          resultOrExceptionBuilder.setException(pair);<a name="line.779"></a>
+<span class="sourceLineNo">780</span>          context.incrementResponseExceptionSize(pair.getSerializedSize());<a name="line.780"></a>
+<span class="sourceLineNo">781</span>          resultOrExceptionBuilder.setIndex(action.getIndex());<a name="line.781"></a>
+<span class="sourceLineNo">782</span>          builder.addResultOrException(resultOrExceptionBuilder.build());<a name="line.782"></a>
+<span class="sourceLineNo">783</span>          if (cellScanner != null) {<a name="line.783"></a>
+<span class="sourceLineNo">784</span>            skipCellsForMutation(action, cellScanner);<a name="line.784"></a>
+<span class="sourceLineNo">785</span>          }<a name="line.785"></a>
+<span class="sourceLineNo">786</span>          continue;<a name="line.786"></a>
+<span class="sourceLineNo">787</span>        }<a name="line.787"></a>
+<span class="sourceLineNo">788</span>        if (action.hasGet()) {<a name="line.788"></a>
+<span class="sourceLineNo">789</span>          long before = EnvironmentEdgeManager.currentTime();<a name="line.789"></a>
+<span class="sourceLineNo">790</span>          try {<a name="line.790"></a>
+<span class="sourceLineNo">791</span>            Get get = ProtobufUtil.toGet(action.getGet());<a name="line.791"></a>
+<span class="sourceLineNo">792</span>            if (context != null) {<a name="line.792"></a>
+<span class="sourceLineNo">793</span>              r = get(get, ((HRegion) region), closeCallBack, context);<a name="line.793"></a>
+<span class="sourceLineNo">794</span>            } else {<a name="line.794"></a>
+<span class="sourceLineNo">795</span>              r = region.get(get);<a name="line.795"></a>
+<span class="sourceLineNo">796</span>            }<a name="line.796"></a>
+<span class="sourceLineNo">797</span>          } finally {<a name="line.797"></a>
+<span class="sourceLineNo">798</span>            if (regionServer.metricsRegionServer != null) {<a name="line.798"></a>
+<span class="sourceLineNo">799</span>              regionServer.metricsRegionServer.updateGet(<a name="line.799"></a>
+<span class="sourceLineNo">800</span>                  region.getTableDescriptor().getTableName(),<a name="line.800"></a>
+<span class="sourceLineNo">801</span>                  EnvironmentEdgeManager.currentTime() - before);<a name="line.801"></a>
+<span class="sourceLineNo">802</span>            }<a name="line.802"></a>
+<span class="sourceLineNo">803</span>          }<a name="line.803"></a>
+<span class="sourceLineNo">804</span>        } else if (action.hasServiceCall()) {<a name="line.804"></a>
+<span class="sourceLineNo">805</span>          hasResultOrException = true;<a name="line.805"></a>
+<span class="sourceLineNo">806</span>          try {<a name="line.806"></a>
+<span class="sourceLineNo">807</span>            com.google.protobuf.Message result =<a name="line.807"></a>
+<span class="sourceLineNo">808</span>                execServiceOnRegion(region, action.getServiceCall());<a name="line.808"></a>
+<span class="sourceLineNo">809</span>            ClientProtos.CoprocessorServiceResult.Builder serviceResultBuilder =<a name="line.809"></a>
+<span class="sourceLineNo">810</span>                ClientProtos.CoprocessorServiceResult.newBuilder();<a name="line.810"></a>
+<span class="sourceLineNo">811</span>            resultOrExceptionBuilder.setServiceResult(<a name="line.811"></a>
+<span class="sourceLineNo">812</span>                serviceResultBuilder.setValue(<a name="line.812"></a>
+<span class="sourceLineNo">813</span>                  serviceResultBuilder.getValueBuilder()<a name="line.813"></a>
+<span class="sourceLineNo">814</span>                    .setName(result.getClass().getName())<a name="line.814"></a>
+<span class="sourceLineNo">815</span>                    // TODO: Copy!!!<a name="line.815"></a>
+<span class="sourceLineNo">816</span>                    .setValue(UnsafeByteOperations.unsafeWrap(result.toByteArray()))));<a name="line.816"></a>
+<span class="sourceLineNo">817</span>          } catch (IOException ioe) {<a name="line.817"></a>
+<span class="sourceLineNo">818</span>            rpcServer.getMetrics().exception(ioe);<a name="line.818"></a>
+<span class="sourceLineNo">819</span>            NameBytesPair pair = ResponseConverter.buildException(ioe);<a name="line.819"></a>
+<span class="sourceLineNo">820</span>            resultOrExceptionBuilder.setException(pair);<a name="line.820"></a>
+<span class="sourceLineNo">821</span>            context.incrementResponseExceptionSize(pair.getSerializedSize());<a name="line.821"></a>
+<span class="sourceLineNo">822</span>          }<a name="line.822"></a>
+<span class="sourceLineNo">823</span>        } else if (action.hasMutation()) {<a name="line.823"></a>
+<span class="sourceLineNo">824</span>          MutationType type = action.getMutation().getMutateType();<a name="line.824"></a>
+<span class="sourceLineNo">825</span>          if (type != MutationType.PUT &amp;&amp; type != MutationType.DELETE &amp;&amp; mutations != null &amp;&amp;<a name="line.825"></a>
+<span class="sourceLineNo">826</span>              !mutations.isEmpty()) {<a name="line.826"></a>
+<span class="sourceLineNo">827</span>            // Flush out any Puts or Deletes already collected.<a name="line.827"></a>
+<span class="sourceLineNo">828</span>            doBatchOp(builder, region, quota, mutations, cellScanner, spaceQuotaEnforcement, false);<a name="line.828"></a>
+<span class="sourceLineNo">829</span>            mutations.clear();<a name="line.829"></a>
+<span class="sourceLineNo">830</span>          }<a name="line.830"></a>
+<span class="sourceLineNo">831</span>          switch (type) {<a name="line.831"></a>
+<span class="sourceLineNo">832</span>            case APPEND:<a name="line.832"></a>
+<span class="sourceLineNo">833</span>              r = append(region, quota, action.getMutation(), cellScanner, nonceGroup,<a name="line.833"></a>
+<span class="sourceLineNo">834</span>                  spaceQuotaEnforcement);<a name="line.834"></a>
+<span class="sourceLineNo">835</span>              break;<a name="line.835"></a>
+<span class="sourceLineNo">836</span>            case INCREMENT:<a name="line.836"></a>
+<span class="sourceLineNo">837</span>              r = increment(region, quota, action.getMutation(), cellScanner, nonceGroup,<a name="line.837"></a>
+<span class="sourceLineNo">838</span>                  spaceQuotaEnforcement);<a name="line.838"></a>
+<span class="sourceLineNo">839</span>              break;<a name="line.839"></a>
+<span class="sourceLineNo">840</span>            case PUT:<a name="line.840"></a>
+<span class="sourceLineNo">841</span>            case DELETE:<a name="line.841"></a>
+<span class="sourceLineNo">842</span>              // Collect the individual mutations and apply in a batch<a name="line.842"></a>
+<span class="sourceLineNo">843</span>              if (mutations == null) {<a name="line.843"></a>
+<span class="sourceLineNo">844</span>                mutations = new ArrayList&lt;&gt;(actions.getActionCount());<a name="line.844"></a>
+<span class="sourceLineNo">845</span>              }<a name="line.845"></a>
+<span class="sourceLineNo">846</span>              mutations.add(action);<a name="line.846"></a>
+<span class="sourceLineNo">847</span>              break;<a name="line.847"></a>
+<span class="sourceLineNo">848</span>            default:<a name="line.848"></a>
+<span class="sourceLineNo">849</span>              throw new DoNotRetryIOException("Unsupported mutate type: " + type.name());<a name="line.849"></a>
+<span class="sourceLineNo">850</span>          }<a name="line.850"></a>
+<span class="sourceLineNo">851</span>        } else {<a name="line.851"></a>
+<span class="sourceLineNo">852</span>          throw new HBaseIOException("Unexpected Action type");<a name="line.852"></a>
+<span class="sourceLineNo">853</span>        }<a name="line.853"></a>
+<span class="sourceLineNo">854</span>        if (r != null) {<a name="line.854"></a>
+<span class="sourceLineNo">855</span>          ClientProtos.Result pbResult = null;<a name="line.855"></a>
+<span class="sourceLineNo">856</span>          if (isClientCellBlockSupport(context)) {<a name="line.856"></a>
+<span class="sourceLineNo">857</span>            pbResult = ProtobufUtil.toResultNoData(r);<a name="line.857"></a>
+<span class="sourceLineNo">858</span>            //  Hard to guess the size here.  Just make a rough guess.<a name="line.858"></a>
+<span class="sourceLineNo">859</span>            if (cellsToReturn == null) {<a name="line.859"></a>
+<span class="sourceLineNo">860</span>              cellsToReturn = new ArrayList&lt;&gt;();<a name="line.860"></a>
+<span class="sourceLineNo">861</span>            }<a name="line.861"></a>
+<span class="sourceLineNo">862</span>            cellsToReturn.add(r);<a name="line.862"></a>
+<span class="sourceLineNo">863</span>          } else {<a name="line.863"></a>
+<span class="sourceLineNo">864</span>            pbResult = ProtobufUtil.toResult(r);<a name="line.864"></a>
+<span class="sourceLineNo">865</span>          }<a name="line.865"></a>
+<span class="sourceLineNo">866</span>          lastBlock = addSize(context, r, lastBlock);<a name="line.866"></a>
+<span class="sourceLineNo">867</span>          hasResultOrException = true;<a name="line.867"></a>
+<span class="sourceLineNo">868</span>          resultOrExceptionBuilder.setResult(pbResult);<a name="line.868"></a>
+<span class="sourceLineNo">869</span>        }<a name="line.869"></a>
+<span class="sourceLineNo">870</span>        // Could get to here and there was no result and no exception.  Presumes we added<a name="line.870"></a>
+<span class="sourceLineNo">871</span>        // a Put or Delete to the collecting Mutations List for adding later.  In this<a name="line.871"></a>
+<span class="sourceLineNo">872</span>        // case the corresponding ResultOrException instance for the Put or Delete will be added<a name="line.872"></a>
+<span class="sourceLineNo">873</span>        // down in the doBatchOp method call rather than up here.<a name="line.873"></a>
+<span class="sourceLineNo">874</span>      } catch (IOException ie) {<a name="line.874"></a>
+<span class="sourceLineNo">875</span>        rpcServer.getMetrics().exception(ie);<a name="line.875"></a>
+<span class="sourceLineNo">876</span>        hasResultOrException = true;<a name="line.876"></a>
+<span class="sourceLineNo">877</span>        NameBytesPair pair = ResponseConverter.buildException(ie);<a name="line.877"></a>
+<span class="sourceLineNo">878</span>        resultOrExceptionBuilder.setException(pair);<a name="line.878"></a>
+<span class="sourceLineNo">879</span>        context.incrementResponseExceptionSize(pair.getSerializedSize());<a name="line.879"></a>
+<span class="sourceLineNo">880</span>      }<a name="line.880"></a>
+<span class="sourceLineNo">881</span>      if (hasResultOrException) {<a name="line.881"></a>
+<span class="sourceLineNo">882</span>        // Propagate index.<a name="line.882"></a>
+<span class="sourceLineNo">883</span>        resultOrExceptionBuilder.setIndex(action.getIndex());<a name="line.883"></a>
+<span class="sourceLineNo">884</span>        builder.addResultOrException(resultOrExceptionBuilder.build());<a name="line.884"></a>
+<span class="sourceLineNo">885</span>      }<a name="line.885"></a>
+<span class="sourceLineNo">886</span>    }<a name="line.886"></a>
+<span class="sourceLineNo">887</span>    // Finish up any outstanding mutations<a name="line.887"></a>
+<span class="sourceLineNo">888</span>    if (mutations != null &amp;&amp; !mutations.isEmpty()) {<a name="line.888"></a>
+<span class="sourceLineNo">889</span>      try {<a name="line.889"></a>
+<span class="sourceLineNo">890</span>        doBatchOp(builder, region, quota, mutations, cellScanner, spaceQuotaEnforcement, false);<a name="line.890"></a>
+<span class="sourceLineNo">891</span>      } catch (IOException ioe) {<a name="line.891"></a>
+<span class="sourceLineNo">892</span>        rpcServer.getMetrics().exception(ioe);<a name="line.892"></a>
+<span class="sourceLineNo">893</span>        NameBytesPair pair = ResponseConverter.buildException(ioe);<a name="line.893"></a>
+<span class="sourceLineNo">894</span>        resultOrExceptionBuilder.setException(pair);<a name="line.894"></a>
+<span class="sourceLineNo">895</span>        context.incrementResponseExceptionSize(pair.getSerializedSize());<a name="line.895"></a>
+<span class="sourceLineNo">896</span>        builder.addResultOrException(resultOrExceptionBuilder.build());<a name="line.896"></a>
+<span class="sourceLineNo">897</span>      }<a name="line.897"></a>
+<span class="sourceLineNo">898</span>    }<a name="line.898"></a>
+<span class="sourceLineNo">899</span>    return cellsToReturn;<a name="line.899"></a>
+<span class="sourceLineNo">900</span>  }<a name="line.900"></a>
+<span class="sourceLineNo">901</span><a name="line.901"></a>
+<span class="sourceLineNo">902</span>  private void checkCellSizeLimit(final HRegion r, final Mutation m) throws IOException {<a name="line.902"></a>
+<span class="sourceLineNo">903</span>    if (r.maxCellSize &gt; 0) {<a name="line.903"></a>
+<span class="sourceLineNo">904</span>      CellScanner cells = m.cellScanner();<a name="line.904"></a>
+<span class="sourceLineNo">905</span>      while (cells.advance()) {<a name="line.905"></a>
+<span class="sourceLineNo">906</span>        int size = PrivateCellUtil.estimatedSerializedSizeOf(cells.current());<a name="line.906"></a>
+<span class="sourceLineNo">907</span>        if (size &gt; r.maxCellSize) {<a name="line.907"></a>
+<span class="sourceLineNo">908</span>          String msg = "Cell with size " + size + " exceeds limit of " + r.maxCellSize + " bytes";<a name="line.908"></a>
+<span class="sourceLineNo">909</span>          if (LOG.isDebugEnabled()) {<a name="line.909"></a>
+<span class="sourceLineNo">910</span>            LOG.debug(msg);<a name="line.910"></a>
+<span class="sourceLineNo">911</span>          }<a name="line.911"></a>
+<span class="sourceLineNo">912</span>          throw new DoNotRetryIOException(msg);<a name="line.912"></a>
+<span class="sourceLineNo">913</span>        }<a name="line.913"></a>
+<span class="sourceLineNo">914</span>      }<a name="line.914"></a>
+<span class="sourceLineNo">915</span>    }<a name="line.915"></a>
+<span class="sourceLineNo">916</span>  }<a name="line.916"></a>
+<span class="sourceLineNo">917</span><a name="line.917"></a>
+<span class="sourceLineNo">918</span>  /**<a name="line.918"></a>
+<span class="sourceLineNo">919</span>   * Execute a list of Put/Delete mutations.<a name="line.919"></a>
+<span class="sourceLineNo">920</span>   *<a name="line.920"></a>
+<span class="sourceLineNo">921</span>   * @param builder<a name="line.921"></a>
+<span class="sourceLineNo">922</span>   * @param region<a name="line.922"></a>
+<span class="sourceLineNo">923</span>   * @param mutations<a name="line.923"></a>
+<span class="sourceLineNo">924</span>   */<a name="line.924"></a>
+<span class="sourceLineNo">925</span>  private void doBatchOp(final RegionActionResult.Builder builder, final HRegion region,<a name="line.925"></a>
+<span class="sourceLineNo">926</span>      final OperationQuota quota, final List&lt;ClientProtos.Action&gt; mutations,<a name="line.926"></a>
+<span class="sourceLineNo">927</span>      final CellScanner cells, ActivePolicyEnforcement spaceQuotaEnforcement, boolean atomic)<a name="line.927"></a>
+<span class="sourceLineNo">928</span>      throws IOException {<a name="line.928"></a>
+<span class="sourceLineNo">929</span>    Mutation[] mArray = new Mutation[mutations.size()];<a name="line.929"></a>
+<span class="sourceLineNo">930</span>    long before = EnvironmentEdgeManager.currentTime();<a name="line.930"></a>
+<span class="sourceLineNo">931</span>    boolean batchContainsPuts = false, batchContainsDelete = false;<a name="line.931"></a>
+<span class="sourceLineNo">932</span>    try {<a name="line.932"></a>
+<span class="sourceLineNo">933</span>      /** HBASE-17924<a name="line.933"></a>
+<span class="sourceLineNo">934</span>       * mutationActionMap is a map to map the relation between mutations and actions<a name="line.934"></a>
+<span class="sourceLineNo">935</span>       * since mutation array may have been reoredered.In order to return the right<a name="line.935"></a>
+<span class="sourceLineNo">936</span>       * result or exception to the corresponding actions, We need to know which action<a name="line.936"></a>
+<span class="sourceLineNo">937</span>       * is the mutation belong to. We can't sort ClientProtos.Action array, since they<a name="line.937"></a>
+<span class="sourceLineNo">938</span>       * are bonded to cellscanners.<a name="line.938"></a>
+<span class="sourceLineNo">939</span>       */<a name="line.939"></a>
+<span class="sourceLineNo">940</span>      Map&lt;Mutation, ClientProtos.Action&gt; mutationActionMap = new HashMap&lt;&gt;();<a name="line.940"></a>
+<span class="sourceLineNo">941</span>      int i = 0;<a name="line.941"></a>
+<span class="sourceLineNo">942</span>      for (ClientProtos.Action action: mutations) {<a name="line.942"></a>
+<span class="sourceLineNo">943</span>        MutationProto m = action.getMutation();<a name="line.943"></a>
+<span class="sourceLineNo">944</span>        Mutation mutation;<a name="line.944"></a>
+<span class="sourceLineNo">945</span>        if (m.getMutateType() == MutationType.PUT) {<a name="line.945"></a>
+<span class="sourceLineNo">946</span>          mutation = ProtobufUtil.toPut(m, cells);<a name="line.946"></a>
+<span class="sourceLineNo">947</span>          batchContainsPuts = true;<a name="line.947"></a>
+<span class="sourceLineNo">948</span>        } else {<a name="line.948"></a>
+<span class="sourceLineNo">949</span>          mutation = ProtobufUtil.toDelete(m, cells);<a name="line.949"></a>
+<span class="sourceLineNo">950</span>          batchContainsDelete = true;<a name="line.950"></a>
+<span class="sourceLineNo">951</span>        }<a name="line.951"></a>
+<span class="sourceLineNo">952</span>        mutationActionMap.put(mutation, action);<a name="line.952"></a>
+<span class="sourceLineNo">953</span>        mArray[i++] = mutation;<a name="line.953"></a>
+<span class="sourceLineNo">954</span>        checkCellSizeLimit(region, mutation);<a name="line.954"></a>
+<span class="sourceLineNo">955</span>        // Check if a space quota disallows this mutation<a name="line.955"></a>
+<span class="sourceLineNo">956</span>        spaceQuotaEnforcement.getPolicyEnforcement(region).check(mutation);<a name="line.956"></a>
+<span class="sourceLineNo">957</span>        quota.addMutation(mutation);<a name="line.957"></a>
+<span class="sourceLineNo">958</span>      }<a name="line.958"></a>
+<span class="sourceLineNo">959</span><a name="line.959"></a>
+<span class="sourceLineNo">960</span>      if (!region.getRegionInfo().isMetaRegion()) {<a name="line.960"></a>
+<span class="sourceLineNo">961</span>        regionServer.cacheFlusher.reclaimMemStoreMemory();<a name="line.961"></a>
+<span class="sourceLineNo">962</span>      }<a name="line.962"></a>
+<span class="sourceLineNo">963</span><a name="line.963"></a>
+<span class="sourceLineNo">964</span>      // HBASE-17924<a name="line.964"></a>
+<span class="sourceLineNo">965</span>      // Sort to improve lock efficiency for non-atomic batch of operations. If atomic (mostly<a name="line.965"></a>
+<span class="sourceLineNo">966</span>      // called from mutateRows()), order is preserved as its expected from the client<a name="line.966"></a>
+<span class="sourceLineNo">967</span>      if (!atomic) {<a name="line.967"></a>
+<span class="sourceLineNo">968</span>        Arrays.sort(mArray);<a name="line.968"></a>
+<span class="sourceLineNo">969</span>      }<a name="line.969"></a>
+<span class="sourceLineNo">970</span><a name="line.970"></a>
+<span class="sourceLineNo">971</span>      OperationStatus[] codes = region.batchMutate(mArray, atomic, HConstants.NO_NONCE,<a name="line.971"></a>
+<span class="sourceLineNo">972</span>        HConstants.NO_NONCE);<a name="line.972"></a>
+<span class="sourceLineNo">973</span>      for (i = 0; i &lt; codes.length; i++) {<a name="line.973"></a>
+<span class="sourceLineNo">974</span>        Mutation currentMutation = mArray[i];<a name="line.974"></a>
+<span class="sourceLineNo">975</span>        ClientProtos.Action currentAction = mutationActionMap.get(currentMutation);<a name="line.975"></a>
+<span class="sourceLineNo">976</span>        int index = currentAction.hasIndex() || !atomic ? currentAction.getIndex() : i;<a name="line.976"></a>
+<span class="sourceLineNo">977</span>        Exception e = null;<a name="line.977"></a>
+<span class="sourceLineNo">978</span>        switch (codes[i].getOperationStatusCode()) {<a name="line.978"></a>
+<span class="sourceLineNo">979</span>          case BAD_FAMILY:<a name="line.979"></a>
+<span class="sourceLineNo">980</span>            e = new NoSuchColumnFamilyException(codes[i].getExceptionMsg());<a name="line.980"></a>
+<span class="sourceLineNo">981</span>            builder.addResultOrException(getResultOrException(e, index));<a name="line.981"></a>
+<span class="sourceLineNo">982</span>            break;<a name="line.982"></a>
+<span class="sourceLineNo">983</span><a name="line.983"></a>
+<span class="sourceLineNo">984</span>          case SANITY_CHECK_FAILURE:<a name="line.984"></a>
+<span class="sourceLineNo">985</span>            e = new FailedSanityCheckException(codes[i].getExceptionMsg());<a name="line.985"></a>
+<span class="sourceLineNo">986</span>            builder.addResultOrException(getResultOrException(e, index));<a name="line.986"></a>
+<span class="sourceLineNo">987</span>            break;<a name="line.987"></a>
+<span class="sourceLineNo">988</span><a name="line.988"></a>
+<span class="sourceLineNo">989</span>          default:<a name="line.989"></a>
+<span class="sourceLineNo">990</span>            e = new DoNotRetryIOException(codes[i].getExceptionMsg());<a name="line.990"></a>
+<span class="sourceLineNo">991</span>            builder.addResultOrException(getResultOrException(e, index));<a name="line.991"></a>
+<span class="sourceLineNo">992</span>            break;<a name="line.992"></a>
+<span class="sourceLineNo">993</span><a name="line.993"></a>
+<span class="sourceLineNo">994</span>          case SUCCESS:<a name="line.994"></a>
+<span class="sourceLineNo">995</span>            builder.addResultOrException(getResultOrException(<a name="line.995"></a>
+<span class="sourceLineNo">996</span>              ClientProtos.Result.getDefaultInstance(), index));<a name="line.996"></a>
+<span class="sourceLineNo">997</span>            break;<a name="line.997"></a>
+<span class="sourceLineNo">998</span>        }<a name="line.998"></a>
+<span class="sourceLineNo">999</span>      }<a name="line.999"></a>
+<span class="sourceLineNo">1000</span>    } catch (IOException ie) {<a name="line.1000"></a>
+<span class="sourceLineNo">1001</span>      if (atomic) {<a name="line.1001"></a>
+<span class="sourceLineNo">1002</span>        throw ie;<a name="line.1002"></a>
 <span class="sourceLineNo">1003</span>      }<a name="line.1003"></a>
-<span class="sourceLineNo">1004</span>    }<a name="line.1004"></a>
-<span class="sourceLineNo">1005</span>    if (regionServer.metricsRegionServer != null) {<a name="line.1005"></a>
-<span class="sourceLineNo">1006</span>      long after = EnvironmentEdgeManager.currentTime();<a name="line.1006"></a>
-<span class="sourceLineNo">1007</span>      if (batchContainsPuts) {<a name="line.1007"></a>
-<span class="sourceLineNo">1008</span>        regionServer.metricsRegionServer.updatePutBatch(after - before);<a name="line.1008"></a>
-<span class="sourceLineNo">1009</span>      }<a name="line.1009"></a>
-<span class="sourceLineNo">1010</span>      if (batchContainsDelete) {<a name="line.1010"></a>
-<span class="sourceLineNo">1011</span>        regionServer.metricsRegionServer.updateDeleteBatch(after - before);<a name="line.1011"></a>
-<span class="sourceLineNo">1012</span>      }<a name="line.1012"></a>
-<span class="sourceLineNo">1013</span>    }<a name="line.1013"></a>
-<span class="sourceLineNo">1014</span>  }<a name="line.1014"></a>
-<span class="sourceLineNo">1015</span><a name="line.1015"></a>
-<span class="sourceLineNo">1016</span>  /**<a name="line.1016"></a>
-<span class="sourceLineNo">1017</span>   * Execute a list of Put/Delete mutations. The function returns OperationStatus instead of<a name="line.1017"></a>
-<span class="sourceLineNo">1018</span>   * constructing MultiResponse to save a possible loop if caller doesn't need MultiResponse.<a name="line.1018"></a>
-<span class="sourceLineNo">1019</span>   * @param region<a name="line.1019"></a>
-<span class="sourceLineNo">1020</span>   * @param mutations<a name="line.1020"></a>
-<span class="sourceLineNo">1021</span>   * @param replaySeqId<a name="line.1021"></a>
-<span class="sourceLineNo">1022</span>   * @return an array of OperationStatus which internally contains the OperationStatusCode and the<a name="line.1022"></a>
-<span class="sourceLineNo">1023</span>   *         exceptionMessage if any<a name="line.1023"></a>
-<span class="sourceLineNo">1024</span>   * @throws IOException<a name="line.1024"></a>
-<span class="sourceLineNo">1025</span>   */<a name="line.1025"></a>
-<span class="sourceLineNo">1026</span>  private OperationStatus [] doReplayBatchOp(final HRegion region,<a name="line.1026"></a>
-<span class="sourceLineNo">1027</span>      final List&lt;WALSplitter.MutationReplay&gt; mutations, long replaySeqId) throws IOException {<a name="line.1027"></a>
-<span class="sourceLineNo">1028</span>    long before = EnvironmentEdgeManager.currentTime();<a name="line.1028"></a>
-<span class="sourceLineNo">1029</span>    boolean batchContainsPuts = false, batchContainsDelete = false;<a name="line.1029"></a>
-<span class="sourceLineNo">1030</span>    try {<a name="line.1030"></a>
-<span class="sourceLineNo">1031</span>      for (Iterator&lt;WALSplitter.MutationReplay&gt; it = mutations.iterator(); it.hasNext();) {<a name="line.1031"></a>
-<span class="sourceLineNo">1032</span>        WALSplitter.MutationReplay m = it.next();<a name="line.1032"></a>
-<span class="sourceLineNo">1033</span><a name="line.1033"></a>
-<span class="sourceLineNo">1034</span>        if (m.type == MutationType.PUT) {<a name="line.1034"></a>
-<span class="sourceLineNo">1035</span>          batchContainsPuts = true;<a name="line.1035"></a>
-<span class="sourceLineNo">1036</span>        } else {<a name="line.1036"></a>
-<span class="sourceLineNo">1037</span>          batchContainsDelete = true;<a name="line.1037"></a>
-<span class="sourceLineNo">1038</span>        }<a name="line.1038"></a>
-<span class="sourceLineNo">1039</span><a name="line.1039"></a>
-<span class="sourceLineNo">1040</span>        NavigableMap&lt;byte[], List&lt;Cell&gt;&gt; map = m.mutation.getFamilyCellMap();<a name="line.1040"></a>
-<span class="sourceLineNo">1041</span>        List&lt;Cell&gt; metaCells = map.get(WALEdit.METAFAMILY);<a name="line.1041"></a>
-<span class="sourceLineNo">1042</span>        if (metaCells != null &amp;&amp; !metaCells.isEmpty()) {<a name="line.1042"></a>
-<span class="sourceLineNo">1043</span>          for (Cell metaCell : metaCells) {<a name="line.1043"></a>
-<span class="sourceLineNo">1044</span>            CompactionDescriptor compactionDesc = WALEdit.getCompaction(metaCell);<a name="line.1044"></a>
-<span class="sourceLineNo">1045</span>            boolean isDefaultReplica = RegionReplicaUtil.isDefaultReplica(region.getRegionInfo());<a name="line.1045"></a>
-<span class="sourceLineNo">1046</span>            HRegion hRegion = (HRegion)region;<a name="line.1046"></a>
-<span class="sourceLineNo">1047</span>            if (compactionDesc != null) {<a name="line.1047"></a>
-<span class="sourceLineNo">1048</span>              // replay the compaction. Remove the files from stores only if we are the primary<a name="line.1048"></a>
-<span class="sourceLineNo">1049</span>              // region replica (thus own the files)<a name="line.1049"></a>
-<span class="sourceLineNo">1050</span>              hRegion.replayWALCompactionMarker(compactionDesc, !isDefaultReplica, isDefaultReplica,<a name="line.1050"></a>
-<span class="sourceLineNo">1051</span>                replaySeqId);<a name="line.1051"></a>
-<span class="sourceLineNo">1052</span>              continue;<a name="line.1052"></a>
-<span class="sourceLineNo">1053</span>            }<a name="line.1053"></a>
-<span class="sourceLineNo">1054</span>            FlushDescriptor flushDesc = WALEdit.getFlushDescriptor(metaCell);<a name="line.1054"></a>
-<span class="sourceLineNo">1055</span>            if (flushDesc != null &amp;&amp; !isDefaultReplica) {<a name="line.1055"></a>
-<span class="sourceLineNo">1056</span>              hRegion.replayWALFlushMarker(flushDesc, replaySeqId);<a name="line.1056"></a>
+<span class="sourceLineNo">1004</span>      for (Action mutation : mutations) {<a name="line.1004"></a>
+<span class="sourceLineNo">1005</span>        builder.addResultOrException(getResultOrException(ie, mutation.getIndex()));<a name="line.1005"></a>
+<span class="sourceLineNo">1006</span>      }<a name="line.1006"></a>
+<span class="sourceLineNo">1007</span>    }<a name="line.1007"></a>
+<span class="sourceLineNo">1008</span>    if (regionServer.metricsRegionServer != null) {<a name="line.1008"></a>
+<span class="sourceLineNo">1009</span>      long after = EnvironmentEdgeManager.currentTime();<a name="line.1009"></a>
+<span class="sourceLineNo">1010</span>      if (batchContainsPuts) {<a name="line.1010"></a>
+<span class="sourceLineNo">1011</span>        regionServer.metricsRegionServer.updatePutBatch(<a name="line.1011"></a>
+<span class="sourceLineNo">1012</span>            region.getTableDescriptor().getTableName(), after - before);<a name="line.1012"></a>
+<span class="sourceLineNo">1013</span>      }<a name="line.1013"></a>
+<span class="sourceLineNo">1014</span>      if (batchContainsDelete) {<a name="line.1014"></a>
+<span class="sourceLineNo">1015</span>        regionServer.metricsRegionServer.updateDeleteBatch(<a name="line.1015"></a>
+<span class="sourceLineNo">1016</span>            region.getTableDescriptor().getTableName(), after - before);<a name="line.1016"></a>
+<span class="sourceLineNo">1017</span>      }<a name="line.1017"></a>
+<span class="sourceLineNo">1018</span>    }<a name="line.1018"></a>
+<span class="sourceLineNo">1019</span>  }<a name="line.1019"></a>
+<span class="sourceLineNo">1020</span><a name="line.1020"></a>
+<span class="sourceLineNo">1021</span>  /**<a name="line.1021"></a>
+<span class="sourceLineNo">1022</span>   * Execute a list of Put/Delete mutations. The function returns OperationStatus instead of<a name="line.1022"></a>
+<span class="sourceLineNo">1023</span>   * constructing MultiResponse to save a possible loop if caller doesn't need MultiResponse.<a name="line.1023"></a>
+<span class="sourceLineNo">1024</span>   * @param region<a name="line.1024"></a>
+<span class="sourceLineNo">1025</span>   * @param mutations<a name="line.1025"></a>
+<span class="sourceLineNo">1026</span>   * @param replaySeqId<a name="line.1026"></a>
+<span class="sourceLineNo">1027</span>   * @return an array of OperationStatus which internally contains the OperationStatusCode and the<a name="line.1027"></a>
+<span class="sourceLineNo">1028</span>   *         exceptionMessage if any<a name="line.1028"></a>
+<span class="sourceLineNo">1029</span>   * @throws IOException<a name="line.1029"></a>
+<span class="sourceLineNo">1030</span>   */<a name="line.1030"></a>
+<span class="sourceLineNo">1031</span>  private OperationStatus [] doReplayBatchOp(final HRegion region,<a name="line.1031"></a>
+<span class="sourceLineNo">1032</span>      final List&lt;WALSplitter.MutationReplay&gt; mutations, long replaySeqId) throws IOException {<a name="line.1032"></a>
+<span class="sourceLineNo">1033</span>    long before = EnvironmentEdgeManager.currentTime();<a name="line.1033"></a>
+<span class="sourceLineNo">1034</span>    boolean batchContainsPuts = false, batchContainsDelete = false;<a name="line.1034"></a>
+<span class="sourceLineNo">1035</span>    try {<a name="line.1035"></a>
+<span class="sourceLineNo">1036</span>      for (Iterator&lt;WALSplitter.MutationReplay&gt; it = mutations.iterator(); it.hasNext();) {<a name="line.1036"></a>
+<span class="sourceLineNo">1037</span>        WALSplitter.MutationReplay m = it.next();<a name="line.1037"></a>
+<span class="sourceLineNo">1038</span><a name="line.1038"></a>
+<span class="sourceLineNo">1039</span>        if (m.type == MutationType.PUT) {<a name="line.1039"></a>
+<span class="sourceLineNo">1040</span>          batchContainsPuts = true;<a name="line.1040"></a>
+<span class="sourceLineNo">1041</span>        } else {<a name="line.1041"></a>
+<span class="sourceLineNo">1042</span>          batchContainsDelete = true;<a name="line.1042"></a>
+<span class="sourceLineNo">1043</span>        }<a name="line.1043"></a>
+<span class="sourceLineNo">1044</span><a name="line.1044"></a>
+<span class="sourceLineNo">1045</span>        NavigableMap&lt;byte[], List&lt;Cell&gt;&gt; map = m.mutation.getFamilyCellMap();<a name="line.1045"></a>
+<span class="sourceLineNo">1046</span>        List&lt;Cell&gt; metaCells = map.get(WALEdit.METAFAMILY);<a name="line.1046"></a>
+<span class="sourceLineNo">1047</span>        if (metaCells != null &amp;&amp; !metaCells.isEmpty()) {<a name="line.1047"></a>
+<span class="sourceLineNo">1048</span>          for (Cell metaCell : metaCells) {<a name="line.1048"></a>
+<span class="sourceLineNo">1049</span>            CompactionDescriptor compactionDesc = WALEdit.getCompaction(metaCell);<a name="line.1049"></a>
+<span class="sourceLineNo">1050</span>            boolean isDefaultReplica = RegionReplicaUtil.isDefaultReplica(region.getRegionInfo());<a name="line.1050"></a>
+<span class="sourceLineNo">1051</span>            HRegion hRegion = (HRegion)region;<a name="line.1051"></a>
+<span class="sourceLineNo">1052</span>            if (compactionDesc != null) {<a name="line.1052"></a>
+<span class="sourceLineNo">1053</span>              // replay the compaction. Remove the files from stores only if we are the primary<a name="line.1053"></a>
+<span class="sourceLineNo">1054</span>              // region replica (thus own the files)<a name="line.1054"></a>
+<span class="sourceLineNo">1055</span>              hRegion.replayWALCompactionMarker(compactionDesc, !isDefaultReplica, isDefaultReplica,<a name="line.1055"></a>
+<span class="sourceLineNo">1056</span>                replaySeqId);<a name="line.1056"></a>
 <span class="sourceLineNo">1057</span>              continue;<a name="line.1057"></a>
 <span class="sourceLineNo">1058</span>            }<a name="line.1058"></a>
-<span class="sourceLineNo">1059</span>            RegionEventDescriptor regionEvent = WALEdit.getRegionEventDescriptor(metaCell);<a name="line.1059"></a>
-<span class="sourceLineNo">1060</span>            if (regionEvent != null &amp;&amp; !isDefaultReplica) {<a name="line.1060"></a>
-<span class="sourceLineNo">1061</span>              hRegion.replayWALRegionEventMarker(regionEvent);<a name="line.1061"></a>
+<span class="sourceLineNo">1059</span>            FlushDescriptor flushDesc = WALEdit.getFlushDescriptor(metaCell);<a name="line.1059"></a>
+<span class="sourceLineNo">1060</span>            if (flushDesc != null &amp;&amp; !isDefaultReplica) {<a name="line.1060"></a>
+<span class="sourceLineNo">1061</span>              hRegion.replayWALFlushMarker(flushDesc, replaySeqId);<a name="line.1061"></a>
 <span class="sourceLineNo">1062</span>              continue;<a name="line.1062"></a>
 <span class="sourceLineNo">1063</span>            }<a name="line.1063"></a>
-<span class="sourceLineNo">1064</span>            BulkLoadDescriptor bulkLoadEvent = WALEdit.getBulkLoadDescriptor(metaCell);<a name="line.1064"></a>
-<span class="sourceLineNo">1065</span>            if (bulkLoadEvent != null) {<a name="line.1065"></a>
-<span class="sourceLineNo">1066</span>              hRegion.replayWALBulkLoadEventMarker(bulkLoadEvent);<a name="line.1066"></a>
+<span class="sourceLineNo">1064</span>            RegionEventDescriptor regionEvent = WALEdit.getRegionEventDescriptor(metaCell);<a name="line.1064"></a>
+<span class="sourceLineNo">1065</span>            if (regionEvent != null &amp;&amp; !isDefaultReplica) {<a name="line.1065"></a>
+<span class="sourceLineNo">1066</span>              hRegion.replayWALRegionEventMarker(regionEvent);<a name="line.1066"></a>
 <span class="sourceLineNo">1067</span>              continue;<a name="line.1067"></a>
 <span class="sourceLineNo">1068</span>            }<a name="line.1068"></a>
-<span class="sourceLineNo">1069</span>          }<a name="line.1069"></a>
-<span class="sourceLineNo">1070</span>          it.remove();<a name="line.1070"></a>
-<span class="sourceLineNo">1071</span>        }<a name="line.1071"></a>
-<span class="sourceLineNo">1072</span>      }<a name="line.1072"></a>
-<span class="sourceLineNo">1073</span>      requestCount.increment();<a name="line.1073"></a>
-<span class="sourceLineNo">1074</span>      if (!region.getRegionInfo().isMetaRegion()) {<a name="line.1074"></a>
-<span class="sourceLineNo">1075</span>        regionServer.cacheFlusher.reclaimMemStoreMemory();<a name="line.1075"></a>
-<span class="sourceLineNo">1076</span>      }<a name="line.1076"></a>
-<span class="sourceLineNo">1077</span>      return region.batchReplay(mutations.toArray(<a name="line.1077"></a>
-<span class="sourceLineNo">1078</span>        new WALSplitter.MutationReplay[mutations.size()]), replaySeqId);<a name="line.1078"></a>
-<span class="sourceLineNo">1079</span>    } finally {<a name="line.1079"></a>
-<span class="sourceLineNo">1080</span>      if (regionServer.metricsRegionServer != null) {<a name="line.1080"></a>
-<span class="sourceLineNo">1081</span>        long after = EnvironmentEdgeManager.currentTime();<a name="line.1081"></a>
-<span class="sourceLineNo">1082</span>          if (batchContainsPuts) {<a name="line.1082"></a>
-<span class="sourceLineNo">1083</span>          regionServer.metricsRegionServer.updatePutBatch(after - before);<a name="line.1083"></a>
-<span class="sourceLineNo">1084</span>        }<a name="line.1084"></a>
-<span class="sourceLineNo">1085</span>        if (batchContainsDelete) {<a name="line.1085"></a>
-<span class="sourceLineNo">1086</span>          regionServer.metricsRegionServer.updateDeleteBatch(after - before);<a name="line.1086"></a>
-<span class="sourceLineNo">1087</span>        }<a name="line.1087"></a>
-<span class="sourceLineNo">1088</span>      }<a name="line.1088"></a>
-<span class="sourceLineNo">1089</span>    }<a name="line.1089"></a>
-<span class="sourceLineNo">1090</span>  }<a name="line.1090"></a>
-<span class="sourceLineNo">1091</span><a name="line.1091"></a>
-<span class="sourceLineNo">1092</span>  private void closeAllScanners() {<a name="line.1092"></a>
-<span class="sourceLineNo">1093</span>    // Close any outstanding scanners. Means they'll get an UnknownScanner<a name="line.1093"></a>
-<span class="sourceLineNo">1094</span>    // exception next time they come in.<a name="line.1094"></a>
-<span class="sourceLineNo">1095</span>    for (Map.Entry&lt;String, RegionScannerHolder&gt; e : scanners.entrySet()) {<a name="line.1095"></a>
-<span class="sourceLineNo">1096</span>      try {<a name="line.1096"></a>
-<span class="sourceLineNo">1097</span>        e.getValue().s.close();<a name="line.1097"></a>
-<span class="sourceLineNo">1098</span>      } catch (IOException ioe) {<a name="line.1098"></a>
-<span class="sourceLineNo">1099</span>        LOG.warn("Closing scanner " + e.getKey(), ioe);<a name="line.1099"></a>
-<span class="sourceLineNo">1100</span>      }<a name="line.1100"></a>
-<span class="sourceLineNo">1101</span>    }<a name="line.1101"></a>
-<span class="sourceLineNo">1102</span>  }<a name="line.1102"></a>
-<span class="sourceLineNo">1103</span><a name="line.1103"></a>
-<span class="sourceLineNo">1104</span>  // Exposed for testing<a name="line.1104"></a>
-<span class="sourceLineNo">1105</span>  interface LogDelegate {<a name="line.1105"></a>
-<span class="sourceLineNo">1106</span>    void logBatchWarning(String firstRegionName, int sum, int rowSizeWarnThresh

<TRUNCATED>

[23/32] hbase-site git commit: Published site at .

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/29b27596/devapidocs/org/apache/hadoop/hbase/regionserver/RSRpcServices.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/regionserver/RSRpcServices.html b/devapidocs/org/apache/hadoop/hbase/regionserver/RSRpcServices.html
index e3d037c..4908187 100644
--- a/devapidocs/org/apache/hadoop/hbase/regionserver/RSRpcServices.html
+++ b/devapidocs/org/apache/hadoop/hbase/regionserver/RSRpcServices.html
@@ -1189,7 +1189,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/ipc/HBaseRPCErrorHand
 <ul class="blockList">
 <li class="blockList">
 <h4>DEFAULT_LOG_DELEGATE</h4>
-<pre>private static&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/RSRpcServices.LogDelegate.html" title="interface in org.apache.hadoop.hbase.regionserver">RSRpcServices.LogDelegate</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.1109">DEFAULT_LOG_DELEGATE</a></pre>
+<pre>private static&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/RSRpcServices.LogDelegate.html" title="interface in org.apache.hadoop.hbase.regionserver">RSRpcServices.LogDelegate</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.1116">DEFAULT_LOG_DELEGATE</a></pre>
 </li>
 </ul>
 <a name="ld">
@@ -1198,7 +1198,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/ipc/HBaseRPCErrorHand
 <ul class="blockList">
 <li class="blockList">
 <h4>ld</h4>
-<pre>private final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/RSRpcServices.LogDelegate.html" title="interface in org.apache.hadoop.hbase.regionserver">RSRpcServices.LogDelegate</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.1122">ld</a></pre>
+<pre>private final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/RSRpcServices.LogDelegate.html" title="interface in org.apache.hadoop.hbase.regionserver">RSRpcServices.LogDelegate</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.1129">ld</a></pre>
 </li>
 </ul>
 <a name="SCANNER_ALREADY_CLOSED">
@@ -1208,7 +1208,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/ipc/HBaseRPCErrorHand
 <li class="blockList">
 <h4>SCANNER_ALREADY_CLOSED</h4>
 <pre><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Deprecated.html?is-external=true" title="class or interface in java.lang">@Deprecated</a>
-private static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.2784">SCANNER_ALREADY_CLOSED</a></pre>
+private static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.2796">SCANNER_ALREADY_CLOSED</a></pre>
 <div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
 </li>
 </ul>
@@ -1226,7 +1226,7 @@ private static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java
 <ul class="blockList">
 <li class="blockList">
 <h4>RSRpcServices</h4>
-<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.1124">RSRpcServices</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html" title="class in org.apache.hadoop.hbase.regionserver">HRegionServer</a>&nbsp;rs)
+<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.1131">RSRpcServices</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html" title="class in org.apache.hadoop.hbase.regionserver">HRegionServer</a>&nbsp;rs)
               throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -1240,7 +1240,7 @@ private static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java
 <ul class="blockListLast">
 <li class="blockList">
 <h4>RSRpcServices</h4>
-<pre><a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.1129">RSRpcServices</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html" title="class in org.apache.hadoop.hbase.regionserver">HRegionServer</a>&nbsp;rs,
+<pre><a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.1136">RSRpcServices</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html" title="class in org.apache.hadoop.hbase.regionserver">HRegionServer</a>&nbsp;rs,
               <a href="../../../../../org/apache/hadoop/hbase/regionserver/RSRpcServices.LogDelegate.html" title="interface in org.apache.hadoop.hbase.regionserver">RSRpcServices.LogDelegate</a>&nbsp;ld)
        throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
@@ -1435,7 +1435,7 @@ private static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java
 <ul class="blockList">
 <li class="blockList">
 <h4>increment</h4>
-<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Result.html" title="class in org.apache.hadoop.hbase.client">Result</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.676">increment</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion</a>&nbsp;region,
+<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Result.html" title="class in org.apache.hadoop.hbase.client">Result</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.677">increment</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion</a>&nbsp;region,
                          <a href="../../../../../org/apache/hadoop/hbase/quotas/OperationQuota.html" title="interface in org.apache.hadoop.hbase.quotas">OperationQuota</a>&nbsp;quota,
                          org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.MutationProto&nbsp;mutation,
                          <a href="../../../../../org/apache/hadoop/hbase/CellScanner.html" title="interface in org.apache.hadoop.hbase">CellScanner</a>&nbsp;cells,
@@ -1460,7 +1460,7 @@ private static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java
 <ul class="blockList">
 <li class="blockList">
 <h4>doNonAtomicRegionMutation</h4>
-<pre>private&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/CellScannable.html" title="interface in org.apache.hadoop.hbase">CellScannable</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.728">doNonAtomicRegionMutation</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion</a>&nbsp;region,
+<pre>private&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/CellScannable.html" title="interface in org.apache.hadoop.hbase">CellScannable</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.730">doNonAtomicRegionMutation</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion</a>&nbsp;region,
                                                       <a href="../../../../../org/apache/hadoop/hbase/quotas/OperationQuota.html" title="interface in org.apache.hadoop.hbase.quotas">OperationQuota</a>&nbsp;quota,
                                                       org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.RegionAction&nbsp;actions,
                                                       <a href="../../../../../org/apache/hadoop/hbase/CellScanner.html" title="interface in org.apache.hadoop.hbase">CellScanner</a>&nbsp;cellScanner,
@@ -1489,7 +1489,7 @@ private static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java
 <ul class="blockList">
 <li class="blockList">
 <h4>checkCellSizeLimit</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.899">checkCellSizeLimit</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion</a>&nbsp;r,
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.902">checkCellSizeLimit</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion</a>&nbsp;r,
                                 <a href="../../../../../org/apache/hadoop/hbase/client/Mutation.html" title="class in org.apache.hadoop.hbase.client">Mutation</a>&nbsp;m)
                          throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
@@ -1504,7 +1504,7 @@ private static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java
 <ul class="blockList">
 <li class="blockList">
 <h4>doBatchOp</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.922">doBatchOp</a>(org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.RegionActionResult.Builder&nbsp;builder,
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.925">doBatchOp</a>(org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.RegionActionResult.Builder&nbsp;builder,
                        <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion</a>&nbsp;region,
                        <a href="../../../../../org/apache/hadoop/hbase/quotas/OperationQuota.html" title="interface in org.apache.hadoop.hbase.quotas">OperationQuota</a>&nbsp;quota,
                        <a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.Action&gt;&nbsp;mutations,
@@ -1529,7 +1529,7 @@ private static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java
 <ul class="blockList">
 <li class="blockList">
 <h4>doReplayBatchOp</h4>
-<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/OperationStatus.html" title="class in org.apache.hadoop.hbase.regionserver">OperationStatus</a>[]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.1026">doReplayBatchOp</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion</a>&nbsp;region,
+<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/OperationStatus.html" title="class in org.apache.hadoop.hbase.regionserver">OperationStatus</a>[]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.1031">doReplayBatchOp</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion</a>&nbsp;region,
                                           <a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/wal/WALSplitter.MutationReplay.html" title="class in org.apache.hadoop.hbase.wal">WALSplitter.MutationReplay</a>&gt;&nbsp;mutations,
                                           long&nbsp;replaySeqId)
                                    throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
@@ -1554,7 +1554,7 @@ private static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java
 <ul class="blockList">
 <li class="blockList">
 <h4>closeAllScanners</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.1092">closeAllScanners</a>()</pre>
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.1099">closeAllScanners</a>()</pre>
 </li>
 </ul>
 <a name="onConfigurationChange-org.apache.hadoop.conf.Configuration-">
@@ -1563,7 +1563,7 @@ private static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java
 <ul class="blockList">
 <li class="blockList">
 <h4>onConfigurationChange</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.1207">onConfigurationChange</a>(org.apache.hadoop.conf.Configuration&nbsp;newConf)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.1214">onConfigurationChange</a>(org.apache.hadoop.conf.Configuration&nbsp;newConf)</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/conf/ConfigurationObserver.html#onConfigurationChange-org.apache.hadoop.conf.Configuration-">ConfigurationObserver</a></code></span></div>
 <div class="block">This method would be called by the <a href="../../../../../org/apache/hadoop/hbase/conf/ConfigurationManager.html" title="class in org.apache.hadoop.hbase.conf"><code>ConfigurationManager</code></a>
  object when the <code>Configuration</code> object is reloaded from disk.</div>
@@ -1579,7 +1579,7 @@ private static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java
 <ul class="blockList">
 <li class="blockList">
 <h4>createPriority</h4>
-<pre>protected&nbsp;<a href="../../../../../org/apache/hadoop/hbase/ipc/PriorityFunction.html" title="interface in org.apache.hadoop.hbase.ipc">PriorityFunction</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.1213">createPriority</a>()</pre>
+<pre>protected&nbsp;<a href="../../../../../org/apache/hadoop/hbase/ipc/PriorityFunction.html" title="interface in org.apache.hadoop.hbase.ipc">PriorityFunction</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.1220">createPriority</a>()</pre>
 </li>
 </ul>
 <a name="getHostname-org.apache.hadoop.conf.Configuration-boolean-">
@@ -1588,7 +1588,7 @@ private static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java
 <ul class="blockList">
 <li class="blockList">
 <h4>getHostname</h4>
-<pre>public static&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.1217">getHostname</a>(org.apache.hadoop.conf.Configuration&nbsp;conf,
+<pre>public static&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.1224">getHostname</a>(org.apache.hadoop.conf.Configuration&nbsp;conf,
                                  boolean&nbsp;isMaster)
                           throws <a href="http://docs.oracle.com/javase/8/docs/api/java/net/UnknownHostException.html?is-external=true" title="class or interface in java.net">UnknownHostException</a></pre>
 <dl>
@@ -1603,7 +1603,7 @@ private static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java
 <ul class="blockList">
 <li class="blockList">
 <h4>getScannersCount</h4>
-<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.1233">getScannersCount</a>()</pre>
+<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.1240">getScannersCount</a>()</pre>
 </li>
 </ul>
 <a name="getScanner-long-">
@@ -1612,7 +1612,7 @@ private static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java
 <ul class="blockList">
 <li class="blockList">
 <h4>getScanner</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionScanner.html" title="interface in org.apache.hadoop.hbase.regionserver">RegionScanner</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.1238">getScanner</a>(long&nbsp;scannerId)</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionScanner.html" title="interface in org.apache.hadoop.hbase.regionserver">RegionScanner</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.1245">getScanner</a>(long&nbsp;scannerId)</pre>
 </li>
 </ul>
 <a name="getScanDetailsWithId-long-">
@@ -1621,7 +1621,7 @@ private static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java
 <ul class="blockList">
 <li class="blockList">
 <h4>getScanDetailsWithId</h4>
-<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.1247">getScanDetailsWithId</a>(long&nbsp;scannerId)</pre>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.1254">getScanDetailsWithId</a>(long&nbsp;scannerId)</pre>
 </li>
 </ul>
 <a name="getScannerVirtualTime-long-">
@@ -1630,7 +1630,7 @@ private static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java
 <ul class="blockList">
 <li class="blockList">
 <h4>getScannerVirtualTime</h4>
-<pre>long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.1262">getScannerVirtualTime</a>(long&nbsp;scannerId)</pre>
+<pre>long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.1269">getScannerVirtualTime</a>(long&nbsp;scannerId)</pre>
 <div class="block">Get the vtime associated with the scanner.
  Currently the vtime is the number of "next" calls.</div>
 </li>
@@ -1641,7 +1641,7 @@ private static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java
 <ul class="blockList">
 <li class="blockList">
 <h4>addSize</h4>
-<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.1275">addSize</a>(<a href="../../../../../org/apache/hadoop/hbase/ipc/RpcCallContext.html" title="interface in org.apache.hadoop.hbase.ipc">RpcCallContext</a>&nbsp;context,
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.1282">addSize</a>(<a href="../../../../../org/apache/hadoop/hbase/ipc/RpcCallContext.html" title="interface in org.apache.hadoop.hbase.ipc">RpcCallContext</a>&nbsp;context,
                <a href="../../../../../org/apache/hadoop/hbase/client/Result.html" title="class in org.apache.hadoop.hbase.client">Result</a>&nbsp;r,
                <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;lastBlock)</pre>
 <div class="block">Method to account for the size of retained cells and retained data blocks.</div>
@@ -1657,7 +1657,7 @@ private static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java
 <ul class="blockList">
 <li class="blockList">
 <h4>addScanner</h4>
-<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/RSRpcServices.RegionScannerHolder.html" title="class in org.apache.hadoop.hbase.regionserver">RSRpcServices.RegionScannerHolder</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.1309">addScanner</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;scannerName,
+<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/RSRpcServices.RegionScannerHolder.html" title="class in org.apache.hadoop.hbase.regionserver">RSRpcServices.RegionScannerHolder</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.1316">addScanner</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;scannerName,
                                                      <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionScanner.html" title="interface in org.apache.hadoop.hbase.regionserver">RegionScanner</a>&nbsp;s,
                                                      <a href="../../../../../org/apache/hadoop/hbase/regionserver/Shipper.html" title="interface in org.apache.hadoop.hbase.regionserver">Shipper</a>&nbsp;shipper,
                                                      <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion</a>&nbsp;r,
@@ -1675,7 +1675,7 @@ private static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java
 <ul class="blockList">
 <li class="blockList">
 <h4>getRegion</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.1337">getRegion</a>(org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.RegionSpecifier&nbsp;regionSpecifier)
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.1344">getRegion</a>(org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.RegionSpecifier&nbsp;regionSpecifier)
                   throws <a href="http://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">Find the HRegion based on a region specifier</div>
 <dl>
@@ -1695,7 +1695,7 @@ private static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java
 <ul class="blockList">
 <li class="blockList">
 <h4>getRegions</h4>
-<pre>private&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.1350">getRegions</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.RegionSpecifier&gt;&nbsp;regionSpecifiers)
+<pre>private&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.1357">getRegions</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.RegionSpecifier&gt;&nbsp;regionSpecifiers)
                           throws <a href="http://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">Find the List of HRegions based on a list of region specifiers</div>
 <dl>
@@ -1715,7 +1715,7 @@ private static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java
 <ul class="blockList">
 <li class="blockList">
 <h4>getPriority</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/ipc/PriorityFunction.html" title="interface in org.apache.hadoop.hbase.ipc">PriorityFunction</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.1360">getPriority</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/ipc/PriorityFunction.html" title="interface in org.apache.hadoop.hbase.ipc">PriorityFunction</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.1367">getPriority</a>()</pre>
 </li>
 </ul>
 <a name="getConfiguration--">
@@ -1724,7 +1724,7 @@ private static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java
 <ul class="blockList">
 <li class="blockList">
 <h4>getConfiguration</h4>
-<pre>public&nbsp;org.apache.hadoop.conf.Configuration&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.1365">getConfiguration</a>()</pre>
+<pre>public&nbsp;org.apache.hadoop.conf.Configuration&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.1372">getConfiguration</a>()</pre>
 </li>
 </ul>
 <a name="getRpcQuotaManager--">
@@ -1733,7 +1733,7 @@ private static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java
 <ul class="blockList">
 <li class="blockList">
 <h4>getRpcQuotaManager</h4>
-<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/quotas/RegionServerRpcQuotaManager.html" title="class in org.apache.hadoop.hbase.quotas">RegionServerRpcQuotaManager</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.1369">getRpcQuotaManager</a>()</pre>
+<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/quotas/RegionServerRpcQuotaManager.html" title="class in org.apache.hadoop.hbase.quotas">RegionServerRpcQuotaManager</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.1376">getRpcQuotaManager</a>()</pre>
 </li>
 </ul>
 <a name="getSpaceQuotaManager--">
@@ -1742,7 +1742,7 @@ private static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java
 <ul class="blockList">
 <li class="blockList">
 <h4>getSpaceQuotaManager</h4>
-<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/quotas/RegionServerSpaceQuotaManager.html" title="class in org.apache.hadoop.hbase.quotas">RegionServerSpaceQuotaManager</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.1373">getSpaceQuotaManager</a>()</pre>
+<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/quotas/RegionServerSpaceQuotaManager.html" title="class in org.apache.hadoop.hbase.quotas">RegionServerSpaceQuotaManager</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.1380">getSpaceQuotaManager</a>()</pre>
 </li>
 </ul>
 <a name="start--">
@@ -1751,7 +1751,7 @@ private static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java
 <ul class="blockList">
 <li class="blockList">
 <h4>start</h4>
-<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.1377">start</a>()</pre>
+<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.1384">start</a>()</pre>
 </li>
 </ul>
 <a name="stop--">
@@ -1760,7 +1760,7 @@ private static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java
 <ul class="blockList">
 <li class="blockList">
 <h4>stop</h4>
-<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.1382">stop</a>()</pre>
+<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.1389">stop</a>()</pre>
 </li>
 </ul>
 <a name="checkOpen--">
@@ -1769,7 +1769,7 @@ private static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java
 <ul class="blockList">
 <li class="blockList">
 <h4>checkOpen</h4>
-<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.1392">checkOpen</a>()
+<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.1399">checkOpen</a>()
                   throws <a href="http://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">Called to verify that this server is up and running.</div>
 <dl>
@@ -1784,7 +1784,7 @@ private static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java
 <ul class="blockList">
 <li class="blockList">
 <h4>getServices</h4>
-<pre>protected&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.BlockingServiceAndInterface.html" title="class in org.apache.hadoop.hbase.ipc">RpcServer.BlockingServiceAndInterface</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.1416">getServices</a>()</pre>
+<pre>protected&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServer.BlockingServiceAndInterface.html" title="class in org.apache.hadoop.hbase.ipc">RpcServer.BlockingServiceAndInterface</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.1423">getServices</a>()</pre>
 <div class="block">By default, put up an Admin and a Client Service.
  Set booleans <code>hbase.regionserver.admin.executorService</code> and
  <code>hbase.regionserver.client.executorService</code> if you want to enable/disable services.
@@ -1802,7 +1802,7 @@ private static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java
 <ul class="blockList">
 <li class="blockList">
 <h4>getSocketAddress</h4>
-<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/net/InetSocketAddress.html?is-external=true" title="class or interface in java.net">InetSocketAddress</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.1436">getSocketAddress</a>()</pre>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/net/InetSocketAddress.html?is-external=true" title="class or interface in java.net">InetSocketAddress</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.1443">getSocketAddress</a>()</pre>
 </li>
 </ul>
 <a name="getPriority-org.apache.hadoop.hbase.shaded.protobuf.generated.RPCProtos.RequestHeader-org.apache.hadoop.hbase.shaded.com.google.protobuf.Message-org.apache.hadoop.hbase.security.User-">
@@ -1811,7 +1811,7 @@ private static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java
 <ul class="blockList">
 <li class="blockList">
 <h4>getPriority</h4>
-<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.1441">getPriority</a>(org.apache.hadoop.hbase.shaded.protobuf.generated.RPCProtos.RequestHeader&nbsp;header,
+<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.1448">getPriority</a>(org.apache.hadoop.hbase.shaded.protobuf.generated.RPCProtos.RequestHeader&nbsp;header,
                        org.apache.hadoop.hbase.shaded.com.google.protobuf.Message&nbsp;param,
                        <a href="../../../../../org/apache/hadoop/hbase/security/User.html" title="class in org.apache.hadoop.hbase.security">User</a>&nbsp;user)</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/ipc/PriorityFunction.html#getPriority-org.apache.hadoop.hbase.shaded.protobuf.generated.RPCProtos.RequestHeader-org.apache.hadoop.hbase.shaded.com.google.protobuf.Message-org.apache.hadoop.hbase.security.User-">PriorityFunction</a></code></span></div>
@@ -1831,7 +1831,7 @@ private static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java
 <ul class="blockList">
 <li class="blockList">
 <h4>getDeadline</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.1446">getDeadline</a>(org.apache.hadoop.hbase.shaded.protobuf.generated.RPCProtos.RequestHeader&nbsp;header,
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.1453">getDeadline</a>(org.apache.hadoop.hbase.shaded.protobuf.generated.RPCProtos.RequestHeader&nbsp;header,
                         org.apache.hadoop.hbase.shaded.com.google.protobuf.Message&nbsp;param)</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/ipc/PriorityFunction.html#getDeadline-org.apache.hadoop.hbase.shaded.protobuf.generated.RPCProtos.RequestHeader-org.apache.hadoop.hbase.shaded.com.google.protobuf.Message-">PriorityFunction</a></code></span></div>
 <div class="block">Returns the deadline of the specified request.
@@ -1850,7 +1850,7 @@ private static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java
 <ul class="blockList">
 <li class="blockList">
 <h4>checkOOME</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.1458">checkOOME</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;e)</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.1465">checkOOME</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;e)</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/ipc/HBaseRPCErrorHandler.html#checkOOME-java.lang.Throwable-">HBaseRPCErrorHandler</a></code></span></div>
 <div class="block">Take actions on the event of an OutOfMemoryError.</div>
 <dl>
@@ -1869,7 +1869,7 @@ private static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java
 <ul class="blockList">
 <li class="blockList">
 <h4>exitIfOOME</h4>
-<pre>public static&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.1462">exitIfOOME</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;e)</pre>
+<pre>public static&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.1469">exitIfOOME</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;e)</pre>
 </li>
 </ul>
 <a name="closeRegion-org.apache.hadoop.hbase.shaded.com.google.protobuf.RpcController-org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.CloseRegionRequest-">
@@ -1878,7 +1878,7 @@ private static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java
 <ul class="blockList">
 <li class="blockList">
 <h4>closeRegion</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.CloseRegionResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.1490">closeRegion</a>(org.apache.hadoop.hbase.shaded.com.google.protobuf.RpcController&nbsp;controller,
+<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.CloseRegionResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.1497">closeRegion</a>(org.apache.hadoop.hbase.shaded.com.google.protobuf.RpcController&nbsp;controller,
                                                                                                      org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.CloseRegionRequest&nbsp;request)
                                                                                               throws org.apache.hadoop.hbase.shaded.com.google.protobuf.ServiceException</pre>
 <div class="block">Close a region on the region server.</div>
@@ -1899,7 +1899,7 @@ private static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java
 <ul class="blockList">
 <li class="blockList">
 <h4>compactRegion</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.CompactRegionResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.1531">compactRegion</a>(org.apache.hadoop.hbase.shaded.com.google.protobuf.RpcController&nbsp;controller,
+<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.CompactRegionResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.1538">compactRegion</a>(org.apache.hadoop.hbase.shaded.com.google.protobuf.RpcController&nbsp;controller,
                                                                                                          org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.CompactRegionRequest&nbsp;request)
                                                                                                   throws org.apache.hadoop.hbase.shaded.com.google.protobuf.ServiceException</pre>
 <div class="block">Compact a region on the region server.</div>
@@ -1920,7 +1920,7 @@ private static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java
 <ul class="blockList">
 <li class="blockList">
 <h4>flushRegion</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.FlushRegionResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.1578">flushRegion</a>(org.apache.hadoop.hbase.shaded.com.google.protobuf.RpcController&nbsp;controller,
+<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.FlushRegionResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.1585">flushRegion</a>(org.apache.hadoop.hbase.shaded.com.google.protobuf.RpcController&nbsp;controller,
                                                                                                      org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.FlushRegionRequest&nbsp;request)
                                                                                               throws org.apache.hadoop.hbase.shaded.com.google.protobuf.ServiceException</pre>
 <div class="block">Flush a region on the region server.</div>
@@ -1941,7 +1941,7 @@ private static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java
 <ul class="blockList">
 <li class="blockList">
 <h4>getOnlineRegion</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.GetOnlineRegionResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.1620">getOnlineRegion</a>(org.apache.hadoop.hbase.shaded.com.google.protobuf.RpcController&nbsp;controller,
+<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.GetOnlineRegionResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.1627">getOnlineRegion</a>(org.apache.hadoop.hbase.shaded.com.google.protobuf.RpcController&nbsp;controller,
                                                                                                              org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.GetOnlineRegionRequest&nbsp;request)
                                                                                                       throws org.apache.hadoop.hbase.shaded.com.google.protobuf.ServiceException</pre>
 <dl>
@@ -1958,7 +1958,7 @@ private static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java
 <ul class="blockList">
 <li class="blockList">
 <h4>getRegionInfo</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.GetRegionInfoResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.1639">getRegionInfo</a>(org.apache.hadoop.hbase.shaded.com.google.protobuf.RpcController&nbsp;controller,
+<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.GetRegionInfoResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.1646">getRegionInfo</a>(org.apache.hadoop.hbase.shaded.com.google.protobuf.RpcController&nbsp;controller,
                                                                                                          org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.GetRegionInfoRequest&nbsp;request)
                                                                                                   throws org.apache.hadoop.hbase.shaded.com.google.protobuf.ServiceException</pre>
 <dl>
@@ -1975,7 +1975,7 @@ private static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java
 <ul class="blockList">
 <li class="blockList">
 <h4>getRegionLoad</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.GetRegionLoadResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.1678">getRegionLoad</a>(org.apache.hadoop.hbase.shaded.com.google.protobuf.RpcController&nbsp;controller,
+<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.GetRegionLoadResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.1685">getRegionLoad</a>(org.apache.hadoop.hbase.shaded.com.google.protobuf.RpcController&nbsp;controller,
                                                                                                          org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.GetRegionLoadRequest&nbsp;request)
                                                                                                   throws org.apache.hadoop.hbase.shaded.com.google.protobuf.ServiceException</pre>
 <dl>
@@ -1992,7 +1992,7 @@ private static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java
 <ul class="blockList">
 <li class="blockList">
 <h4>clearCompactionQueues</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.ClearCompactionQueuesResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.1706">clearCompactionQueues</a>(org.apache.hadoop.hbase.shaded.com.google.protobuf.RpcController&nbsp;controller,
+<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.ClearCompactionQueuesResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.1713">clearCompactionQueues</a>(org.apache.hadoop.hbase.shaded.com.google.protobuf.RpcController&nbsp;controller,
                                                                                                                          org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.ClearCompactionQueuesRequest&nbsp;request)
                                                                                                                   throws org.apache.hadoop.hbase.shaded.com.google.protobuf.ServiceException</pre>
 <dl>
@@ -2009,7 +2009,7 @@ private static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java
 <ul class="blockList">
 <li class="blockList">
 <h4>getServerInfo</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.GetServerInfoResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.1751">getServerInfo</a>(org.apache.hadoop.hbase.shaded.com.google.protobuf.RpcController&nbsp;controller,
+<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.GetServerInfoResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.1758">getServerInfo</a>(org.apache.hadoop.hbase.shaded.com.google.protobuf.RpcController&nbsp;controller,
                                                                                                          org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.GetServerInfoRequest&nbsp;request)
                                                                                                   throws org.apache.hadoop.hbase.shaded.com.google.protobuf.ServiceException</pre>
 <div class="block">Get some information of the region server.</div>
@@ -2030,7 +2030,7 @@ private static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java
 <ul class="blockList">
 <li class="blockList">
 <h4>getStoreFile</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.GetStoreFileResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.1765">getStoreFile</a>(org.apache.hadoop.hbase.shaded.com.google.protobuf.RpcController&nbsp;controller,
+<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.GetStoreFileResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.1772">getStoreFile</a>(org.apache.hadoop.hbase.shaded.com.google.protobuf.RpcController&nbsp;controller,
                                                                                                        org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.GetStoreFileRequest&nbsp;request)
                                                                                                 throws org.apache.hadoop.hbase.shaded.com.google.protobuf.ServiceException</pre>
 <dl>
@@ -2047,7 +2047,7 @@ private static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java
 <ul class="blockList">
 <li class="blockList">
 <h4>openRegion</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.OpenRegionResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.1816">openRegion</a>(org.apache.hadoop.hbase.shaded.com.google.protobuf.RpcController&nbsp;controller,
+<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.OpenRegionResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.1823">openRegion</a>(org.apache.hadoop.hbase.shaded.com.google.protobuf.RpcController&nbsp;controller,
                                                                                                    org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.OpenRegionRequest&nbsp;request)
                                                                                             throws org.apache.hadoop.hbase.shaded.com.google.protobuf.ServiceException</pre>
 <div class="block">Open asynchronously a region or a set of regions on the region server.
@@ -2085,7 +2085,7 @@ private static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java
 <ul class="blockList">
 <li class="blockList">
 <h4>warmupRegion</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.WarmupRegionResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.1970">warmupRegion</a>(org.apache.hadoop.hbase.shaded.com.google.protobuf.RpcController&nbsp;controller,
+<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.WarmupRegionResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.1977">warmupRegion</a>(org.apache.hadoop.hbase.shaded.com.google.protobuf.RpcController&nbsp;controller,
                                                                                                        org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.WarmupRegionRequest&nbsp;request)
                                                                                                 throws org.apache.hadoop.hbase.shaded.com.google.protobuf.ServiceException</pre>
 <div class="block">Wamrmup a region on this server.
@@ -2110,7 +2110,7 @@ private static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java
 <ul class="blockList">
 <li class="blockList">
 <h4>replay</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.ReplicateWALEntryResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.2020">replay</a>(org.apache.hadoop.hbase.shaded.com.google.protobuf.RpcController&nbsp;controller,
+<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.ReplicateWALEntryResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.2027">replay</a>(org.apache.hadoop.hbase.shaded.com.google.protobuf.RpcController&nbsp;controller,
                                                                                                       org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.ReplicateWALEntryRequest&nbsp;request)
                                                                                                throws org.apache.hadoop.hbase.shaded.com.google.protobuf.ServiceException</pre>
 <div class="block">Replay the given changes when distributedLogReplay WAL edits from a failed RS. The guarantee is
@@ -2133,7 +2133,7 @@ private static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java
 <ul class="blockList">
 <li class="blockList">
 <h4>replicateWALEntry</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.ReplicateWALEntryResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.2119">replicateWALEntry</a>(org.apache.hadoop.hbase.shaded.com.google.protobuf.RpcController&nbsp;controller,
+<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.ReplicateWALEntryResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.2126">replicateWALEntry</a>(org.apache.hadoop.hbase.shaded.com.google.protobuf.RpcController&nbsp;controller,
                                                                                                                  org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.ReplicateWALEntryRequest&nbsp;request)
                                                                                                           throws org.apache.hadoop.hbase.shaded.com.google.protobuf.ServiceException</pre>
 <div class="block">Replicate WAL entries on the region server.</div>
@@ -2154,7 +2154,7 @@ private static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java
 <ul class="blockList">
 <li class="blockList">
 <h4>rollWALWriter</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.RollWALWriterResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.2148">rollWALWriter</a>(org.apache.hadoop.hbase.shaded.com.google.protobuf.RpcController&nbsp;controller,
+<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.RollWALWriterResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.2155">rollWALWriter</a>(org.apache.hadoop.hbase.shaded.com.google.protobuf.RpcController&nbsp;controller,
                                                                                                          org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.RollWALWriterRequest&nbsp;request)
                                                                                                   throws org.apache.hadoop.hbase.shaded.com.google.protobuf.ServiceException</pre>
 <div class="block">Roll the WAL writer of the region server.</div>
@@ -2175,7 +2175,7 @@ private static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java
 <ul class="blockList">
 <li class="blockList">
 <h4>stopServer</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.StopServerResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.2173">stopServer</a>(org.apache.hadoop.hbase.shaded.com.google.protobuf.RpcController&nbsp;controller,
+<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.StopServerResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.2180">stopServer</a>(org.apache.hadoop.hbase.shaded.com.google.protobuf.RpcController&nbsp;controller,
                                                                                                    org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.StopServerRequest&nbsp;request)
                                                                                             throws org.apache.hadoop.hbase.shaded.com.google.protobuf.ServiceException</pre>
 <div class="block">Stop the region server.</div>
@@ -2196,7 +2196,7 @@ private static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java
 <ul class="blockList">
 <li class="blockList">
 <h4>updateFavoredNodes</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.UpdateFavoredNodesResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.2182">updateFavoredNodes</a>(org.apache.hadoop.hbase.shaded.com.google.protobuf.RpcController&nbsp;controller,
+<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.UpdateFavoredNodesResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.2189">updateFavoredNodes</a>(org.apache.hadoop.hbase.shaded.com.google.protobuf.RpcController&nbsp;controller,
                                                                                                                    org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.UpdateFavoredNodesRequest&nbsp;request)
                                                                                                             throws org.apache.hadoop.hbase.shaded.com.google.protobuf.ServiceException</pre>
 <dl>
@@ -2213,7 +2213,7 @@ private static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java
 <ul class="blockList">
 <li class="blockList">
 <h4>bulkLoadHFile</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.BulkLoadHFileResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.2203">bulkLoadHFile</a>(org.apache.hadoop.hbase.shaded.com.google.protobuf.RpcController&nbsp;controller,
+<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.BulkLoadHFileResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.2210">bulkLoadHFile</a>(org.apache.hadoop.hbase.shaded.com.google.protobuf.RpcController&nbsp;controller,
                                                                                                           org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.BulkLoadHFileRequest&nbsp;request)
                                                                                                    throws org.apache.hadoop.hbase.shaded.com.google.protobuf.ServiceException</pre>
 <div class="block">Atomically bulk load several HFiles into an open region</div>
@@ -2233,7 +2233,7 @@ private static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java
 <ul class="blockList">
 <li class="blockList">
 <h4>prepareBulkLoad</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.PrepareBulkLoadResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.2270">prepareBulkLoad</a>(org.apache.hadoop.hbase.shaded.com.google.protobuf.RpcController&nbsp;controller,
+<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.PrepareBulkLoadResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.2277">prepareBulkLoad</a>(org.apache.hadoop.hbase.shaded.com.google.protobuf.RpcController&nbsp;controller,
                                                                                                               org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.PrepareBulkLoadRequest&nbsp;request)
                                                                                                        throws org.apache.hadoop.hbase.shaded.com.google.protobuf.ServiceException</pre>
 <dl>
@@ -2250,7 +2250,7 @@ private static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java
 <ul class="blockList">
 <li class="blockList">
 <h4>cleanupBulkLoad</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.CleanupBulkLoadResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.2288">cleanupBulkLoad</a>(org.apache.hadoop.hbase.shaded.com.google.protobuf.RpcController&nbsp;controller,
+<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.CleanupBulkLoadResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.2295">cleanupBulkLoad</a>(org.apache.hadoop.hbase.shaded.com.google.protobuf.RpcController&nbsp;controller,
                                                                                                               org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.CleanupBulkLoadRequest&nbsp;request)
                                                                                                        throws org.apache.hadoop.hbase.shaded.com.google.protobuf.ServiceException</pre>
 <dl>
@@ -2267,7 +2267,7 @@ private static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java
 <ul class="blockList">
 <li class="blockList">
 <h4>execService</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.CoprocessorServiceResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.2305">execService</a>(org.apache.hadoop.hbase.shaded.com.google.protobuf.RpcController&nbsp;controller,
+<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.CoprocessorServiceResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.2312">execService</a>(org.apache.hadoop.hbase.shaded.com.google.protobuf.RpcController&nbsp;controller,
                                                                                                              org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.CoprocessorServiceRequest&nbsp;request)
                                                                                                       throws org.apache.hadoop.hbase.shaded.com.google.protobuf.ServiceException</pre>
 <dl>
@@ -2284,7 +2284,7 @@ private static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java
 <ul class="blockList">
 <li class="blockList">
 <h4>execServiceOnRegion</h4>
-<pre>private&nbsp;com.google.protobuf.Message&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.2325">execServiceOnRegion</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion</a>&nbsp;region,
+<pre>private&nbsp;com.google.protobuf.Message&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.2332">execServiceOnRegion</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion</a>&nbsp;region,
                                                         org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.CoprocessorServiceCall&nbsp;serviceCall)
                                                  throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
@@ -2299,7 +2299,7 @@ private static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java
 <ul class="blockList">
 <li class="blockList">
 <h4>get</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.GetResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.2340">get</a>(org.apache.hadoop.hbase.shaded.com.google.protobuf.RpcController&nbsp;controller,
+<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.GetResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.2347">get</a>(org.apache.hadoop.hbase.shaded.com.google.protobuf.RpcController&nbsp;controller,
                                                                                       org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.GetRequest&nbsp;request)
                                                                                throws org.apache.hadoop.hbase.shaded.com.google.protobuf.ServiceException</pre>
 <div class="block">Get data from a table.</div>
@@ -2320,7 +2320,7 @@ private static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java
 <ul class="blockList">
 <li class="blockList">
 <h4>get</h4>
-<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Result.html" title="class in org.apache.hadoop.hbase.client">Result</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.2409">get</a>(<a href="../../../../../org/apache/hadoop/hbase/client/Get.html" title="class in org.apache.hadoop.hbase.client">Get</a>&nbsp;get,
+<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Result.html" title="class in org.apache.hadoop.hbase.client">Result</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.2418">get</a>(<a href="../../../../../org/apache/hadoop/hbase/client/Get.html" title="class in org.apache.hadoop.hbase.client">Get</a>&nbsp;get,
                    <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion</a>&nbsp;region,
                    <a href="../../../../../org/apache/hadoop/hbase/regionserver/RSRpcServices.RegionScannersCloseCallBack.html" title="class in org.apache.hadoop.hbase.regionserver">RSRpcServices.RegionScannersCloseCallBack</a>&nbsp;closeCallBack,
                    <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcCallContext.html" title="interface in org.apache.hadoop.hbase.ipc">RpcCallContext</a>&nbsp;context)
@@ -2337,7 +2337,7 @@ private static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java
 <ul class="blockList">
 <li class="blockList">
 <h4>checkBatchSizeAndLogLargeSize</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.2460">checkBatchSizeAndLogLargeSize</a>(org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.MultiRequest&nbsp;request)</pre>
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.2469">checkBatchSizeAndLogLargeSize</a>(org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.MultiRequest&nbsp;request)</pre>
 </li>
 </ul>
 <a name="multi-org.apache.hadoop.hbase.shaded.com.google.protobuf.RpcController-org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.MultiRequest-">
@@ -2346,7 +2346,7 @@ private static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java
 <ul class="blockList">
 <li class="blockList">
 <h4>multi</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.MultiResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.2482">multi</a>(org.apache.hadoop.hbase.shaded.com.google.protobuf.RpcController&nbsp;rpcc,
+<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.MultiResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.2491">multi</a>(org.apache.hadoop.hbase.shaded.com.google.protobuf.RpcController&nbsp;rpcc,
                                                                                           org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.MultiRequest&nbsp;request)
                                                                                    throws org.apache.hadoop.hbase.shaded.com.google.protobuf.ServiceException</pre>
 <div class="block">Execute multiple actions on a table: get, mutate, and/or execCoprocessor</div>
@@ -2367,7 +2367,7 @@ private static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java
 <ul class="blockList">
 <li class="blockList">
 <h4>skipCellsForMutations</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.2599">skipCellsForMutations</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.Action&gt;&nbsp;actions,
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.2608">skipCellsForMutations</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.Action&gt;&nbsp;actions,
                                    <a href="../../../../../org/apache/hadoop/hbase/CellScanner.html" title="interface in org.apache.hadoop.hbase">CellScanner</a>&nbsp;cellScanner)</pre>
 </li>
 </ul>
@@ -2377,7 +2377,7 @@ private static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java
 <ul class="blockList">
 <li class="blockList">
 <h4>skipCellsForMutation</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.2605">skipCellsForMutation</a>(org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.Action&nbsp;action,
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.2614">skipCellsForMutation</a>(org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.Action&nbsp;action,
                                   <a href="../../../../../org/apache/hadoop/hbase/CellScanner.html" title="interface in org.apache.hadoop.hbase">CellScanner</a>&nbsp;cellScanner)</pre>
 </li>
 </ul>
@@ -2387,7 +2387,7 @@ private static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java
 <ul class="blockList">
 <li class="blockList">
 <h4>mutate</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.MutateResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.2630">mutate</a>(org.apache.hadoop.hbase.shaded.com.google.protobuf.RpcController&nbsp;rpcc,
+<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.MutateResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.2639">mutate</a>(org.apache.hadoop.hbase.shaded.com.google.protobuf.RpcController&nbsp;rpcc,
                                                                                             org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.MutateRequest&nbsp;request)
                                                                                      throws org.apache.hadoop.hbase.shaded.com.google.protobuf.ServiceException</pre>
 <div class="block">Mutate data in a table.</div>
@@ -2408,7 +2408,7 @@ private static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java
 <ul class="blockList">
 <li class="blockList">
 <h4>getRegionScanner</h4>
-<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/RSRpcServices.RegionScannerHolder.html" title="class in org.apache.hadoop.hbase.regionserver">RSRpcServices.RegionScannerHolder</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.2794">getRegionScanner</a>(org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.ScanRequest&nbsp;request)
+<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/RSRpcServices.RegionScannerHolder.html" title="class in org.apache.hadoop.hbase.regionserver">RSRpcServices.RegionScannerHolder</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.2806">getRegionScanner</a>(org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.ScanRequest&nbsp;request)
                                                     throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -2422,7 +2422,7 @@ private static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java
 <ul class="blockList">
 <li class="blockList">
 <h4>newRegionScanner</h4>
-<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/RSRpcServices.RegionScannerHolder.html" title="class in org.apache.hadoop.hbase.regionserver">RSRpcServices.RegionScannerHolder</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.2835">newRegionScanner</a>(org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.ScanRequest&nbsp;request,
+<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/RSRpcServices.RegionScannerHolder.html" title="class in org.apache.hadoop.hbase.regionserver">RSRpcServices.RegionScannerHolder</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.2847">newRegionScanner</a>(org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.ScanRequest&nbsp;request,
                                                            org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.ScanResponse.Builder&nbsp;builder)
                                                     throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
@@ -2437,7 +2437,7 @@ private static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java
 <ul class="blockList">
 <li class="blockList">
 <h4>checkScanNextCallSeq</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.2871">checkScanNextCallSeq</a>(org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.ScanRequest&nbsp;request,
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.2883">checkScanNextCallSeq</a>(org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.ScanRequest&nbsp;request,
                                   <a href="../../../../../org/apache/hadoop/hbase/regionserver/RSRpcServices.RegionScannerHolder.html" title="class in org.apache.hadoop.hbase.regionserver">RSRpcServices.RegionScannerHolder</a>&nbsp;rsh)
                            throws <a href="../../../../../org/apache/hadoop/hbase/exceptions/OutOfOrderScannerNextException.html" title="class in org.apache.hadoop.hbase.exceptions">OutOfOrderScannerNextException</a></pre>
 <dl>
@@ -2452,7 +2452,7 @@ private static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java
 <ul class="blockList">
 <li class="blockList">
 <h4>addScannerLeaseBack</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.2886">addScannerLeaseBack</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/Leases.Lease.html" title="class in org.apache.hadoop.hbase.regionserver">Leases.Lease</a>&nbsp;lease)</pre>
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.2898">addScannerLeaseBack</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/Leases.Lease.html" title="class in org.apache.hadoop.hbase.regionserver">Leases.Lease</a>&nbsp;lease)</pre>
 </li>
 </ul>
 <a name="getTimeLimit-org.apache.hadoop.hbase.ipc.HBaseRpcController-boolean-">
@@ -2461,7 +2461,7 @@ private static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java
 <ul class="blockList">
 <li class="blockList">
 <h4>getTimeLimit</h4>
-<pre>private&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.2895">getTimeLimit</a>(<a href="../../../../../org/apache/hadoop/hbase/ipc/HBaseRpcController.html" title="interface in org.apache.hadoop.hbase.ipc">HBaseRpcController</a>&nbsp;controller,
+<pre>private&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.2907">getTimeLimit</a>(<a href="../../../../../org/apache/hadoop/hbase/ipc/HBaseRpcController.html" title="interface in org.apache.hadoop.hbase.ipc">HBaseRpcController</a>&nbsp;controller,
                           boolean&nbsp;allowHeartbeatMessages)</pre>
 </li>
 </ul>
@@ -2471,7 +2471,7 @@ private static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java
 <ul class="blockList">
 <li class="blockList">
 <h4>checkLimitOfRows</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.2922">checkLimitOfRows</a>(int&nbsp;numOfCompleteRows,
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.2934">checkLimitOfRows</a>(int&nbsp;numOfCompleteRows,
                               int&nbsp;limitOfRows,
                               boolean&nbsp;moreRows,
                               <a href="../../../../../org/apache/hadoop/hbase/regionserver/ScannerContext.html" title="class in org.apache.hadoop.hbase.regionserver">ScannerContext</a>&nbsp;scannerContext,
@@ -2484,7 +2484,7 @@ private static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java
 <ul class="blockList">
 <li class="blockList">
 <h4>scan</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.2934">scan</a>(<a href="../../../../../org/apache/hadoop/hbase/ipc/HBaseRpcController.html" title="interface in org.apache.hadoop.hbase.ipc">HBaseRpcController</a>&nbsp;controller,
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.2946">scan</a>(<a href="../../../../../org/apache/hadoop/hbase/ipc/HBaseRpcController.html" title="interface in org.apache.hadoop.hbase.ipc">HBaseRpcController</a>&nbsp;controller,
                   org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.ScanRequest&nbsp;request,
                   <a href="../../../../../org/apache/hadoop/hbase/regionserver/RSRpcServices.RegionScannerHolder.html" title="class in org.apache.hadoop.hbase.regionserver">RSRpcServices.RegionScannerHolder</a>&nbsp;rsh,
                   long&nbsp;maxQuotaResultSize,
@@ -2507,7 +2507,7 @@ private static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java
 <ul class="blockList">
 <li class="blockList">
 <h4>scan</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.ScanResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.3117">scan</a>(org.apache.hadoop.hbase.shaded.com.google.protobuf.RpcController&nbsp;controller,
+<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.ScanResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.3131">scan</a>(org.apache.hadoop.hbase.shaded.com.google.protobuf.RpcController&nbsp;controller,
                                                                                         org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.ScanRequest&nbsp;request)
                                                                                  throws org.apache.hadoop.hbase.shaded.com.google.protobuf.ServiceException</pre>
 <div class="block">Scan data in a table.</div>
@@ -2528,7 +2528,7 @@ private static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java
 <ul class="blockList">
 <li class="blockList">
 <h4>closeScanner</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.3351">closeScanner</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion</a>&nbsp;region,
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.3365">closeScanner</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion</a>&nbsp;region,
                           <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionScanner.html" title="interface in org.apache.hadoop.hbase.regionserver">RegionScanner</a>&nbsp;scanner,
                           <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;scannerName,
                           <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcCallContext.html" title="interface in org.apache.hadoop.hbase.ipc">RpcCallContext</a>&nbsp;context)
@@ -2545,7 +2545,7 @@ private static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java
 <ul class="blockList">
 <li class="blockList">
 <h4>execRegionServerService</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.CoprocessorServiceResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.3374">execRegionServerService</a>(org.apache.hadoop.hbase.shaded.com.google.protobuf.RpcController&nbsp;controller,
+<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.CoprocessorServiceResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.3388">execRegionServerService</a>(org.apache.hadoop.hbase.shaded.com.google.protobuf.RpcController&nbsp;controller,
                                                                                                                          org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.CoprocessorServiceRequest&nbsp;request)
                                                                                                                   throws org.apache.hadoop.hbase.shaded.com.google.protobuf.ServiceException</pre>
 <dl>
@@ -2562,7 +2562,7 @@ private static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java
 <ul class="blockList">
 <li class="blockList">
 <h4>updateConfiguration</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.UpdateConfigurationResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.3380">updateConfiguration</a>(org.apache.hadoop.hbase.shaded.com.google.protobuf.RpcController&nbsp;controller,
+<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.UpdateConfigurationResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.3394">updateConfiguration</a>(org.apache.hadoop.hbase.shaded.com.google.protobuf.RpcController&nbsp;controller,
                                                                                                                      org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.UpdateConfigurationRequest&nbsp;request)
                                                                                                               throws org.apache.hadoop.hbase.shaded.com.google.protobuf.ServiceException</pre>
 <dl>
@@ -2579,7 +2579,7 @@ private static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java
 <ul class="blockList">
 <li class="blockList">
 <h4>getSpaceQuotaSnapshots</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.QuotaProtos.GetSpaceQuotaSnapshotsResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.3392">getSpaceQuotaSnapshots</a>(org.apache.hadoop.hbase.shaded.com.google.protobuf.RpcController&nbsp;controller,
+<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.QuotaProtos.GetSpaceQuotaSnapshotsResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.3406">getSpaceQuotaSnapshots</a>(org.apache.hadoop.hbase.shaded.com.google.protobuf.RpcController&nbsp;controller,
                                                                                                                            org.apache.hadoop.hbase.shaded.protobuf.generated.QuotaProtos.GetSpaceQuotaSnapshotsRequest&nbsp;request)
                                                                                                                     throws org.apache.hadoop.hbase.shaded.com.google.protobuf.ServiceException</pre>
 <dl>
@@ -2596,7 +2596,7 @@ private static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java
 <ul class="blockList">
 <li class="blockList">
 <h4>executeProcedures</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.ExecuteProceduresResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.3415">executeProcedures</a>(org.apache.hadoop.hbase.shaded.com.google.protobuf.RpcController&nbsp;controller,
+<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.ExecuteProceduresResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.3429">executeProcedures</a>(org.apache.hadoop.hbase.shaded.com.google.protobuf.RpcController&nbsp;controller,
                                                                                                                  org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.ExecuteProceduresRequest&nbsp;request)
                                                                                                           throws org.apache.hadoop.hbase.shaded.com.google.protobuf.ServiceException</pre>
 <dl>
@@ -2613,7 +2613,7 @@ private static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java
 <ul class="blockListLast">
 <li class="blockList">
 <h4>clearRegionBlockCache</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.ClearRegionBlockCacheResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.3432">clearRegionBlockCache</a>(org.apache.hadoop.hbase.shaded.com.google.protobuf.RpcController&nbsp;controller,
+<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.ClearRegionBlockCacheResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.html#line.3446">clearRegionBlockCache</a>(org.apache.hadoop.hbase.shaded.com.google.protobuf.RpcController&nbsp;controller,
                                                                                                                          org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.ClearRegionBlockCacheRequest&nbsp;request)
                                                                                                                   throws org.apache.hadoop.hbase.shaded.com.google.protobuf.ServiceException</pre>
 <dl>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/29b27596/devapidocs/org/apache/hadoop/hbase/regionserver/RegionServerStoppedException.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/regionserver/RegionServerStoppedException.html b/devapidocs/org/apache/hadoop/hbase/regionserver/RegionServerStoppedException.html
index 563ff3a..86b35a8 100644
--- a/devapidocs/org/apache/hadoop/hbase/regionserver/RegionServerStoppedException.html
+++ b/devapidocs/org/apache/hadoop/hbase/regionserver/RegionServerStoppedException.html
@@ -44,7 +44,7 @@
 <div class="subNav">
 <ul class="navList">
 <li><a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionServerServices.RegionStateTransitionContext.html" title="class in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
-<li><a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionServicesForStores.html" title="class in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionServerTableMetrics.html" title="class in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
 </ul>
 <ul class="navList">
 <li><a href="../../../../../index.html?org/apache/hadoop/hbase/regionserver/RegionServerStoppedException.html" target="_top">Frames</a></li>
@@ -230,7 +230,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.ht
 <div class="subNav">
 <ul class="navList">
 <li><a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionServerServices.RegionStateTransitionContext.html" title="class in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
-<li><a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionServicesForStores.html" title="class in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionServerTableMetrics.html" title="class in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
 </ul>
 <ul class="navList">
 <li><a href="../../../../../index.html?org/apache/hadoop/hbase/regionserver/RegionServerStoppedException.html" target="_top">Frames</a></li>


[19/32] hbase-site git commit: Published site at .

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/29b27596/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.CompactionChecker.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.CompactionChecker.html b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.CompactionChecker.html
index 269105b..1198d94 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.CompactionChecker.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.CompactionChecker.html
@@ -1524,2213 +1524,2214 @@
 <span class="sourceLineNo">1516</span>      // This call sets up an initialized replication and WAL. Later we start it up.<a name="line.1516"></a>
 <span class="sourceLineNo">1517</span>      setupWALAndReplication();<a name="line.1517"></a>
 <span class="sourceLineNo">1518</span>      // Init in here rather than in constructor after thread name has been set<a name="line.1518"></a>
-<span class="sourceLineNo">1519</span>      this.metricsRegionServer = new MetricsRegionServer(new MetricsRegionServerWrapperImpl(this));<a name="line.1519"></a>
-<span class="sourceLineNo">1520</span>      this.metricsTable = new MetricsTable(new MetricsTableWrapperAggregateImpl(this));<a name="line.1520"></a>
-<span class="sourceLineNo">1521</span>      // Now that we have a metrics source, start the pause monitor<a name="line.1521"></a>
-<span class="sourceLineNo">1522</span>      this.pauseMonitor = new JvmPauseMonitor(conf, getMetrics().getMetricsSource());<a name="line.1522"></a>
-<span class="sourceLineNo">1523</span>      pauseMonitor.start();<a name="line.1523"></a>
-<span class="sourceLineNo">1524</span><a name="line.1524"></a>
-<span class="sourceLineNo">1525</span>      // There is a rare case where we do NOT want services to start. Check config.<a name="line.1525"></a>
-<span class="sourceLineNo">1526</span>      if (getConfiguration().getBoolean("hbase.regionserver.workers", true)) {<a name="line.1526"></a>
-<span class="sourceLineNo">1527</span>        startServices();<a name="line.1527"></a>
-<span class="sourceLineNo">1528</span>      }<a name="line.1528"></a>
-<span class="sourceLineNo">1529</span>      // In here we start up the replication Service. Above we initialized it. TODO. Reconcile.<a name="line.1529"></a>
-<span class="sourceLineNo">1530</span>      // or make sense of it.<a name="line.1530"></a>
-<span class="sourceLineNo">1531</span>      startReplicationService();<a name="line.1531"></a>
-<span class="sourceLineNo">1532</span><a name="line.1532"></a>
+<span class="sourceLineNo">1519</span>      this.metricsRegionServer = new MetricsRegionServer(<a name="line.1519"></a>
+<span class="sourceLineNo">1520</span>          new MetricsRegionServerWrapperImpl(this), conf);<a name="line.1520"></a>
+<span class="sourceLineNo">1521</span>      this.metricsTable = new MetricsTable(new MetricsTableWrapperAggregateImpl(this));<a name="line.1521"></a>
+<span class="sourceLineNo">1522</span>      // Now that we have a metrics source, start the pause monitor<a name="line.1522"></a>
+<span class="sourceLineNo">1523</span>      this.pauseMonitor = new JvmPauseMonitor(conf, getMetrics().getMetricsSource());<a name="line.1523"></a>
+<span class="sourceLineNo">1524</span>      pauseMonitor.start();<a name="line.1524"></a>
+<span class="sourceLineNo">1525</span><a name="line.1525"></a>
+<span class="sourceLineNo">1526</span>      // There is a rare case where we do NOT want services to start. Check config.<a name="line.1526"></a>
+<span class="sourceLineNo">1527</span>      if (getConfiguration().getBoolean("hbase.regionserver.workers", true)) {<a name="line.1527"></a>
+<span class="sourceLineNo">1528</span>        startServices();<a name="line.1528"></a>
+<span class="sourceLineNo">1529</span>      }<a name="line.1529"></a>
+<span class="sourceLineNo">1530</span>      // In here we start up the replication Service. Above we initialized it. TODO. Reconcile.<a name="line.1530"></a>
+<span class="sourceLineNo">1531</span>      // or make sense of it.<a name="line.1531"></a>
+<span class="sourceLineNo">1532</span>      startReplicationService();<a name="line.1532"></a>
 <span class="sourceLineNo">1533</span><a name="line.1533"></a>
-<span class="sourceLineNo">1534</span>      // Set up ZK<a name="line.1534"></a>
-<span class="sourceLineNo">1535</span>      LOG.info("Serving as " + this.serverName + ", RpcServer on " + rpcServices.isa +<a name="line.1535"></a>
-<span class="sourceLineNo">1536</span>          ", sessionid=0x" +<a name="line.1536"></a>
-<span class="sourceLineNo">1537</span>          Long.toHexString(this.zooKeeper.getRecoverableZooKeeper().getSessionId()));<a name="line.1537"></a>
-<span class="sourceLineNo">1538</span><a name="line.1538"></a>
-<span class="sourceLineNo">1539</span>      // Wake up anyone waiting for this server to online<a name="line.1539"></a>
-<span class="sourceLineNo">1540</span>      synchronized (online) {<a name="line.1540"></a>
-<span class="sourceLineNo">1541</span>        online.set(true);<a name="line.1541"></a>
-<span class="sourceLineNo">1542</span>        online.notifyAll();<a name="line.1542"></a>
-<span class="sourceLineNo">1543</span>      }<a name="line.1543"></a>
-<span class="sourceLineNo">1544</span>    } catch (Throwable e) {<a name="line.1544"></a>
-<span class="sourceLineNo">1545</span>      stop("Failed initialization");<a name="line.1545"></a>
-<span class="sourceLineNo">1546</span>      throw convertThrowableToIOE(cleanup(e, "Failed init"),<a name="line.1546"></a>
-<span class="sourceLineNo">1547</span>          "Region server startup failed");<a name="line.1547"></a>
-<span class="sourceLineNo">1548</span>    } finally {<a name="line.1548"></a>
-<span class="sourceLineNo">1549</span>      sleeper.skipSleepCycle();<a name="line.1549"></a>
-<span class="sourceLineNo">1550</span>    }<a name="line.1550"></a>
-<span class="sourceLineNo">1551</span>  }<a name="line.1551"></a>
-<span class="sourceLineNo">1552</span><a name="line.1552"></a>
-<span class="sourceLineNo">1553</span>  protected void initializeMemStoreChunkCreator() {<a name="line.1553"></a>
-<span class="sourceLineNo">1554</span>    if (MemStoreLAB.isEnabled(conf)) {<a name="line.1554"></a>
-<span class="sourceLineNo">1555</span>      // MSLAB is enabled. So initialize MemStoreChunkPool<a name="line.1555"></a>
-<span class="sourceLineNo">1556</span>      // By this time, the MemstoreFlusher is already initialized. We can get the global limits from<a name="line.1556"></a>
-<span class="sourceLineNo">1557</span>      // it.<a name="line.1557"></a>
-<span class="sourceLineNo">1558</span>      Pair&lt;Long, MemoryType&gt; pair = MemorySizeUtil.getGlobalMemStoreSize(conf);<a name="line.1558"></a>
-<span class="sourceLineNo">1559</span>      long globalMemStoreSize = pair.getFirst();<a name="line.1559"></a>
-<span class="sourceLineNo">1560</span>      boolean offheap = this.regionServerAccounting.isOffheap();<a name="line.1560"></a>
-<span class="sourceLineNo">1561</span>      // When off heap memstore in use, take full area for chunk pool.<a name="line.1561"></a>
-<span class="sourceLineNo">1562</span>      float poolSizePercentage = offheap? 1.0F:<a name="line.1562"></a>
-<span class="sourceLineNo">1563</span>          conf.getFloat(MemStoreLAB.CHUNK_POOL_MAXSIZE_KEY, MemStoreLAB.POOL_MAX_SIZE_DEFAULT);<a name="line.1563"></a>
-<span class="sourceLineNo">1564</span>      float initialCountPercentage = conf.getFloat(MemStoreLAB.CHUNK_POOL_INITIALSIZE_KEY,<a name="line.1564"></a>
-<span class="sourceLineNo">1565</span>          MemStoreLAB.POOL_INITIAL_SIZE_DEFAULT);<a name="line.1565"></a>
-<span class="sourceLineNo">1566</span>      int chunkSize = conf.getInt(MemStoreLAB.CHUNK_SIZE_KEY, MemStoreLAB.CHUNK_SIZE_DEFAULT);<a name="line.1566"></a>
-<span class="sourceLineNo">1567</span>      // init the chunkCreator<a name="line.1567"></a>
-<span class="sourceLineNo">1568</span>      ChunkCreator chunkCreator =<a name="line.1568"></a>
-<span class="sourceLineNo">1569</span>          ChunkCreator.initialize(chunkSize, offheap, globalMemStoreSize, poolSizePercentage,<a name="line.1569"></a>
-<span class="sourceLineNo">1570</span>      initialCountPercentage, this.hMemManager);<a name="line.1570"></a>
-<span class="sourceLineNo">1571</span>    }<a name="line.1571"></a>
-<span class="sourceLineNo">1572</span>  }<a name="line.1572"></a>
-<span class="sourceLineNo">1573</span><a name="line.1573"></a>
-<span class="sourceLineNo">1574</span>  private void startHeapMemoryManager() {<a name="line.1574"></a>
-<span class="sourceLineNo">1575</span>    this.hMemManager = HeapMemoryManager.create(this.conf, this.cacheFlusher, this,<a name="line.1575"></a>
-<span class="sourceLineNo">1576</span>        this.regionServerAccounting);<a name="line.1576"></a>
-<span class="sourceLineNo">1577</span>    if (this.hMemManager != null) {<a name="line.1577"></a>
-<span class="sourceLineNo">1578</span>      this.hMemManager.start(getChoreService());<a name="line.1578"></a>
-<span class="sourceLineNo">1579</span>    }<a name="line.1579"></a>
-<span class="sourceLineNo">1580</span>  }<a name="line.1580"></a>
-<span class="sourceLineNo">1581</span><a name="line.1581"></a>
-<span class="sourceLineNo">1582</span>  private void createMyEphemeralNode() throws KeeperException, IOException {<a name="line.1582"></a>
-<span class="sourceLineNo">1583</span>    RegionServerInfo.Builder rsInfo = RegionServerInfo.newBuilder();<a name="line.1583"></a>
-<span class="sourceLineNo">1584</span>    rsInfo.setInfoPort(infoServer != null ? infoServer.getPort() : -1);<a name="line.1584"></a>
-<span class="sourceLineNo">1585</span>    rsInfo.setVersionInfo(ProtobufUtil.getVersionInfo());<a name="line.1585"></a>
-<span class="sourceLineNo">1586</span>    byte[] data = ProtobufUtil.prependPBMagic(rsInfo.build().toByteArray());<a name="line.1586"></a>
-<span class="sourceLineNo">1587</span>    ZKUtil.createEphemeralNodeAndWatch(this.zooKeeper, getMyEphemeralNodePath(), data);<a name="line.1587"></a>
-<span class="sourceLineNo">1588</span>  }<a name="line.1588"></a>
-<span class="sourceLineNo">1589</span><a name="line.1589"></a>
-<span class="sourceLineNo">1590</span>  private void deleteMyEphemeralNode() throws KeeperException {<a name="line.1590"></a>
-<span class="sourceLineNo">1591</span>    ZKUtil.deleteNode(this.zooKeeper, getMyEphemeralNodePath());<a name="line.1591"></a>
-<span class="sourceLineNo">1592</span>  }<a name="line.1592"></a>
-<span class="sourceLineNo">1593</span><a name="line.1593"></a>
-<span class="sourceLineNo">1594</span>  @Override<a name="line.1594"></a>
-<span class="sourceLineNo">1595</span>  public RegionServerAccounting getRegionServerAccounting() {<a name="line.1595"></a>
-<span class="sourceLineNo">1596</span>    return regionServerAccounting;<a name="line.1596"></a>
-<span class="sourceLineNo">1597</span>  }<a name="line.1597"></a>
-<span class="sourceLineNo">1598</span><a name="line.1598"></a>
-<span class="sourceLineNo">1599</span>  /*<a name="line.1599"></a>
-<span class="sourceLineNo">1600</span>   * @param r Region to get RegionLoad for.<a name="line.1600"></a>
-<span class="sourceLineNo">1601</span>   * @param regionLoadBldr the RegionLoad.Builder, can be null<a name="line.1601"></a>
-<span class="sourceLineNo">1602</span>   * @param regionSpecifier the RegionSpecifier.Builder, can be null<a name="line.1602"></a>
-<span class="sourceLineNo">1603</span>   * @return RegionLoad instance.<a name="line.1603"></a>
-<span class="sourceLineNo">1604</span>   *<a name="line.1604"></a>
-<span class="sourceLineNo">1605</span>   * @throws IOException<a name="line.1605"></a>
-<span class="sourceLineNo">1606</span>   */<a name="line.1606"></a>
-<span class="sourceLineNo">1607</span>  RegionLoad createRegionLoad(final HRegion r, RegionLoad.Builder regionLoadBldr,<a name="line.1607"></a>
-<span class="sourceLineNo">1608</span>      RegionSpecifier.Builder regionSpecifier) throws IOException {<a name="line.1608"></a>
-<span class="sourceLineNo">1609</span>    byte[] name = r.getRegionInfo().getRegionName();<a name="line.1609"></a>
-<span class="sourceLineNo">1610</span>    int stores = 0;<a name="line.1610"></a>
-<span class="sourceLineNo">1611</span>    int storefiles = 0;<a name="line.1611"></a>
-<span class="sourceLineNo">1612</span>    int storeUncompressedSizeMB = 0;<a name="line.1612"></a>
-<span class="sourceLineNo">1613</span>    int storefileSizeMB = 0;<a name="line.1613"></a>
-<span class="sourceLineNo">1614</span>    int memstoreSizeMB = (int) (r.getMemStoreSize() / 1024 / 1024);<a name="line.1614"></a>
-<span class="sourceLineNo">1615</span>    long storefileIndexSizeKB = 0;<a name="line.1615"></a>
-<span class="sourceLineNo">1616</span>    int rootIndexSizeKB = 0;<a name="line.1616"></a>
-<span class="sourceLineNo">1617</span>    int totalStaticIndexSizeKB = 0;<a name="line.1617"></a>
-<span class="sourceLineNo">1618</span>    int totalStaticBloomSizeKB = 0;<a name="line.1618"></a>
-<span class="sourceLineNo">1619</span>    long totalCompactingKVs = 0;<a name="line.1619"></a>
-<span class="sourceLineNo">1620</span>    long currentCompactedKVs = 0;<a name="line.1620"></a>
-<span class="sourceLineNo">1621</span>    List&lt;HStore&gt; storeList = r.getStores();<a name="line.1621"></a>
-<span class="sourceLineNo">1622</span>    stores += storeList.size();<a name="line.1622"></a>
-<span class="sourceLineNo">1623</span>    for (HStore store : storeList) {<a name="line.1623"></a>
-<span class="sourceLineNo">1624</span>      storefiles += store.getStorefilesCount();<a name="line.1624"></a>
-<span class="sourceLineNo">1625</span>      storeUncompressedSizeMB += (int) (store.getStoreSizeUncompressed() / 1024 / 1024);<a name="line.1625"></a>
-<span class="sourceLineNo">1626</span>      storefileSizeMB += (int) (store.getStorefilesSize() / 1024 / 1024);<a name="line.1626"></a>
-<span class="sourceLineNo">1627</span>      storefileIndexSizeKB += store.getStorefilesIndexSize() / 1024;<a name="line.1627"></a>
-<span class="sourceLineNo">1628</span>      CompactionProgress progress = store.getCompactionProgress();<a name="line.1628"></a>
-<span class="sourceLineNo">1629</span>      if (progress != null) {<a name="line.1629"></a>
-<span class="sourceLineNo">1630</span>        totalCompactingKVs += progress.totalCompactingKVs;<a name="line.1630"></a>
-<span class="sourceLineNo">1631</span>        currentCompactedKVs += progress.currentCompactedKVs;<a name="line.1631"></a>
-<span class="sourceLineNo">1632</span>      }<a name="line.1632"></a>
-<span class="sourceLineNo">1633</span>      rootIndexSizeKB += (int) (store.getStorefilesIndexSize() / 1024);<a name="line.1633"></a>
-<span class="sourceLineNo">1634</span>      totalStaticIndexSizeKB += (int) (store.getTotalStaticIndexSize() / 1024);<a name="line.1634"></a>
-<span class="sourceLineNo">1635</span>      totalStaticBloomSizeKB += (int) (store.getTotalStaticBloomSize() / 1024);<a name="line.1635"></a>
-<span class="sourceLineNo">1636</span>    }<a name="line.1636"></a>
-<span class="sourceLineNo">1637</span><a name="line.1637"></a>
-<span class="sourceLineNo">1638</span>    float dataLocality =<a name="line.1638"></a>
-<span class="sourceLineNo">1639</span>        r.getHDFSBlocksDistribution().getBlockLocalityIndex(serverName.getHostname());<a name="line.1639"></a>
-<span class="sourceLineNo">1640</span>    if (regionLoadBldr == null) {<a name="line.1640"></a>
-<span class="sourceLineNo">1641</span>      regionLoadBldr = RegionLoad.newBuilder();<a name="line.1641"></a>
-<span class="sourceLineNo">1642</span>    }<a name="line.1642"></a>
-<span class="sourceLineNo">1643</span>    if (regionSpecifier == null) {<a name="line.1643"></a>
-<span class="sourceLineNo">1644</span>      regionSpecifier = RegionSpecifier.newBuilder();<a name="line.1644"></a>
-<span class="sourceLineNo">1645</span>    }<a name="line.1645"></a>
-<span class="sourceLineNo">1646</span>    regionSpecifier.setType(RegionSpecifierType.REGION_NAME);<a name="line.1646"></a>
-<span class="sourceLineNo">1647</span>    regionSpecifier.setValue(UnsafeByteOperations.unsafeWrap(name));<a name="line.1647"></a>
-<span class="sourceLineNo">1648</span>    regionLoadBldr.setRegionSpecifier(regionSpecifier.build())<a name="line.1648"></a>
-<span class="sourceLineNo">1649</span>      .setStores(stores)<a name="line.1649"></a>
-<span class="sourceLineNo">1650</span>      .setStorefiles(storefiles)<a name="line.1650"></a>
-<span class="sourceLineNo">1651</span>      .setStoreUncompressedSizeMB(storeUncompressedSizeMB)<a name="line.1651"></a>
-<span class="sourceLineNo">1652</span>      .setStorefileSizeMB(storefileSizeMB)<a name="line.1652"></a>
-<span class="sourceLineNo">1653</span>      .setMemStoreSizeMB(memstoreSizeMB)<a name="line.1653"></a>
-<span class="sourceLineNo">1654</span>      .setStorefileIndexSizeKB(storefileIndexSizeKB)<a name="line.1654"></a>
-<span class="sourceLineNo">1655</span>      .setRootIndexSizeKB(rootIndexSizeKB)<a name="line.1655"></a>
-<span class="sourceLineNo">1656</span>      .setTotalStaticIndexSizeKB(totalStaticIndexSizeKB)<a name="line.1656"></a>
-<span class="sourceLineNo">1657</span>      .setTotalStaticBloomSizeKB(totalStaticBloomSizeKB)<a name="line.1657"></a>
-<span class="sourceLineNo">1658</span>      .setReadRequestsCount(r.getReadRequestsCount())<a name="line.1658"></a>
-<span class="sourceLineNo">1659</span>      .setFilteredReadRequestsCount(r.getFilteredReadRequestsCount())<a name="line.1659"></a>
-<span class="sourceLineNo">1660</span>      .setWriteRequestsCount(r.getWriteRequestsCount())<a name="line.1660"></a>
-<span class="sourceLineNo">1661</span>      .setTotalCompactingKVs(totalCompactingKVs)<a name="line.1661"></a>
-<span class="sourceLineNo">1662</span>      .setCurrentCompactedKVs(currentCompactedKVs)<a name="line.1662"></a>
-<span class="sourceLineNo">1663</span>      .setDataLocality(dataLocality)<a name="line.1663"></a>
-<span class="sourceLineNo">1664</span>      .setLastMajorCompactionTs(r.getOldestHfileTs(true));<a name="line.1664"></a>
-<span class="sourceLineNo">1665</span>    ((HRegion)r).setCompleteSequenceId(regionLoadBldr);<a name="line.1665"></a>
-<span class="sourceLineNo">1666</span><a name="line.1666"></a>
-<span class="sourceLineNo">1667</span>    return regionLoadBldr.build();<a name="line.1667"></a>
-<span class="sourceLineNo">1668</span>  }<a name="line.1668"></a>
-<span class="sourceLineNo">1669</span><a name="line.1669"></a>
-<span class="sourceLineNo">1670</span>  /**<a name="line.1670"></a>
-<span class="sourceLineNo">1671</span>   * @param encodedRegionName<a name="line.1671"></a>
-<span class="sourceLineNo">1672</span>   * @return An instance of RegionLoad.<a name="line.1672"></a>
-<span class="sourceLineNo">1673</span>   */<a name="line.1673"></a>
-<span class="sourceLineNo">1674</span>  public RegionLoad createRegionLoad(final String encodedRegionName) throws IOException {<a name="line.1674"></a>
-<span class="sourceLineNo">1675</span>    HRegion r = onlineRegions.get(encodedRegionName);<a name="line.1675"></a>
-<span class="sourceLineNo">1676</span>    return r != null ? createRegionLoad(r, null, null) : null;<a name="line.1676"></a>
-<span class="sourceLineNo">1677</span>  }<a name="line.1677"></a>
-<span class="sourceLineNo">1678</span><a name="line.1678"></a>
-<span class="sourceLineNo">1679</span>  /*<a name="line.1679"></a>
-<span class="sourceLineNo">1680</span>   * Inner class that runs on a long period checking if regions need compaction.<a name="line.1680"></a>
-<span class="sourceLineNo">1681</span>   */<a name="line.1681"></a>
-<span class="sourceLineNo">1682</span>  private static class CompactionChecker extends ScheduledChore {<a name="line.1682"></a>
-<span class="sourceLineNo">1683</span>    private final HRegionServer instance;<a name="line.1683"></a>
-<span class="sourceLineNo">1684</span>    private final int majorCompactPriority;<a name="line.1684"></a>
-<span class="sourceLineNo">1685</span>    private final static int DEFAULT_PRIORITY = Integer.MAX_VALUE;<a name="line.1685"></a>
-<span class="sourceLineNo">1686</span>    //Iteration is 1-based rather than 0-based so we don't check for compaction<a name="line.1686"></a>
-<span class="sourceLineNo">1687</span>    // immediately upon region server startup<a name="line.1687"></a>
-<span class="sourceLineNo">1688</span>    private long iteration = 1;<a name="line.1688"></a>
-<span class="sourceLineNo">1689</span><a name="line.1689"></a>
-<span class="sourceLineNo">1690</span>    CompactionChecker(final HRegionServer h, final int sleepTime, final Stoppable stopper) {<a name="line.1690"></a>
-<span class="sourceLineNo">1691</span>      super("CompactionChecker", stopper, sleepTime);<a name="line.1691"></a>
-<span class="sourceLineNo">1692</span>      this.instance = h;<a name="line.1692"></a>
-<span class="sourceLineNo">1693</span>      LOG.info(this.getName() + " runs every " + StringUtils.formatTime(sleepTime));<a name="line.1693"></a>
-<span class="sourceLineNo">1694</span><a name="line.1694"></a>
-<span class="sourceLineNo">1695</span>      /* MajorCompactPriority is configurable.<a name="line.1695"></a>
-<span class="sourceLineNo">1696</span>       * If not set, the compaction will use default priority.<a name="line.1696"></a>
-<span class="sourceLineNo">1697</span>       */<a name="line.1697"></a>
-<span class="sourceLineNo">1698</span>      this.majorCompactPriority = this.instance.conf.<a name="line.1698"></a>
-<span class="sourceLineNo">1699</span>          getInt("hbase.regionserver.compactionChecker.majorCompactPriority",<a name="line.1699"></a>
-<span class="sourceLineNo">1700</span>              DEFAULT_PRIORITY);<a name="line.1700"></a>
-<span class="sourceLineNo">1701</span>    }<a name="line.1701"></a>
-<span class="sourceLineNo">1702</span><a name="line.1702"></a>
-<span class="sourceLineNo">1703</span>    @Override<a name="line.1703"></a>
-<span class="sourceLineNo">1704</span>    protected void chore() {<a name="line.1704"></a>
-<span class="sourceLineNo">1705</span>      for (Region r : this.instance.onlineRegions.values()) {<a name="line.1705"></a>
-<span class="sourceLineNo">1706</span>        if (r == null) {<a name="line.1706"></a>
-<span class="sourceLineNo">1707</span>          continue;<a name="line.1707"></a>
-<span class="sourceLineNo">1708</span>        }<a name="line.1708"></a>
-<span class="sourceLineNo">1709</span>        HRegion hr = (HRegion) r;<a name="line.1709"></a>
-<span class="sourceLineNo">1710</span>        for (HStore s : hr.stores.values()) {<a name="line.1710"></a>
-<span class="sourceLineNo">1711</span>          try {<a name="line.1711"></a>
-<span class="sourceLineNo">1712</span>            long multiplier = s.getCompactionCheckMultiplier();<a name="line.1712"></a>
-<span class="sourceLineNo">1713</span>            assert multiplier &gt; 0;<a name="line.1713"></a>
-<span class="sourceLineNo">1714</span>            if (iteration % multiplier != 0) {<a name="line.1714"></a>
-<span class="sourceLineNo">1715</span>              continue;<a name="line.1715"></a>
-<span class="sourceLineNo">1716</span>            }<a name="line.1716"></a>
-<span class="sourceLineNo">1717</span>            if (s.needsCompaction()) {<a name="line.1717"></a>
-<span class="sourceLineNo">1718</span>              // Queue a compaction. Will recognize if major is needed.<a name="line.1718"></a>
-<span class="sourceLineNo">1719</span>              this.instance.compactSplitThread.requestSystemCompaction(hr, s,<a name="line.1719"></a>
-<span class="sourceLineNo">1720</span>                getName() + " requests compaction");<a name="line.1720"></a>
-<span class="sourceLineNo">1721</span>            } else if (s.shouldPerformMajorCompaction()) {<a name="line.1721"></a>
-<span class="sourceLineNo">1722</span>              s.triggerMajorCompaction();<a name="line.1722"></a>
-<span class="sourceLineNo">1723</span>              if (majorCompactPriority == DEFAULT_PRIORITY ||<a name="line.1723"></a>
-<span class="sourceLineNo">1724</span>                  majorCompactPriority &gt; hr.getCompactPriority()) {<a name="line.1724"></a>
-<span class="sourceLineNo">1725</span>                this.instance.compactSplitThread.requestCompaction(hr, s,<a name="line.1725"></a>
-<span class="sourceLineNo">1726</span>                    getName() + " requests major compaction; use default priority",<a name="line.1726"></a>
-<span class="sourceLineNo">1727</span>                    Store.NO_PRIORITY,<a name="line.1727"></a>
-<span class="sourceLineNo">1728</span>                CompactionLifeCycleTracker.DUMMY, null);<a name="line.1728"></a>
-<span class="sourceLineNo">1729</span>              } else {<a name="line.1729"></a>
-<span class="sourceLineNo">1730</span>                this.instance.compactSplitThread.requestCompaction(hr, s,<a name="line.1730"></a>
-<span class="sourceLineNo">1731</span>                    getName() + " requests major compaction; use configured priority",<a name="line.1731"></a>
-<span class="sourceLineNo">1732</span>                    this.majorCompactPriority, CompactionLifeCycleTracker.DUMMY, null);<a name="line.1732"></a>
-<span class="sourceLineNo">1733</span>              }<a name="line.1733"></a>
-<span class="sourceLineNo">1734</span>            }<a name="line.1734"></a>
-<span class="sourceLineNo">1735</span>          } catch (IOException e) {<a name="line.1735"></a>
-<span class="sourceLineNo">1736</span>            LOG.warn("Failed major compaction check on " + r, e);<a name="line.1736"></a>
-<span class="sourceLineNo">1737</span>          }<a name="line.1737"></a>
-<span class="sourceLineNo">1738</span>        }<a name="line.1738"></a>
-<span class="sourceLineNo">1739</span>      }<a name="line.1739"></a>
-<span class="sourceLineNo">1740</span>      iteration = (iteration == Long.MAX_VALUE) ? 0 : (iteration + 1);<a name="line.1740"></a>
-<span class="sourceLineNo">1741</span>    }<a name="line.1741"></a>
-<span class="sourceLineNo">1742</span>  }<a name="line.1742"></a>
-<span class="sourceLineNo">1743</span><a name="line.1743"></a>
-<span class="sourceLineNo">1744</span>  static class PeriodicMemStoreFlusher extends ScheduledChore {<a name="line.1744"></a>
-<span class="sourceLineNo">1745</span>    final HRegionServer server;<a name="line.1745"></a>
-<span class="sourceLineNo">1746</span>    final static int RANGE_OF_DELAY = 5 * 60 * 1000; // 5 min in milliseconds<a name="line.1746"></a>
-<span class="sourceLineNo">1747</span>    final static int MIN_DELAY_TIME = 0; // millisec<a name="line.1747"></a>
-<span class="sourceLineNo">1748</span>    public PeriodicMemStoreFlusher(int cacheFlushInterval, final HRegionServer server) {<a name="line.1748"></a>
-<span class="sourceLineNo">1749</span>      super("MemstoreFlusherChore", server, cacheFlushInterval);<a name="line.1749"></a>
-<span class="sourceLineNo">1750</span>      this.server = server;<a name="line.1750"></a>
-<span class="sourceLineNo">1751</span>    }<a name="line.1751"></a>
-<span class="sourceLineNo">1752</span><a name="line.1752"></a>
-<span class="sourceLineNo">1753</span>    @Override<a name="line.1753"></a>
-<span class="sourceLineNo">1754</span>    protected void chore() {<a name="line.1754"></a>
-<span class="sourceLineNo">1755</span>      final StringBuffer whyFlush = new StringBuffer();<a name="line.1755"></a>
-<span class="sourceLineNo">1756</span>      for (HRegion r : this.server.onlineRegions.values()) {<a name="line.1756"></a>
-<span class="sourceLineNo">1757</span>        if (r == null) continue;<a name="line.1757"></a>
-<span class="sourceLineNo">1758</span>        if (r.shouldFlush(whyFlush)) {<a name="line.1758"></a>
-<span class="sourceLineNo">1759</span>          FlushRequester requester = server.getFlushRequester();<a name="line.1759"></a>
-<span class="sourceLineNo">1760</span>          if (requester != null) {<a name="line.1760"></a>
-<span class="sourceLineNo">1761</span>            long randomDelay = RandomUtils.nextInt(0, RANGE_OF_DELAY) + MIN_DELAY_TIME;<a name="line.1761"></a>
-<span class="sourceLineNo">1762</span>            LOG.info(getName() + " requesting flush of " +<a name="line.1762"></a>
-<span class="sourceLineNo">1763</span>              r.getRegionInfo().getRegionNameAsString() + " because " +<a name="line.1763"></a>
-<span class="sourceLineNo">1764</span>              whyFlush.toString() +<a name="line.1764"></a>
-<span class="sourceLineNo">1765</span>              " after random delay " + randomDelay + "ms");<a name="line.1765"></a>
-<span class="sourceLineNo">1766</span>            //Throttle the flushes by putting a delay. If we don't throttle, and there<a name="line.1766"></a>
-<span class="sourceLineNo">1767</span>            //is a balanced write-load on the regions in a table, we might end up<a name="line.1767"></a>
-<span class="sourceLineNo">1768</span>            //overwhelming the filesystem with too many flushes at once.<a name="line.1768"></a>
-<span class="sourceLineNo">1769</span>            requester.requestDelayedFlush(r, randomDelay, false);<a name="line.1769"></a>
-<span class="sourceLineNo">1770</span>          }<a name="line.1770"></a>
-<span class="sourceLineNo">1771</span>        }<a name="line.1771"></a>
-<span class="sourceLineNo">1772</span>      }<a name="line.1772"></a>
-<span class="sourceLineNo">1773</span>    }<a name="line.1773"></a>
-<span class="sourceLineNo">1774</span>  }<a name="line.1774"></a>
-<span class="sourceLineNo">1775</span><a name="line.1775"></a>
-<span class="sourceLineNo">1776</span>  /**<a name="line.1776"></a>
-<span class="sourceLineNo">1777</span>   * Report the status of the server. A server is online once all the startup is<a name="line.1777"></a>
-<span class="sourceLineNo">1778</span>   * completed (setting up filesystem, starting executorService threads, etc.). This<a name="line.1778"></a>
-<span class="sourceLineNo">1779</span>   * method is designed mostly to be useful in tests.<a name="line.1779"></a>
-<span class="sourceLineNo">1780</span>   *<a name="line.1780"></a>
-<span class="sourceLineNo">1781</span>   * @return true if online, false if not.<a name="line.1781"></a>
-<span class="sourceLineNo">1782</span>   */<a name="line.1782"></a>
-<span class="sourceLineNo">1783</span>  public boolean isOnline() {<a name="line.1783"></a>
-<span class="sourceLineNo">1784</span>    return online.get();<a name="line.1784"></a>
-<span class="sourceLineNo">1785</span>  }<a name="line.1785"></a>
-<span class="sourceLineNo">1786</span><a name="line.1786"></a>
-<span class="sourceLineNo">1787</span>  /**<a name="line.1787"></a>
-<span class="sourceLineNo">1788</span>   * Setup WAL log and replication if enabled.<a name="line.1788"></a>
-<span class="sourceLineNo">1789</span>   * Replication setup is done in here because it wants to be hooked up to WAL.<a name="line.1789"></a>
-<span class="sourceLineNo">1790</span>   *<a name="line.1790"></a>
-<span class="sourceLineNo">1791</span>   * @throws IOException<a name="line.1791"></a>
-<span class="sourceLineNo">1792</span>   */<a name="line.1792"></a>
-<span class="sourceLineNo">1793</span>  private void setupWALAndReplication() throws IOException {<a name="line.1793"></a>
-<span class="sourceLineNo">1794</span>    // TODO Replication make assumptions here based on the default filesystem impl<a name="line.1794"></a>
-<span class="sourceLineNo">1795</span>    Path oldLogDir = new Path(walRootDir, HConstants.HREGION_OLDLOGDIR_NAME);<a name="line.1795"></a>
-<span class="sourceLineNo">1796</span>    String logName = AbstractFSWALProvider.getWALDirectoryName(this.serverName.toString());<a name="line.1796"></a>
-<span class="sourceLineNo">1797</span><a name="line.1797"></a>
-<span class="sourceLineNo">1798</span>    Path logDir = new Path(walRootDir, logName);<a name="line.1798"></a>
-<span class="sourceLineNo">1799</span>    if (LOG.isDebugEnabled()) LOG.debug("logDir=" + logDir);<a name="line.1799"></a>
-<span class="sourceLineNo">1800</span>    if (this.walFs.exists(logDir)) {<a name="line.1800"></a>
-<span class="sourceLineNo">1801</span>      throw new RegionServerRunningException("Region server has already " +<a name="line.1801"></a>
-<span class="sourceLineNo">1802</span>          "created directory at " + this.serverName.toString());<a name="line.1802"></a>
-<span class="sourceLineNo">1803</span>    }<a name="line.1803"></a>
-<span class="sourceLineNo">1804</span><a name="line.1804"></a>
-<span class="sourceLineNo">1805</span>    // Instantiate replication if replication enabled.  Pass it the log directories.<a name="line.1805"></a>
-<span class="sourceLineNo">1806</span>    // In here we create the Replication instances. Later they are initialized and started up.<a name="line.1806"></a>
-<span class="sourceLineNo">1807</span>    createNewReplicationInstance(conf, this, this.walFs, logDir, oldLogDir);<a name="line.1807"></a>
-<span class="sourceLineNo">1808</span><a name="line.1808"></a>
-<span class="sourceLineNo">1809</span>    // listeners the wal factory will add to wals it creates.<a name="line.1809"></a>
-<span class="sourceLineNo">1810</span>    List&lt;WALActionsListener&gt; listeners = new ArrayList&lt;&gt;();<a name="line.1810"></a>
-<span class="sourceLineNo">1811</span>    listeners.add(new MetricsWAL());<a name="line.1811"></a>
-<span class="sourceLineNo">1812</span>    if (this.replicationSourceHandler != null &amp;&amp;<a name="line.1812"></a>
-<span class="sourceLineNo">1813</span>        this.replicationSourceHandler.getWALActionsListener() != null) {<a name="line.1813"></a>
-<span class="sourceLineNo">1814</span>      // Replication handler is an implementation of WALActionsListener.<a name="line.1814"></a>
-<span class="sourceLineNo">1815</span>      listeners.add(this.replicationSourceHandler.getWALActionsListener());<a name="line.1815"></a>
-<span class="sourceLineNo">1816</span>    }<a name="line.1816"></a>
-<span class="sourceLineNo">1817</span><a name="line.1817"></a>
-<span class="sourceLineNo">1818</span>    // There is a cyclic dependency between ReplicationSourceHandler and WALFactory.<a name="line.1818"></a>
-<span class="sourceLineNo">1819</span>    // We use WALActionsListener to get the newly rolled WALs, so we need to get the<a name="line.1819"></a>
-<span class="sourceLineNo">1820</span>    // WALActionsListeners from ReplicationSourceHandler before constructing WALFactory. And then<a name="line.1820"></a>
-<span class="sourceLineNo">1821</span>    // ReplicationSourceHandler need to use WALFactory get the length of the wal file being written.<a name="line.1821"></a>
-<span class="sourceLineNo">1822</span>    // So we here we need to construct WALFactory first, and then pass it to the initialized method<a name="line.1822"></a>
-<span class="sourceLineNo">1823</span>    // of ReplicationSourceHandler.<a name="line.1823"></a>
-<span class="sourceLineNo">1824</span>    // TODO: I can't follow replication; it has initialize and then later on we start it!<a name="line.1824"></a>
-<span class="sourceLineNo">1825</span>    WALFactory factory = new WALFactory(conf, listeners, serverName.toString());<a name="line.1825"></a>
-<span class="sourceLineNo">1826</span>    this.walFactory = factory;<a name="line.1826"></a>
-<span class="sourceLineNo">1827</span>    if (this.replicationSourceHandler != null) {<a name="line.1827"></a>
-<span class="sourceLineNo">1828</span>      this.replicationSourceHandler.initialize(this, walFs, logDir, oldLogDir, factory);<a name="line.1828"></a>
-<span class="sourceLineNo">1829</span>    }<a name="line.1829"></a>
-<span class="sourceLineNo">1830</span>    if (this.replicationSinkHandler != null &amp;&amp;<a name="line.1830"></a>
-<span class="sourceLineNo">1831</span>        this.replicationSinkHandler != this.replicationSourceHandler) {<a name="line.1831"></a>
-<span class="sourceLineNo">1832</span>      this.replicationSinkHandler.initialize(this, walFs, logDir, oldLogDir, factory);<a name="line.1832"></a>
-<span class="sourceLineNo">1833</span>    }<a name="line.1833"></a>
-<span class="sourceLineNo">1834</span>  }<a name="line.1834"></a>
-<span class="sourceLineNo">1835</span><a name="line.1835"></a>
-<span class="sourceLineNo">1836</span>  /**<a name="line.1836"></a>
-<span class="sourceLineNo">1837</span>   * Start up replication source and sink handlers.<a name="line.1837"></a>
-<span class="sourceLineNo">1838</span>   * @throws IOException<a name="line.1838"></a>
-<span class="sourceLineNo">1839</span>   */<a name="line.1839"></a>
-<span class="sourceLineNo">1840</span>  private void startReplicationService() throws IOException {<a name="line.1840"></a>
-<span class="sourceLineNo">1841</span>    if (this.replicationSourceHandler == this.replicationSinkHandler &amp;&amp;<a name="line.1841"></a>
-<span class="sourceLineNo">1842</span>        this.replicationSourceHandler != null) {<a name="line.1842"></a>
-<span class="sourceLineNo">1843</span>      this.replicationSourceHandler.startReplicationService();<a name="line.1843"></a>
-<span class="sourceLineNo">1844</span>    } else {<a name="line.1844"></a>
-<span class="sourceLineNo">1845</span>      if (this.replicationSourceHandler != null) {<a name="line.1845"></a>
-<span class="sourceLineNo">1846</span>        this.replicationSourceHandler.startReplicationService();<a name="line.1846"></a>
-<span class="sourceLineNo">1847</span>      }<a name="line.1847"></a>
-<span class="sourceLineNo">1848</span>      if (this.replicationSinkHandler != null) {<a name="line.1848"></a>
-<span class="sourceLineNo">1849</span>        this.replicationSinkHandler.startReplicationService();<a name="line.1849"></a>
-<span class="sourceLineNo">1850</span>      }<a name="line.1850"></a>
-<span class="sourceLineNo">1851</span>    }<a name="line.1851"></a>
-<span class="sourceLineNo">1852</span>  }<a name="line.1852"></a>
-<span class="sourceLineNo">1853</span><a name="line.1853"></a>
+<span class="sourceLineNo">1534</span><a name="line.1534"></a>
+<span class="sourceLineNo">1535</span>      // Set up ZK<a name="line.1535"></a>
+<span class="sourceLineNo">1536</span>      LOG.info("Serving as " + this.serverName + ", RpcServer on " + rpcServices.isa +<a name="line.1536"></a>
+<span class="sourceLineNo">1537</span>          ", sessionid=0x" +<a name="line.1537"></a>
+<span class="sourceLineNo">1538</span>          Long.toHexString(this.zooKeeper.getRecoverableZooKeeper().getSessionId()));<a name="line.1538"></a>
+<span class="sourceLineNo">1539</span><a name="line.1539"></a>
+<span class="sourceLineNo">1540</span>      // Wake up anyone waiting for this server to online<a name="line.1540"></a>
+<span class="sourceLineNo">1541</span>      synchronized (online) {<a name="line.1541"></a>
+<span class="sourceLineNo">1542</span>        online.set(true);<a name="line.1542"></a>
+<span class="sourceLineNo">1543</span>        online.notifyAll();<a name="line.1543"></a>
+<span class="sourceLineNo">1544</span>      }<a name="line.1544"></a>
+<span class="sourceLineNo">1545</span>    } catch (Throwable e) {<a name="line.1545"></a>
+<span class="sourceLineNo">1546</span>      stop("Failed initialization");<a name="line.1546"></a>
+<span class="sourceLineNo">1547</span>      throw convertThrowableToIOE(cleanup(e, "Failed init"),<a name="line.1547"></a>
+<span class="sourceLineNo">1548</span>          "Region server startup failed");<a name="line.1548"></a>
+<span class="sourceLineNo">1549</span>    } finally {<a name="line.1549"></a>
+<span class="sourceLineNo">1550</span>      sleeper.skipSleepCycle();<a name="line.1550"></a>
+<span class="sourceLineNo">1551</span>    }<a name="line.1551"></a>
+<span class="sourceLineNo">1552</span>  }<a name="line.1552"></a>
+<span class="sourceLineNo">1553</span><a name="line.1553"></a>
+<span class="sourceLineNo">1554</span>  protected void initializeMemStoreChunkCreator() {<a name="line.1554"></a>
+<span class="sourceLineNo">1555</span>    if (MemStoreLAB.isEnabled(conf)) {<a name="line.1555"></a>
+<span class="sourceLineNo">1556</span>      // MSLAB is enabled. So initialize MemStoreChunkPool<a name="line.1556"></a>
+<span class="sourceLineNo">1557</span>      // By this time, the MemstoreFlusher is already initialized. We can get the global limits from<a name="line.1557"></a>
+<span class="sourceLineNo">1558</span>      // it.<a name="line.1558"></a>
+<span class="sourceLineNo">1559</span>      Pair&lt;Long, MemoryType&gt; pair = MemorySizeUtil.getGlobalMemStoreSize(conf);<a name="line.1559"></a>
+<span class="sourceLineNo">1560</span>      long globalMemStoreSize = pair.getFirst();<a name="line.1560"></a>
+<span class="sourceLineNo">1561</span>      boolean offheap = this.regionServerAccounting.isOffheap();<a name="line.1561"></a>
+<span class="sourceLineNo">1562</span>      // When off heap memstore in use, take full area for chunk pool.<a name="line.1562"></a>
+<span class="sourceLineNo">1563</span>      float poolSizePercentage = offheap? 1.0F:<a name="line.1563"></a>
+<span class="sourceLineNo">1564</span>          conf.getFloat(MemStoreLAB.CHUNK_POOL_MAXSIZE_KEY, MemStoreLAB.POOL_MAX_SIZE_DEFAULT);<a name="line.1564"></a>
+<span class="sourceLineNo">1565</span>      float initialCountPercentage = conf.getFloat(MemStoreLAB.CHUNK_POOL_INITIALSIZE_KEY,<a name="line.1565"></a>
+<span class="sourceLineNo">1566</span>          MemStoreLAB.POOL_INITIAL_SIZE_DEFAULT);<a name="line.1566"></a>
+<span class="sourceLineNo">1567</span>      int chunkSize = conf.getInt(MemStoreLAB.CHUNK_SIZE_KEY, MemStoreLAB.CHUNK_SIZE_DEFAULT);<a name="line.1567"></a>
+<span class="sourceLineNo">1568</span>      // init the chunkCreator<a name="line.1568"></a>
+<span class="sourceLineNo">1569</span>      ChunkCreator chunkCreator =<a name="line.1569"></a>
+<span class="sourceLineNo">1570</span>          ChunkCreator.initialize(chunkSize, offheap, globalMemStoreSize, poolSizePercentage,<a name="line.1570"></a>
+<span class="sourceLineNo">1571</span>      initialCountPercentage, this.hMemManager);<a name="line.1571"></a>
+<span class="sourceLineNo">1572</span>    }<a name="line.1572"></a>
+<span class="sourceLineNo">1573</span>  }<a name="line.1573"></a>
+<span class="sourceLineNo">1574</span><a name="line.1574"></a>
+<span class="sourceLineNo">1575</span>  private void startHeapMemoryManager() {<a name="line.1575"></a>
+<span class="sourceLineNo">1576</span>    this.hMemManager = HeapMemoryManager.create(this.conf, this.cacheFlusher, this,<a name="line.1576"></a>
+<span class="sourceLineNo">1577</span>        this.regionServerAccounting);<a name="line.1577"></a>
+<span class="sourceLineNo">1578</span>    if (this.hMemManager != null) {<a name="line.1578"></a>
+<span class="sourceLineNo">1579</span>      this.hMemManager.start(getChoreService());<a name="line.1579"></a>
+<span class="sourceLineNo">1580</span>    }<a name="line.1580"></a>
+<span class="sourceLineNo">1581</span>  }<a name="line.1581"></a>
+<span class="sourceLineNo">1582</span><a name="line.1582"></a>
+<span class="sourceLineNo">1583</span>  private void createMyEphemeralNode() throws KeeperException, IOException {<a name="line.1583"></a>
+<span class="sourceLineNo">1584</span>    RegionServerInfo.Builder rsInfo = RegionServerInfo.newBuilder();<a name="line.1584"></a>
+<span class="sourceLineNo">1585</span>    rsInfo.setInfoPort(infoServer != null ? infoServer.getPort() : -1);<a name="line.1585"></a>
+<span class="sourceLineNo">1586</span>    rsInfo.setVersionInfo(ProtobufUtil.getVersionInfo());<a name="line.1586"></a>
+<span class="sourceLineNo">1587</span>    byte[] data = ProtobufUtil.prependPBMagic(rsInfo.build().toByteArray());<a name="line.1587"></a>
+<span class="sourceLineNo">1588</span>    ZKUtil.createEphemeralNodeAndWatch(this.zooKeeper, getMyEphemeralNodePath(), data);<a name="line.1588"></a>
+<span class="sourceLineNo">1589</span>  }<a name="line.1589"></a>
+<span class="sourceLineNo">1590</span><a name="line.1590"></a>
+<span class="sourceLineNo">1591</span>  private void deleteMyEphemeralNode() throws KeeperException {<a name="line.1591"></a>
+<span class="sourceLineNo">1592</span>    ZKUtil.deleteNode(this.zooKeeper, getMyEphemeralNodePath());<a name="line.1592"></a>
+<span class="sourceLineNo">1593</span>  }<a name="line.1593"></a>
+<span class="sourceLineNo">1594</span><a name="line.1594"></a>
+<span class="sourceLineNo">1595</span>  @Override<a name="line.1595"></a>
+<span class="sourceLineNo">1596</span>  public RegionServerAccounting getRegionServerAccounting() {<a name="line.1596"></a>
+<span class="sourceLineNo">1597</span>    return regionServerAccounting;<a name="line.1597"></a>
+<span class="sourceLineNo">1598</span>  }<a name="line.1598"></a>
+<span class="sourceLineNo">1599</span><a name="line.1599"></a>
+<span class="sourceLineNo">1600</span>  /*<a name="line.1600"></a>
+<span class="sourceLineNo">1601</span>   * @param r Region to get RegionLoad for.<a name="line.1601"></a>
+<span class="sourceLineNo">1602</span>   * @param regionLoadBldr the RegionLoad.Builder, can be null<a name="line.1602"></a>
+<span class="sourceLineNo">1603</span>   * @param regionSpecifier the RegionSpecifier.Builder, can be null<a name="line.1603"></a>
+<span class="sourceLineNo">1604</span>   * @return RegionLoad instance.<a name="line.1604"></a>
+<span class="sourceLineNo">1605</span>   *<a name="line.1605"></a>
+<span class="sourceLineNo">1606</span>   * @throws IOException<a name="line.1606"></a>
+<span class="sourceLineNo">1607</span>   */<a name="line.1607"></a>
+<span class="sourceLineNo">1608</span>  RegionLoad createRegionLoad(final HRegion r, RegionLoad.Builder regionLoadBldr,<a name="line.1608"></a>
+<span class="sourceLineNo">1609</span>      RegionSpecifier.Builder regionSpecifier) throws IOException {<a name="line.1609"></a>
+<span class="sourceLineNo">1610</span>    byte[] name = r.getRegionInfo().getRegionName();<a name="line.1610"></a>
+<span class="sourceLineNo">1611</span>    int stores = 0;<a name="line.1611"></a>
+<span class="sourceLineNo">1612</span>    int storefiles = 0;<a name="line.1612"></a>
+<span class="sourceLineNo">1613</span>    int storeUncompressedSizeMB = 0;<a name="line.1613"></a>
+<span class="sourceLineNo">1614</span>    int storefileSizeMB = 0;<a name="line.1614"></a>
+<span class="sourceLineNo">1615</span>    int memstoreSizeMB = (int) (r.getMemStoreSize() / 1024 / 1024);<a name="line.1615"></a>
+<span class="sourceLineNo">1616</span>    long storefileIndexSizeKB = 0;<a name="line.1616"></a>
+<span class="sourceLineNo">1617</span>    int rootIndexSizeKB = 0;<a name="line.1617"></a>
+<span class="sourceLineNo">1618</span>    int totalStaticIndexSizeKB = 0;<a name="line.1618"></a>
+<span class="sourceLineNo">1619</span>    int totalStaticBloomSizeKB = 0;<a name="line.1619"></a>
+<span class="sourceLineNo">1620</span>    long totalCompactingKVs = 0;<a name="line.1620"></a>
+<span class="sourceLineNo">1621</span>    long currentCompactedKVs = 0;<a name="line.1621"></a>
+<span class="sourceLineNo">1622</span>    List&lt;HStore&gt; storeList = r.getStores();<a name="line.1622"></a>
+<span class="sourceLineNo">1623</span>    stores += storeList.size();<a name="line.1623"></a>
+<span class="sourceLineNo">1624</span>    for (HStore store : storeList) {<a name="line.1624"></a>
+<span class="sourceLineNo">1625</span>      storefiles += store.getStorefilesCount();<a name="line.1625"></a>
+<span class="sourceLineNo">1626</span>      storeUncompressedSizeMB += (int) (store.getStoreSizeUncompressed() / 1024 / 1024);<a name="line.1626"></a>
+<span class="sourceLineNo">1627</span>      storefileSizeMB += (int) (store.getStorefilesSize() / 1024 / 1024);<a name="line.1627"></a>
+<span class="sourceLineNo">1628</span>      storefileIndexSizeKB += store.getStorefilesIndexSize() / 1024;<a name="line.1628"></a>
+<span class="sourceLineNo">1629</span>      CompactionProgress progress = store.getCompactionProgress();<a name="line.1629"></a>
+<span class="sourceLineNo">1630</span>      if (progress != null) {<a name="line.1630"></a>
+<span class="sourceLineNo">1631</span>        totalCompactingKVs += progress.totalCompactingKVs;<a name="line.1631"></a>
+<span class="sourceLineNo">1632</span>        currentCompactedKVs += progress.currentCompactedKVs;<a name="line.1632"></a>
+<span class="sourceLineNo">1633</span>      }<a name="line.1633"></a>
+<span class="sourceLineNo">1634</span>      rootIndexSizeKB += (int) (store.getStorefilesIndexSize() / 1024);<a name="line.1634"></a>
+<span class="sourceLineNo">1635</span>      totalStaticIndexSizeKB += (int) (store.getTotalStaticIndexSize() / 1024);<a name="line.1635"></a>
+<span class="sourceLineNo">1636</span>      totalStaticBloomSizeKB += (int) (store.getTotalStaticBloomSize() / 1024);<a name="line.1636"></a>
+<span class="sourceLineNo">1637</span>    }<a name="line.1637"></a>
+<span class="sourceLineNo">1638</span><a name="line.1638"></a>
+<span class="sourceLineNo">1639</span>    float dataLocality =<a name="line.1639"></a>
+<span class="sourceLineNo">1640</span>        r.getHDFSBlocksDistribution().getBlockLocalityIndex(serverName.getHostname());<a name="line.1640"></a>
+<span class="sourceLineNo">1641</span>    if (regionLoadBldr == null) {<a name="line.1641"></a>
+<span class="sourceLineNo">1642</span>      regionLoadBldr = RegionLoad.newBuilder();<a name="line.1642"></a>
+<span class="sourceLineNo">1643</span>    }<a name="line.1643"></a>
+<span class="sourceLineNo">1644</span>    if (regionSpecifier == null) {<a name="line.1644"></a>
+<span class="sourceLineNo">1645</span>      regionSpecifier = RegionSpecifier.newBuilder();<a name="line.1645"></a>
+<span class="sourceLineNo">1646</span>    }<a name="line.1646"></a>
+<span class="sourceLineNo">1647</span>    regionSpecifier.setType(RegionSpecifierType.REGION_NAME);<a name="line.1647"></a>
+<span class="sourceLineNo">1648</span>    regionSpecifier.setValue(UnsafeByteOperations.unsafeWrap(name));<a name="line.1648"></a>
+<span class="sourceLineNo">1649</span>    regionLoadBldr.setRegionSpecifier(regionSpecifier.build())<a name="line.1649"></a>
+<span class="sourceLineNo">1650</span>      .setStores(stores)<a name="line.1650"></a>
+<span class="sourceLineNo">1651</span>      .setStorefiles(storefiles)<a name="line.1651"></a>
+<span class="sourceLineNo">1652</span>      .setStoreUncompressedSizeMB(storeUncompressedSizeMB)<a name="line.1652"></a>
+<span class="sourceLineNo">1653</span>      .setStorefileSizeMB(storefileSizeMB)<a name="line.1653"></a>
+<span class="sourceLineNo">1654</span>      .setMemStoreSizeMB(memstoreSizeMB)<a name="line.1654"></a>
+<span class="sourceLineNo">1655</span>      .setStorefileIndexSizeKB(storefileIndexSizeKB)<a name="line.1655"></a>
+<span class="sourceLineNo">1656</span>      .setRootIndexSizeKB(rootIndexSizeKB)<a name="line.1656"></a>
+<span class="sourceLineNo">1657</span>      .setTotalStaticIndexSizeKB(totalStaticIndexSizeKB)<a name="line.1657"></a>
+<span class="sourceLineNo">1658</span>      .setTotalStaticBloomSizeKB(totalStaticBloomSizeKB)<a name="line.1658"></a>
+<span class="sourceLineNo">1659</span>      .setReadRequestsCount(r.getReadRequestsCount())<a name="line.1659"></a>
+<span class="sourceLineNo">1660</span>      .setFilteredReadRequestsCount(r.getFilteredReadRequestsCount())<a name="line.1660"></a>
+<span class="sourceLineNo">1661</span>      .setWriteRequestsCount(r.getWriteRequestsCount())<a name="line.1661"></a>
+<span class="sourceLineNo">1662</span>      .setTotalCompactingKVs(totalCompactingKVs)<a name="line.1662"></a>
+<span class="sourceLineNo">1663</span>      .setCurrentCompactedKVs(currentCompactedKVs)<a name="line.1663"></a>
+<span class="sourceLineNo">1664</span>      .setDataLocality(dataLocality)<a name="line.1664"></a>
+<span class="sourceLineNo">1665</span>      .setLastMajorCompactionTs(r.getOldestHfileTs(true));<a name="line.1665"></a>
+<span class="sourceLineNo">1666</span>    ((HRegion)r).setCompleteSequenceId(regionLoadBldr);<a name="line.1666"></a>
+<span class="sourceLineNo">1667</span><a name="line.1667"></a>
+<span class="sourceLineNo">1668</span>    return regionLoadBldr.build();<a name="line.1668"></a>
+<span class="sourceLineNo">1669</span>  }<a name="line.1669"></a>
+<span class="sourceLineNo">1670</span><a name="line.1670"></a>
+<span class="sourceLineNo">1671</span>  /**<a name="line.1671"></a>
+<span class="sourceLineNo">1672</span>   * @param encodedRegionName<a name="line.1672"></a>
+<span class="sourceLineNo">1673</span>   * @return An instance of RegionLoad.<a name="line.1673"></a>
+<span class="sourceLineNo">1674</span>   */<a name="line.1674"></a>
+<span class="sourceLineNo">1675</span>  public RegionLoad createRegionLoad(final String encodedRegionName) throws IOException {<a name="line.1675"></a>
+<span class="sourceLineNo">1676</span>    HRegion r = onlineRegions.get(encodedRegionName);<a name="line.1676"></a>
+<span class="sourceLineNo">1677</span>    return r != null ? createRegionLoad(r, null, null) : null;<a name="line.1677"></a>
+<span class="sourceLineNo">1678</span>  }<a name="line.1678"></a>
+<span class="sourceLineNo">1679</span><a name="line.1679"></a>
+<span class="sourceLineNo">1680</span>  /*<a name="line.1680"></a>
+<span class="sourceLineNo">1681</span>   * Inner class that runs on a long period checking if regions need compaction.<a name="line.1681"></a>
+<span class="sourceLineNo">1682</span>   */<a name="line.1682"></a>
+<span class="sourceLineNo">1683</span>  private static class CompactionChecker extends ScheduledChore {<a name="line.1683"></a>
+<span class="sourceLineNo">1684</span>    private final HRegionServer instance;<a name="line.1684"></a>
+<span class="sourceLineNo">1685</span>    private final int majorCompactPriority;<a name="line.1685"></a>
+<span class="sourceLineNo">1686</span>    private final static int DEFAULT_PRIORITY = Integer.MAX_VALUE;<a name="line.1686"></a>
+<span class="sourceLineNo">1687</span>    //Iteration is 1-based rather than 0-based so we don't check for compaction<a name="line.1687"></a>
+<span class="sourceLineNo">1688</span>    // immediately upon region server startup<a name="line.1688"></a>
+<span class="sourceLineNo">1689</span>    private long iteration = 1;<a name="line.1689"></a>
+<span class="sourceLineNo">1690</span><a name="line.1690"></a>
+<span class="sourceLineNo">1691</span>    CompactionChecker(final HRegionServer h, final int sleepTime, final Stoppable stopper) {<a name="line.1691"></a>
+<span class="sourceLineNo">1692</span>      super("CompactionChecker", stopper, sleepTime);<a name="line.1692"></a>
+<span class="sourceLineNo">1693</span>      this.instance = h;<a name="line.1693"></a>
+<span class="sourceLineNo">1694</span>      LOG.info(this.getName() + " runs every " + StringUtils.formatTime(sleepTime));<a name="line.1694"></a>
+<span class="sourceLineNo">1695</span><a name="line.1695"></a>
+<span class="sourceLineNo">1696</span>      /* MajorCompactPriority is configurable.<a name="line.1696"></a>
+<span class="sourceLineNo">1697</span>       * If not set, the compaction will use default priority.<a name="line.1697"></a>
+<span class="sourceLineNo">1698</span>       */<a name="line.1698"></a>
+<span class="sourceLineNo">1699</span>      this.majorCompactPriority = this.instance.conf.<a name="line.1699"></a>
+<span class="sourceLineNo">1700</span>          getInt("hbase.regionserver.compactionChecker.majorCompactPriority",<a name="line.1700"></a>
+<span class="sourceLineNo">1701</span>              DEFAULT_PRIORITY);<a name="line.1701"></a>
+<span class="sourceLineNo">1702</span>    }<a name="line.1702"></a>
+<span class="sourceLineNo">1703</span><a name="line.1703"></a>
+<span class="sourceLineNo">1704</span>    @Override<a name="line.1704"></a>
+<span class="sourceLineNo">1705</span>    protected void chore() {<a name="line.1705"></a>
+<span class="sourceLineNo">1706</span>      for (Region r : this.instance.onlineRegions.values()) {<a name="line.1706"></a>
+<span class="sourceLineNo">1707</span>        if (r == null) {<a name="line.1707"></a>
+<span class="sourceLineNo">1708</span>          continue;<a name="line.1708"></a>
+<span class="sourceLineNo">1709</span>        }<a name="line.1709"></a>
+<span class="sourceLineNo">1710</span>        HRegion hr = (HRegion) r;<a name="line.1710"></a>
+<span class="sourceLineNo">1711</span>        for (HStore s : hr.stores.values()) {<a name="line.1711"></a>
+<span class="sourceLineNo">1712</span>          try {<a name="line.1712"></a>
+<span class="sourceLineNo">1713</span>            long multiplier = s.getCompactionCheckMultiplier();<a name="line.1713"></a>
+<span class="sourceLineNo">1714</span>            assert multiplier &gt; 0;<a name="line.1714"></a>
+<span class="sourceLineNo">1715</span>            if (iteration % multiplier != 0) {<a name="line.1715"></a>
+<span class="sourceLineNo">1716</span>              continue;<a name="line.1716"></a>
+<span class="sourceLineNo">1717</span>            }<a name="line.1717"></a>
+<span class="sourceLineNo">1718</span>            if (s.needsCompaction()) {<a name="line.1718"></a>
+<span class="sourceLineNo">1719</span>              // Queue a compaction. Will recognize if major is needed.<a name="line.1719"></a>
+<span class="sourceLineNo">1720</span>              this.instance.compactSplitThread.requestSystemCompaction(hr, s,<a name="line.1720"></a>
+<span class="sourceLineNo">1721</span>                getName() + " requests compaction");<a name="line.1721"></a>
+<span class="sourceLineNo">1722</span>            } else if (s.shouldPerformMajorCompaction()) {<a name="line.1722"></a>
+<span class="sourceLineNo">1723</span>              s.triggerMajorCompaction();<a name="line.1723"></a>
+<span class="sourceLineNo">1724</span>              if (majorCompactPriority == DEFAULT_PRIORITY ||<a name="line.1724"></a>
+<span class="sourceLineNo">1725</span>                  majorCompactPriority &gt; hr.getCompactPriority()) {<a name="line.1725"></a>
+<span class="sourceLineNo">1726</span>                this.instance.compactSplitThread.requestCompaction(hr, s,<a name="line.1726"></a>
+<span class="sourceLineNo">1727</span>                    getName() + " requests major compaction; use default priority",<a name="line.1727"></a>
+<span class="sourceLineNo">1728</span>                    Store.NO_PRIORITY,<a name="line.1728"></a>
+<span class="sourceLineNo">1729</span>                CompactionLifeCycleTracker.DUMMY, null);<a name="line.1729"></a>
+<span class="sourceLineNo">1730</span>              } else {<a name="line.1730"></a>
+<span class="sourceLineNo">1731</span>                this.instance.compactSplitThread.requestCompaction(hr, s,<a name="line.1731"></a>
+<span class="sourceLineNo">1732</span>                    getName() + " requests major compaction; use configured priority",<a name="line.1732"></a>
+<span class="sourceLineNo">1733</span>                    this.majorCompactPriority, CompactionLifeCycleTracker.DUMMY, null);<a name="line.1733"></a>
+<span class="sourceLineNo">1734</span>              }<a name="line.1734"></a>
+<span class="sourceLineNo">1735</span>            }<a name="line.1735"></a>
+<span class="sourceLineNo">1736</span>          } catch (IOException e) {<a name="line.1736"></a>
+<span class="sourceLineNo">1737</span>            LOG.warn("Failed major compaction check on " + r, e);<a name="line.1737"></a>
+<span class="sourceLineNo">1738</span>          }<a name="line.1738"></a>
+<span class="sourceLineNo">1739</span>        }<a name="line.1739"></a>
+<span class="sourceLineNo">1740</span>      }<a name="line.1740"></a>
+<span class="sourceLineNo">1741</span>      iteration = (iteration == Long.MAX_VALUE) ? 0 : (iteration + 1);<a name="line.1741"></a>
+<span class="sourceLineNo">1742</span>    }<a name="line.1742"></a>
+<span class="sourceLineNo">1743</span>  }<a name="line.1743"></a>
+<span class="sourceLineNo">1744</span><a name="line.1744"></a>
+<span class="sourceLineNo">1745</span>  static class PeriodicMemStoreFlusher extends ScheduledChore {<a name="line.1745"></a>
+<span class="sourceLineNo">1746</span>    final HRegionServer server;<a name="line.1746"></a>
+<span class="sourceLineNo">1747</span>    final static int RANGE_OF_DELAY = 5 * 60 * 1000; // 5 min in milliseconds<a name="line.1747"></a>
+<span class="sourceLineNo">1748</span>    final static int MIN_DELAY_TIME = 0; // millisec<a name="line.1748"></a>
+<span class="sourceLineNo">1749</span>    public PeriodicMemStoreFlusher(int cacheFlushInterval, final HRegionServer server) {<a name="line.1749"></a>
+<span class="sourceLineNo">1750</span>      super("MemstoreFlusherChore", server, cacheFlushInterval);<a name="line.1750"></a>
+<span class="sourceLineNo">1751</span>      this.server = server;<a name="line.1751"></a>
+<span class="sourceLineNo">1752</span>    }<a name="line.1752"></a>
+<span class="sourceLineNo">1753</span><a name="line.1753"></a>
+<span class="sourceLineNo">1754</span>    @Override<a name="line.1754"></a>
+<span class="sourceLineNo">1755</span>    protected void chore() {<a name="line.1755"></a>
+<span class="sourceLineNo">1756</span>      final StringBuffer whyFlush = new StringBuffer();<a name="line.1756"></a>
+<span class="sourceLineNo">1757</span>      for (HRegion r : this.server.onlineRegions.values()) {<a name="line.1757"></a>
+<span class="sourceLineNo">1758</span>        if (r == null) continue;<a name="line.1758"></a>
+<span class="sourceLineNo">1759</span>        if (r.shouldFlush(whyFlush)) {<a name="line.1759"></a>
+<span class="sourceLineNo">1760</span>          FlushRequester requester = server.getFlushRequester();<a name="line.1760"></a>
+<span class="sourceLineNo">1761</span>          if (requester != null) {<a name="line.1761"></a>
+<span class="sourceLineNo">1762</span>            long randomDelay = RandomUtils.nextInt(0, RANGE_OF_DELAY) + MIN_DELAY_TIME;<a name="line.1762"></a>
+<span class="sourceLineNo">1763</span>            LOG.info(getName() + " requesting flush of " +<a name="line.1763"></a>
+<span class="sourceLineNo">1764</span>              r.getRegionInfo().getRegionNameAsString() + " because " +<a name="line.1764"></a>
+<span class="sourceLineNo">1765</span>              whyFlush.toString() +<a name="line.1765"></a>
+<span class="sourceLineNo">1766</span>              " after random delay " + randomDelay + "ms");<a name="line.1766"></a>
+<span class="sourceLineNo">1767</span>            //Throttle the flushes by putting a delay. If we don't throttle, and there<a name="line.1767"></a>
+<span class="sourceLineNo">1768</span>            //is a balanced write-load on the regions in a table, we might end up<a name="line.1768"></a>
+<span class="sourceLineNo">1769</span>            //overwhelming the filesystem with too many flushes at once.<a name="line.1769"></a>
+<span class="sourceLineNo">1770</span>            requester.requestDelayedFlush(r, randomDelay, false);<a name="line.1770"></a>
+<span class="sourceLineNo">1771</span>          }<a name="line.1771"></a>
+<span class="sourceLineNo">1772</span>        }<a name="line.1772"></a>
+<span class="sourceLineNo">1773</span>      }<a name="line.1773"></a>
+<span class="sourceLineNo">1774</span>    }<a name="line.1774"></a>
+<span class="sourceLineNo">1775</span>  }<a name="line.1775"></a>
+<span class="sourceLineNo">1776</span><a name="line.1776"></a>
+<span class="sourceLineNo">1777</span>  /**<a name="line.1777"></a>
+<span class="sourceLineNo">1778</span>   * Report the status of the server. A server is online once all the startup is<a name="line.1778"></a>
+<span class="sourceLineNo">1779</span>   * completed (setting up filesystem, starting executorService threads, etc.). This<a name="line.1779"></a>
+<span class="sourceLineNo">1780</span>   * method is designed mostly to be useful in tests.<a name="line.1780"></a>
+<span class="sourceLineNo">1781</span>   *<a name="line.1781"></a>
+<span class="sourceLineNo">1782</span>   * @return true if online, false if not.<a name="line.1782"></a>
+<span class="sourceLineNo">1783</span>   */<a name="line.1783"></a>
+<span class="sourceLineNo">1784</span>  public boolean isOnline() {<a name="line.1784"></a>
+<span class="sourceLineNo">1785</span>    return online.get();<a name="line.1785"></a>
+<span class="sourceLineNo">1786</span>  }<a name="line.1786"></a>
+<span class="sourceLineNo">1787</span><a name="line.1787"></a>
+<span class="sourceLineNo">1788</span>  /**<a name="line.1788"></a>
+<span class="sourceLineNo">1789</span>   * Setup WAL log and replication if enabled.<a name="line.1789"></a>
+<span class="sourceLineNo">1790</span>   * Replication setup is done in here because it wants to be hooked up to WAL.<a name="line.1790"></a>
+<span class="sourceLineNo">1791</span>   *<a name="line.1791"></a>
+<span class="sourceLineNo">1792</span>   * @throws IOException<a name="line.1792"></a>
+<span class="sourceLineNo">1793</span>   */<a name="line.1793"></a>
+<span class="sourceLineNo">1794</span>  private void setupWALAndReplication() throws IOException {<a name="line.1794"></a>
+<span class="sourceLineNo">1795</span>    // TODO Replication make assumptions here based on the default filesystem impl<a name="line.1795"></a>
+<span class="sourceLineNo">1796</span>    Path oldLogDir = new Path(walRootDir, HConstants.HREGION_OLDLOGDIR_NAME);<a name="line.1796"></a>
+<span class="sourceLineNo">1797</span>    String logName = AbstractFSWALProvider.getWALDirectoryName(this.serverName.toString());<a name="line.1797"></a>
+<span class="sourceLineNo">1798</span><a name="line.1798"></a>
+<span class="sourceLineNo">1799</span>    Path logDir = new Path(walRootDir, logName);<a name="line.1799"></a>
+<span class="sourceLineNo">1800</span>    if (LOG.isDebugEnabled()) LOG.debug("logDir=" + logDir);<a name="line.1800"></a>
+<span class="sourceLineNo">1801</span>    if (this.walFs.exists(logDir)) {<a name="line.1801"></a>
+<span class="sourceLineNo">1802</span>      throw new RegionServerRunningException("Region server has already " +<a name="line.1802"></a>
+<span class="sourceLineNo">1803</span>          "created directory at " + this.serverName.toString());<a name="line.1803"></a>
+<span class="sourceLineNo">1804</span>    }<a name="line.1804"></a>
+<span class="sourceLineNo">1805</span><a name="line.1805"></a>
+<span class="sourceLineNo">1806</span>    // Instantiate replication if replication enabled.  Pass it the log directories.<a name="line.1806"></a>
+<span class="sourceLineNo">1807</span>    // In here we create the Replication instances. Later they are initialized and started up.<a name="line.1807"></a>
+<span class="sourceLineNo">1808</span>    createNewReplicationInstance(conf, this, this.walFs, logDir, oldLogDir);<a name="line.1808"></a>
+<span class="sourceLineNo">1809</span><a name="line.1809"></a>
+<span class="sourceLineNo">1810</span>    // listeners the wal factory will add to wals it creates.<a name="line.1810"></a>
+<span class="sourceLineNo">1811</span>    List&lt;WALActionsListener&gt; listeners = new ArrayList&lt;&gt;();<a name="line.1811"></a>
+<span class="sourceLineNo">1812</span>    listeners.add(new MetricsWAL());<a name="line.1812"></a>
+<span class="sourceLineNo">1813</span>    if (this.replicationSourceHandler != null &amp;&amp;<a name="line.1813"></a>
+<span class="sourceLineNo">1814</span>        this.replicationSourceHandler.getWALActionsListener() != null) {<a name="line.1814"></a>
+<span class="sourceLineNo">1815</span>      // Replication handler is an implementation of WALActionsListener.<a name="line.1815"></a>
+<span class="sourceLineNo">1816</span>      listeners.add(this.replicationSourceHandler.getWALActionsListener());<a name="line.1816"></a>
+<span class="sourceLineNo">1817</span>    }<a name="line.1817"></a>
+<span class="sourceLineNo">1818</span><a name="line.1818"></a>
+<span class="sourceLineNo">1819</span>    // There is a cyclic dependency between ReplicationSourceHandler and WALFactory.<a name="line.1819"></a>
+<span class="sourceLineNo">1820</span>    // We use WALActionsListener to get the newly rolled WALs, so we need to get the<a name="line.1820"></a>
+<span class="sourceLineNo">1821</span>    // WALActionsListeners from ReplicationSourceHandler before constructing WALFactory. And then<a name="line.1821"></a>
+<span class="sourceLineNo">1822</span>    // ReplicationSourceHandler need to use WALFactory get the length of the wal file being written.<a name="line.1822"></a>
+<span class="sourceLineNo">1823</span>    // So we here we need to construct WALFactory first, and then pass it to the initialized method<a name="line.1823"></a>
+<span class="sourceLineNo">1824</span>    // of ReplicationSourceHandler.<a name="line.1824"></a>
+<span class="sourceLineNo">1825</span>    // TODO: I can't follow replication; it has initialize and then later on we start it!<a name="line.1825"></a>
+<span class="sourceLineNo">1826</span>    WALFactory factory = new WALFactory(conf, listeners, serverName.toString());<a name="line.1826"></a>
+<span class="sourceLineNo">1827</span>    this.walFactory = factory;<a name="line.1827"></a>
+<span class="sourceLineNo">1828</span>    if (this.replicationSourceHandler != null) {<a name="line.1828"></a>
+<span class="sourceLineNo">1829</span>      this.replicationSourceHandler.initialize(this, walFs, logDir, oldLogDir, factory);<a name="line.1829"></a>
+<span class="sourceLineNo">1830</span>    }<a name="line.1830"></a>
+<span class="sourceLineNo">1831</span>    if (this.replicationSinkHandler != null &amp;&amp;<a name="line.1831"></a>
+<span class="sourceLineNo">1832</span>        this.replicationSinkHandler != this.replicationSourceHandler) {<a name="line.1832"></a>
+<span class="sourceLineNo">1833</span>      this.replicationSinkHandler.initialize(this, walFs, logDir, oldLogDir, factory);<a name="line.1833"></a>
+<span class="sourceLineNo">1834</span>    }<a name="line.1834"></a>
+<span class="sourceLineNo">1835</span>  }<a name="line.1835"></a>
+<span class="sourceLineNo">1836</span><a name="line.1836"></a>
+<span class="sourceLineNo">1837</span>  /**<a name="line.1837"></a>
+<span class="sourceLineNo">1838</span>   * Start up replication source and sink handlers.<a name="line.1838"></a>
+<span class="sourceLineNo">1839</span>   * @throws IOException<a name="line.1839"></a>
+<span class="sourceLineNo">1840</span>   */<a name="line.1840"></a>
+<span class="sourceLineNo">1841</span>  private void startReplicationService() throws IOException {<a name="line.1841"></a>
+<span class="sourceLineNo">1842</span>    if (this.replicationSourceHandler == this.replicationSinkHandler &amp;&amp;<a name="line.1842"></a>
+<span class="sourceLineNo">1843</span>        this.replicationSourceHandler != null) {<a name="line.1843"></a>
+<span class="sourceLineNo">1844</span>      this.replicationSourceHandler.startReplicationService();<a name="line.1844"></a>
+<span class="sourceLineNo">1845</span>    } else {<a name="line.1845"></a>
+<span class="sourceLineNo">1846</span>      if (this.replicationSourceHandler != null) {<a name="line.1846"></a>
+<span class="sourceLineNo">1847</span>        this.replicationSourceHandler.startReplicationService();<a name="line.1847"></a>
+<span class="sourceLineNo">1848</span>      }<a name="line.1848"></a>
+<span class="sourceLineNo">1849</span>      if (this.replicationSinkHandler != null) {<a name="line.1849"></a>
+<span class="sourceLineNo">1850</span>        this.replicationSinkHandler.startReplicationService();<a name="line.1850"></a>
+<span class="sourceLineNo">1851</span>      }<a name="line.1851"></a>
+<span class="sourceLineNo">1852</span>    }<a name="line.1852"></a>
+<span class="sourceLineNo">1853</span>  }<a name="line.1853"></a>
 <span class="sourceLineNo">1854</span><a name="line.1854"></a>
-<span class="sourceLineNo">1855</span>  public MetricsRegionServer getRegionServerMetrics() {<a name="line.1855"></a>
-<span class="sourceLineNo">1856</span>    return this.metricsRegionServer;<a name="line.1856"></a>
-<span class="sourceLineNo">1857</span>  }<a name="line.1857"></a>
-<span class="sourceLineNo">1858</span><a name="line.1858"></a>
-<span class="sourceLineNo">1859</span>  /**<a name="line.1859"></a>
-<span class="sourceLineNo">1860</span>   * @return Master address tracker instance.<a name="line.1860"></a>
-<span class="sourceLineNo">1861</span>   */<a name="line.1861"></a>
-<span class="sourceLineNo">1862</span>  public MasterAddressTracker getMasterAddressTracker() {<a name="line.1862"></a>
-<span class="sourceLineNo">1863</span>    return this.masterAddressTracker;<a name="line.1863"></a>
-<span class="sourceLineNo">1864</span>  }<a name="line.1864"></a>
-<span class="sourceLineNo">1865</span><a name="line.1865"></a>
-<span class="sourceLineNo">1866</span>  /*<a name="line.1866"></a>
-<span class="sourceLineNo">1867</span>   * Start maintenance Threads, Server, Worker and lease checker threads.<a name="line.1867"></a>
-<span class="sourceLineNo">1868</span>   * Start all threads we need to run. This is called after we've successfully<a name="line.1868"></a>
-<span class="sourceLineNo">1869</span>   * registered with the Master.<a name="line.1869"></a>
-<span class="sourceLineNo">1870</span>   * Install an UncaughtExceptionHandler that calls abort of RegionServer if we<a name="line.1870"></a>
-<span class="sourceLineNo">1871</span>   * get an unhandled exception. We cannot set the handler on all threads.<a name="line.1871"></a>
-<span class="sourceLineNo">1872</span>   * Server's internal Listener thread is off limits. For Server, if an OOME, it<a name="line.1872"></a>
-<span class="sourceLineNo">1873</span>   * waits a while then retries. Meantime, a flush or a compaction that tries to<a name="line.1873"></a>
-<span class="sourceLineNo">1874</span>   * run should trigger same critical condition and the shutdown will run. On<a name="line.1874"></a>
-<span class="sourceLineNo">1875</span>   * its way out, this server will shut down Server. Leases are sort of<a name="line.1875"></a>
-<span class="sourceLineNo">1876</span>   * inbetween. It has an internal thread that while it inherits from Chore, it<a name="line.1876"></a>
-<span class="sourceLineNo">1877</span>   * keeps its own internal stop mechanism so needs to be stopped by this<a name="line.1877"></a>
-<span class="sourceLineNo">1878</span>   * hosting server. Worker logs the exception and exits.<a name="line.1878"></a>
-<span class="sourceLineNo">1879</span>   */<a name="line.1879"></a>
-<span class="sourceLineNo">1880</span>  private void startServices() throws IOException {<a name="line.1880"></a>
-<span class="sourceLineNo">1881</span>    if (!isStopped() &amp;&amp; !isAborted()) {<a name="line.1881"></a>
-<span class="sourceLineNo">1882</span>      initializeThreads();<a name="line.1882"></a>
-<span class="sourceLineNo">1883</span>    }<a name="line.1883"></a>
-<span class="sourceLineNo">1884</span>    this.secureBulkLoadManager = new SecureBulkLoadManager(this.conf, clusterConnection);<a name="line.1884"></a>
-<span class="sourceLineNo">1885</span>    this.secureBulkLoadManager.start();<a name="line.1885"></a>
-<span class="sourceLineNo">1886</span><a name="line.1886"></a>
-<span class="sourceLineNo">1887</span>    // Health checker thread.<a name="line.1887"></a>
-<span class="sourceLineNo">1888</span>    if (isHealthCheckerConfigured()) {<a name="line.1888"></a>
-<span class="sourceLineNo">1889</span>      int sleepTime = this.conf.getInt(HConstants.HEALTH_CHORE_WAKE_FREQ,<a name="line.1889"></a>
-<span class="sourceLineNo">1890</span>      HConstants.DEFAULT_THREAD_WAKE_FREQUENCY);<a name="line.1890"></a>
-<span class="sourceLineNo">1891</span>      healthCheckChore = new HealthCheckChore(sleepTime, this, getConfiguration());<a name="line.1891"></a>
-<span class="sourceLineNo">1892</span>    }<a name="line.1892"></a>
-<span class="sourceLineNo">1893</span><a name="line.1893"></a>
-<span class="sourceLineNo">1894</span>    this.walRoller = new LogRoller(this, this);<a name="line.1894"></a>
-<span class="sourceLineNo">1895</span>    this.flushThroughputController = FlushThroughputControllerFactory.create(this, conf);<a name="line.1895"></a>
-<span class="sourceLineNo">1896</span><a name="line.1896"></a>
-<span class="sourceLineNo">1897</span>    // Create the CompactedFileDischarger chore executorService. This chore helps to<a name="line.1897"></a>
-<span class="sourceLineNo">1898</span>    // remove the compacted files<a name="line.1898"></a>
-<span class="sourceLineNo">1899</span>    // that will no longer be used in reads.<a name="line.1899"></a>
-<span class="sourceLineNo">1900</span>    // Default is 2 mins. The default value for TTLCleaner is 5 mins so we set this to<a name="line.1900"></a>
-<span class="sourceLineNo">1901</span>    // 2 mins so that compacted files can be archived before the TTLCleaner runs<a name="line.1901"></a>
-<span class="sourceLineNo">1902</span>    int cleanerInterval =<a name="line.1902"></a>
-<span class="sourceLineNo">1903</span>    conf.getInt("hbase.hfile.compaction.discharger.interval", 2 * 60 * 1000);<a name="line.1903"></a>
-<span class="sourceLineNo">1904</span>    this.compactedFileDischarger =<a name="line.1904"></a>
-<span class="sourceLineNo">1905</span>    new CompactedHFilesDischarger(cleanerInterval, this, this);<a name="line.1905"></a>
-<span class="sourceLineNo">1906</span>    choreService.scheduleChore(compactedFileDischarger);<a name="line.1906"></a>
-<span class="sourceLineNo">1907</span><a name="line.1907"></a>
-<span class="sourceLineNo">1908</span>    // Start executor services<a name="line.1908"></a>
-<span class="sourceLineNo">1909</span>    this.executorService.startExecutorService(ExecutorType.RS_OPEN_REGION,<a name="line.1909"></a>
-<span class="sourceLineNo">1910</span>        conf.getInt("hbase.regionserver.executor.openregion.threads", 3));<a name="line.1910"></a>
-<span class="sourceLineNo">1911</span>    this.executorService.startExecutorService(ExecutorType.RS_OPEN_META,<a name="line.1911"></a>
-<span class="sourceLineNo">1912</span>        conf.getInt("hbase.regionserver.executor.openmeta.threads", 1));<a name="line.1912"></a>
-<span class="sourceLineNo">1913</span>    this.executorService.startExecutorService(ExecutorType.RS_OPEN_PRIORITY_REGION,<a name="line.1913"></a>
-<span class="sourceLineNo">1914</span>        conf.getInt("hbase.regionserver.executor.openpriorityregion.threads", 3));<a name="line.1914"></a>
-<span class="sourceLineNo">1915</span>    this.executorService.startExecutorService(ExecutorType.RS_CLOSE_REGION,<a name="line.1915"></a>
-<span class="sourceLineNo">1916</span>        conf.getInt("hbase.regionserver.executor.closeregion.threads", 3));<a name="line.1916"></a>
-<span class="sourceLineNo">1917</span>    this.executorService.startExecutorService(ExecutorType.RS_CLOSE_META,<a name="line.1917"></a>
-<span class="sourceLineNo">1918</span>        conf.getInt("hbase.regionserver.executor.closemeta.threads", 1));<a name="line.1918"></a>
-<span class="sourceLineNo">1919</span>    if (conf.getBoolean(StoreScanner.STORESCANNER_PARALLEL_SEEK_ENABLE, false)) {<a name="line.1919"></a>
-<span class="sourceLineNo">1920</span>      this.executorService.startExecutorService(ExecutorType.RS_PARALLEL_SEEK,<a name="line.1920"></a>
-<span class="sourceLineNo">1921</span>          conf.getInt("hbase.storescanner.parallel.seek.threads", 10));<a name="line.1921"></a>
-<span class="sourceLineNo">1922</span>    }<a name="line.1922"></a>
-<span class="sourceLineNo">1923</span>    this.executorService.startExecutorService(ExecutorType.RS_LOG_REPLAY_OPS, conf.getInt(<a name="line.1923"></a>
-<span class="sourceLineNo">1924</span>    "hbase.regionserver.wal.max.splitters", SplitLogWorkerCoordination.DEFAULT_MAX_SPLITTERS));<a name="line.1924"></a>
-<span class="sourceLineNo">1925</span>    // Start the threads for compacted files discharger<a name="line.1925"></a>
-<span class="sourceLineNo">1926</span>    this.executorService.startExecutorService(ExecutorType.RS_COMPACTED_FILES_DISCHARGER,<a name="line.1926"></a>
-<span class="sourceLineNo">1927</span>        conf.getInt(CompactionConfiguration.HBASE_HFILE_COMPACTION_DISCHARGER_THREAD_COUNT, 10));<a name="line.1927"></a>
-<span class="sourceLineNo">1928</span>    if (ServerRegionReplicaUtil.isRegionReplicaWaitForPrimaryFlushEnabled(conf)) {<a name="line.1928"></a>
-<span class="sourceLineNo">1929</span>      this.executorService.startExecutorService(ExecutorType.RS_REGION_REPLICA_FLUSH_OPS,<a name="line.1929"></a>
-<span class="sourceLineNo">1930</span>          conf.getInt("hbase.regionserver.region.replica.flusher.threads",<a name="line.1930"></a>
-<span class="sourceLineNo">1931</span>              conf.getInt("hbase.regionserver.executor.openregion.threads", 3)));<a name="line.1931"></a>
-<span class="sourceLineNo">1932</span>    }<a name="line.1932"></a>
-<span class="sourceLineNo">1933</span><a name="line.1933"></a>
-<span class="sourceLineNo">1934</span>    Threads.setDaemonThreadRunning(this.walRoller.getThread(), getName() + ".logRoller",<a name="line.1934"></a>
-<span class="sourceLineNo">1935</span>    uncaughtExceptionHandler);<a name="line.1935"></a>
-<span class="sourceLineNo">1936</span>    this.cacheFlusher.start(uncaughtExceptionHandler);<a name="line.1936"></a>
-<span class="sourceLineNo">1937</span><a name="line.1937"></a>
-<span class="sourceLineNo">1938</span>    if (this.compactionChecker != null) choreService.scheduleChore(compactionChecker);<a name="line.1938"></a>
-<span class="sourceLineNo">1939</span>    if (this.periodicFlusher != null) choreService.scheduleChore(periodicFlusher);<a name="line.1939"></a>
-<span class="sourceLineNo">1940</span>    if (this.healthCheckChore != null) choreService.scheduleChore(healthCheckChore);<a name="line.1940"></a>
-<span class="sourceLineNo">1941</span>    if (this.nonceManagerChore != null) choreService.scheduleChore(nonceManagerChore);<a name="line.1941"></a>
-<span class="sourceLineNo">1942</span>    if (this.storefileRefresher != null) choreService.scheduleChore(storefileRefresher);<a name="line.1942"></a>
-<span class="sourceLineNo">1943</span>    if (this.movedRegionsCleaner != null) choreService.scheduleChore(movedRegionsCleaner);<a name="line.1943"></a>
-<span class="sourceLineNo">1944</span>    if (this.fsUtilizationChore != null) choreService.scheduleChore(fsUtilizationChore);<a name="line.1944"></a>
-<span class="sourceLineNo">1945</span><a name="line.1945"></a>
-<span class="sourceLineNo">1946</span>    // Leases is not a Thread. Internally it runs a daemon thread. If it gets<a name="line.1946"></a>
-<span class="sourceLineNo">1947</span>    // an unhandled exception, it will just exit.<a name="line.1947"></a>
-<span class="sourceLineNo">1948</span>    Threads.setDaemonThreadRunning(this.leases.getThread(), getName() + ".leaseChecker",<a name="line.1948"></a>
-<span class="sourceLineNo">1949</span>    uncaughtExceptionHandler);<a name="line.1949"></a>
-<span class="sourceLineNo">1950</span><a name="line.1950"></a>
-<span class="sourceLineNo">1951</span>    // Create the log splitting worker and start it<a name="line.1951"></a>
-<span class="sourceLineNo">1952</span>    // set a smaller retries to fast fail otherwise splitlogworker could be blocked for<a name="line.1952"></a>
-<span class="sourceLineNo">1953</span>    // quite a while inside Connection layer. The worker won't be available for other<a name="line.1953"></a>
-<span class="sourceLineNo">1954</span>    // tasks even after current task is preempted after a split task times out.<a name="line.1954"></a>
-<span class="sourceLineNo">1955</span>    Configuration sinkConf = HBaseConfiguration.create(conf);<a name="line.1955"></a>
-<span class="sourceLineNo">1956</span>    sinkConf.setInt(HConstants.HBASE_CLIENT_RETRIES_NUMBER,<a name="line.1956"></a>
-<span class="sourceLineNo">1957</span>        conf.getInt("hbase.log.replay.retries.number", 8)); // 8 retries take about 23 seconds<a name="line.1957"></a>
-<span class="sourceLineNo">1958</span>    sinkConf.setInt(HConstants.HBASE_RPC_TIMEOUT_KEY,<a name="line.1958"></a>
-<span class="sourceLineNo">1959</span>        conf.getInt("hbase.log.replay.rpc.timeout", 30000)); // default 30 seconds<a name="line.1959"></a>
-<span class="sourceLineNo">1960</span>    sinkConf.setInt(HConstants.HBASE_CLIENT_SERVERSIDE_RETRIES_MULTIPLIER, 1);<a name="line.1960"></a>
-<span class="sourceLineNo">1961</span>    if (this.csm != null) {<a name="line.1961"></a>
-<span class="sourceLineNo">1962</span>      // SplitLogWorker needs csm. If none, don't start this.<a name="line.1962"></a>
-<span class="sourceLineNo">1963</span>      this.splitLogWorker = new SplitLogWorker(this, sinkConf, this,<a name="line.1963"></a>
-<span class="sourceLineNo">1964</span>          this, walFactory);<a name="line.1964"></a>
-<span class="sourceLineNo">1965</span>      splitLogWorker.start();<a name="line.1965"></a>
-<span class="sourceLineNo">1966</span>    } else {<a name="line.1966"></a>
-<span class="sourceLineNo">1967</span>      LOG.warn("SplitLogWorker Service NOT started; CoordinatedStateManager is null");<a name="line.1967"></a>
-<span class="sourceLineNo">1968</span>    }<a name="line.1968"></a>
-<span class="sourceLineNo">1969</span><a name="line.1969"></a>
-<span class="sourceLineNo">1970</span>    // Memstore services.<a name="line.1970"></a>
-<span class="sourceLineNo">1971</span>    startHeapMemoryManager();<a name="line.1971"></a>
-<span class="sourceLineNo">1972</span>    // Call it after starting HeapMemoryManager.<a name="line.1972"></a>
-<span class="sourceLineNo">1973</span>    initializeMemStoreChunkCreator();<a name="line.1973"></a>
-<span class="sourceLineNo">1974</span>  }<a name="line.1974"></a>
-<span class="sourceLineNo">1975</span><a name="line.1975"></a>
-<span class="sourceLineNo">1976</span>  private void initializeThreads() throws IOException {<a name="line.1976"></a>
-<span class="sourceLineNo">1977</span>    // Cache flushing thread.<a name="line.1977"></a>
-<span class="sourceLineNo">1978</span>    this.cacheFlusher = new MemStoreFlusher(conf, this);<a name="line.1978"></a>
-<span class="sourceLineNo">1979</span><a name="line.1979"></a>
-<span class="sourceLineNo">1980</span>    // Compaction thread<a name="line.1980"></a>
-<span class="sourceLineNo">1981</span>    this.compactSplitThread = new CompactSplit(this);<a name="line.1981"></a>
-<span class="sourceLineNo">1982</span><a name="line.1982"></a>
-<span class="sourceLineNo">1983</span>    // Background thread to check for compactions; needed if region has not gotten updates<a name="line.1983"></a>
-<span class="sourceLineNo">1984</span>    // in a while. It will take care of not checking too frequently on store-by-store basis.<a name="line.1984"></a>
-<span class="sourceLineNo">1985</span>    this.compactionChecker = new CompactionChecker(this, this.threadWakeFrequency, this);<a name="line.1985"></a>
-<span class="sourceLineNo">1986</span>    this.periodicFlusher = new PeriodicMemStoreFlusher(this.threadWakeFrequency, this);<a name="line.1986"></a>
-<span class="sourceLineNo">1987</span>    this.leases = new Leases(this.threadWakeFrequency);<a name="line.1987"></a>
-<span class="sourceLineNo">1988</span><a name="line.1988"></a>
-<span class="sourceLineNo">1989</span>    // Create the thread to clean the moved regions list<a name="line.1989"></a>
-<span class="sourceLineNo">1990</span>    movedRegionsCleaner = MovedRegionsCleaner.create(this);<a name="line.1990"></a>
-<span class="sourceLineNo">1991</span><a name="line.1991"></a>
-<span class="sourceLineNo">1992</span>    if (this.nonceManager != null) {<a name="line.1992"></a>
-<span class="sourceLineNo">1993</span>      // Create the scheduled chore that cleans up nonces.<a name="line.1993"></a>
-<span class="sourceLineNo">1994</span>      nonceManagerChore = this.nonceManager.createCleanupScheduledChore(this);<a name="line.1994"></a>
-<span class="sourceLineNo">1995</span>    }<a name="line.1995"></a>
-<span class="sourceLineNo">1996</span><a name="line.1996"></a>
-<span class="sourceLineNo">1997</span>    // Setup the Quota Manager<a name="line.1997"></a>
-<span class="sourceLineNo">1998</span>    rsQuotaManager = new RegionServerRpcQuotaManager(this);<a name="line.1998"></a>
-<span class="sourceLineNo">1999</span>    rsSpaceQuotaManager = new RegionServerSpaceQuotaManager(this);<a name="line.1999"></a>
-<span class="sourceLineNo">2000</span><a name="line.2000"></a>
-<span class="sourceLineNo">2001</span>    if (QuotaUtil.isQuotaEnabled(conf)) {<a name="line.2001"></a>
-<span class="sourceLineNo">2002</span>      this.fsUtilizationChore = new FileSystemUtilizationChore(this);<a name="line.2002"></a>
-<span class="sourceLineNo">2003</span>    }<a name="line.2003"></a>
-<span class="sourceLineNo">2004</span><a name="line.2004"></a>
+<span class="sourceLineNo">1855</span><a name="line.1855"></a>
+<span class="sourceLineNo">1856</span>  public MetricsRegionServer getRegionServerMetrics() {<a name="line.1856"></a>
+<span class="sourceLine

<TRUNCATED>

[17/32] hbase-site git commit: Published site at .

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/29b27596/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.MovedRegionsCleaner.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.MovedRegionsCleaner.html b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.MovedRegionsCleaner.html
index 269105b..1198d94 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.MovedRegionsCleaner.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.MovedRegionsCleaner.html
@@ -1524,2213 +1524,2214 @@
 <span class="sourceLineNo">1516</span>      // This call sets up an initialized replication and WAL. Later we start it up.<a name="line.1516"></a>
 <span class="sourceLineNo">1517</span>      setupWALAndReplication();<a name="line.1517"></a>
 <span class="sourceLineNo">1518</span>      // Init in here rather than in constructor after thread name has been set<a name="line.1518"></a>
-<span class="sourceLineNo">1519</span>      this.metricsRegionServer = new MetricsRegionServer(new MetricsRegionServerWrapperImpl(this));<a name="line.1519"></a>
-<span class="sourceLineNo">1520</span>      this.metricsTable = new MetricsTable(new MetricsTableWrapperAggregateImpl(this));<a name="line.1520"></a>
-<span class="sourceLineNo">1521</span>      // Now that we have a metrics source, start the pause monitor<a name="line.1521"></a>
-<span class="sourceLineNo">1522</span>      this.pauseMonitor = new JvmPauseMonitor(conf, getMetrics().getMetricsSource());<a name="line.1522"></a>
-<span class="sourceLineNo">1523</span>      pauseMonitor.start();<a name="line.1523"></a>
-<span class="sourceLineNo">1524</span><a name="line.1524"></a>
-<span class="sourceLineNo">1525</span>      // There is a rare case where we do NOT want services to start. Check config.<a name="line.1525"></a>
-<span class="sourceLineNo">1526</span>      if (getConfiguration().getBoolean("hbase.regionserver.workers", true)) {<a name="line.1526"></a>
-<span class="sourceLineNo">1527</span>        startServices();<a name="line.1527"></a>
-<span class="sourceLineNo">1528</span>      }<a name="line.1528"></a>
-<span class="sourceLineNo">1529</span>      // In here we start up the replication Service. Above we initialized it. TODO. Reconcile.<a name="line.1529"></a>
-<span class="sourceLineNo">1530</span>      // or make sense of it.<a name="line.1530"></a>
-<span class="sourceLineNo">1531</span>      startReplicationService();<a name="line.1531"></a>
-<span class="sourceLineNo">1532</span><a name="line.1532"></a>
+<span class="sourceLineNo">1519</span>      this.metricsRegionServer = new MetricsRegionServer(<a name="line.1519"></a>
+<span class="sourceLineNo">1520</span>          new MetricsRegionServerWrapperImpl(this), conf);<a name="line.1520"></a>
+<span class="sourceLineNo">1521</span>      this.metricsTable = new MetricsTable(new MetricsTableWrapperAggregateImpl(this));<a name="line.1521"></a>
+<span class="sourceLineNo">1522</span>      // Now that we have a metrics source, start the pause monitor<a name="line.1522"></a>
+<span class="sourceLineNo">1523</span>      this.pauseMonitor = new JvmPauseMonitor(conf, getMetrics().getMetricsSource());<a name="line.1523"></a>
+<span class="sourceLineNo">1524</span>      pauseMonitor.start();<a name="line.1524"></a>
+<span class="sourceLineNo">1525</span><a name="line.1525"></a>
+<span class="sourceLineNo">1526</span>      // There is a rare case where we do NOT want services to start. Check config.<a name="line.1526"></a>
+<span class="sourceLineNo">1527</span>      if (getConfiguration().getBoolean("hbase.regionserver.workers", true)) {<a name="line.1527"></a>
+<span class="sourceLineNo">1528</span>        startServices();<a name="line.1528"></a>
+<span class="sourceLineNo">1529</span>      }<a name="line.1529"></a>
+<span class="sourceLineNo">1530</span>      // In here we start up the replication Service. Above we initialized it. TODO. Reconcile.<a name="line.1530"></a>
+<span class="sourceLineNo">1531</span>      // or make sense of it.<a name="line.1531"></a>
+<span class="sourceLineNo">1532</span>      startReplicationService();<a name="line.1532"></a>
 <span class="sourceLineNo">1533</span><a name="line.1533"></a>
-<span class="sourceLineNo">1534</span>      // Set up ZK<a name="line.1534"></a>
-<span class="sourceLineNo">1535</span>      LOG.info("Serving as " + this.serverName + ", RpcServer on " + rpcServices.isa +<a name="line.1535"></a>
-<span class="sourceLineNo">1536</span>          ", sessionid=0x" +<a name="line.1536"></a>
-<span class="sourceLineNo">1537</span>          Long.toHexString(this.zooKeeper.getRecoverableZooKeeper().getSessionId()));<a name="line.1537"></a>
-<span class="sourceLineNo">1538</span><a name="line.1538"></a>
-<span class="sourceLineNo">1539</span>      // Wake up anyone waiting for this server to online<a name="line.1539"></a>
-<span class="sourceLineNo">1540</span>      synchronized (online) {<a name="line.1540"></a>
-<span class="sourceLineNo">1541</span>        online.set(true);<a name="line.1541"></a>
-<span class="sourceLineNo">1542</span>        online.notifyAll();<a name="line.1542"></a>
-<span class="sourceLineNo">1543</span>      }<a name="line.1543"></a>
-<span class="sourceLineNo">1544</span>    } catch (Throwable e) {<a name="line.1544"></a>
-<span class="sourceLineNo">1545</span>      stop("Failed initialization");<a name="line.1545"></a>
-<span class="sourceLineNo">1546</span>      throw convertThrowableToIOE(cleanup(e, "Failed init"),<a name="line.1546"></a>
-<span class="sourceLineNo">1547</span>          "Region server startup failed");<a name="line.1547"></a>
-<span class="sourceLineNo">1548</span>    } finally {<a name="line.1548"></a>
-<span class="sourceLineNo">1549</span>      sleeper.skipSleepCycle();<a name="line.1549"></a>
-<span class="sourceLineNo">1550</span>    }<a name="line.1550"></a>
-<span class="sourceLineNo">1551</span>  }<a name="line.1551"></a>
-<span class="sourceLineNo">1552</span><a name="line.1552"></a>
-<span class="sourceLineNo">1553</span>  protected void initializeMemStoreChunkCreator() {<a name="line.1553"></a>
-<span class="sourceLineNo">1554</span>    if (MemStoreLAB.isEnabled(conf)) {<a name="line.1554"></a>
-<span class="sourceLineNo">1555</span>      // MSLAB is enabled. So initialize MemStoreChunkPool<a name="line.1555"></a>
-<span class="sourceLineNo">1556</span>      // By this time, the MemstoreFlusher is already initialized. We can get the global limits from<a name="line.1556"></a>
-<span class="sourceLineNo">1557</span>      // it.<a name="line.1557"></a>
-<span class="sourceLineNo">1558</span>      Pair&lt;Long, MemoryType&gt; pair = MemorySizeUtil.getGlobalMemStoreSize(conf);<a name="line.1558"></a>
-<span class="sourceLineNo">1559</span>      long globalMemStoreSize = pair.getFirst();<a name="line.1559"></a>
-<span class="sourceLineNo">1560</span>      boolean offheap = this.regionServerAccounting.isOffheap();<a name="line.1560"></a>
-<span class="sourceLineNo">1561</span>      // When off heap memstore in use, take full area for chunk pool.<a name="line.1561"></a>
-<span class="sourceLineNo">1562</span>      float poolSizePercentage = offheap? 1.0F:<a name="line.1562"></a>
-<span class="sourceLineNo">1563</span>          conf.getFloat(MemStoreLAB.CHUNK_POOL_MAXSIZE_KEY, MemStoreLAB.POOL_MAX_SIZE_DEFAULT);<a name="line.1563"></a>
-<span class="sourceLineNo">1564</span>      float initialCountPercentage = conf.getFloat(MemStoreLAB.CHUNK_POOL_INITIALSIZE_KEY,<a name="line.1564"></a>
-<span class="sourceLineNo">1565</span>          MemStoreLAB.POOL_INITIAL_SIZE_DEFAULT);<a name="line.1565"></a>
-<span class="sourceLineNo">1566</span>      int chunkSize = conf.getInt(MemStoreLAB.CHUNK_SIZE_KEY, MemStoreLAB.CHUNK_SIZE_DEFAULT);<a name="line.1566"></a>
-<span class="sourceLineNo">1567</span>      // init the chunkCreator<a name="line.1567"></a>
-<span class="sourceLineNo">1568</span>      ChunkCreator chunkCreator =<a name="line.1568"></a>
-<span class="sourceLineNo">1569</span>          ChunkCreator.initialize(chunkSize, offheap, globalMemStoreSize, poolSizePercentage,<a name="line.1569"></a>
-<span class="sourceLineNo">1570</span>      initialCountPercentage, this.hMemManager);<a name="line.1570"></a>
-<span class="sourceLineNo">1571</span>    }<a name="line.1571"></a>
-<span class="sourceLineNo">1572</span>  }<a name="line.1572"></a>
-<span class="sourceLineNo">1573</span><a name="line.1573"></a>
-<span class="sourceLineNo">1574</span>  private void startHeapMemoryManager() {<a name="line.1574"></a>
-<span class="sourceLineNo">1575</span>    this.hMemManager = HeapMemoryManager.create(this.conf, this.cacheFlusher, this,<a name="line.1575"></a>
-<span class="sourceLineNo">1576</span>        this.regionServerAccounting);<a name="line.1576"></a>
-<span class="sourceLineNo">1577</span>    if (this.hMemManager != null) {<a name="line.1577"></a>
-<span class="sourceLineNo">1578</span>      this.hMemManager.start(getChoreService());<a name="line.1578"></a>
-<span class="sourceLineNo">1579</span>    }<a name="line.1579"></a>
-<span class="sourceLineNo">1580</span>  }<a name="line.1580"></a>
-<span class="sourceLineNo">1581</span><a name="line.1581"></a>
-<span class="sourceLineNo">1582</span>  private void createMyEphemeralNode() throws KeeperException, IOException {<a name="line.1582"></a>
-<span class="sourceLineNo">1583</span>    RegionServerInfo.Builder rsInfo = RegionServerInfo.newBuilder();<a name="line.1583"></a>
-<span class="sourceLineNo">1584</span>    rsInfo.setInfoPort(infoServer != null ? infoServer.getPort() : -1);<a name="line.1584"></a>
-<span class="sourceLineNo">1585</span>    rsInfo.setVersionInfo(ProtobufUtil.getVersionInfo());<a name="line.1585"></a>
-<span class="sourceLineNo">1586</span>    byte[] data = ProtobufUtil.prependPBMagic(rsInfo.build().toByteArray());<a name="line.1586"></a>
-<span class="sourceLineNo">1587</span>    ZKUtil.createEphemeralNodeAndWatch(this.zooKeeper, getMyEphemeralNodePath(), data);<a name="line.1587"></a>
-<span class="sourceLineNo">1588</span>  }<a name="line.1588"></a>
-<span class="sourceLineNo">1589</span><a name="line.1589"></a>
-<span class="sourceLineNo">1590</span>  private void deleteMyEphemeralNode() throws KeeperException {<a name="line.1590"></a>
-<span class="sourceLineNo">1591</span>    ZKUtil.deleteNode(this.zooKeeper, getMyEphemeralNodePath());<a name="line.1591"></a>
-<span class="sourceLineNo">1592</span>  }<a name="line.1592"></a>
-<span class="sourceLineNo">1593</span><a name="line.1593"></a>
-<span class="sourceLineNo">1594</span>  @Override<a name="line.1594"></a>
-<span class="sourceLineNo">1595</span>  public RegionServerAccounting getRegionServerAccounting() {<a name="line.1595"></a>
-<span class="sourceLineNo">1596</span>    return regionServerAccounting;<a name="line.1596"></a>
-<span class="sourceLineNo">1597</span>  }<a name="line.1597"></a>
-<span class="sourceLineNo">1598</span><a name="line.1598"></a>
-<span class="sourceLineNo">1599</span>  /*<a name="line.1599"></a>
-<span class="sourceLineNo">1600</span>   * @param r Region to get RegionLoad for.<a name="line.1600"></a>
-<span class="sourceLineNo">1601</span>   * @param regionLoadBldr the RegionLoad.Builder, can be null<a name="line.1601"></a>
-<span class="sourceLineNo">1602</span>   * @param regionSpecifier the RegionSpecifier.Builder, can be null<a name="line.1602"></a>
-<span class="sourceLineNo">1603</span>   * @return RegionLoad instance.<a name="line.1603"></a>
-<span class="sourceLineNo">1604</span>   *<a name="line.1604"></a>
-<span class="sourceLineNo">1605</span>   * @throws IOException<a name="line.1605"></a>
-<span class="sourceLineNo">1606</span>   */<a name="line.1606"></a>
-<span class="sourceLineNo">1607</span>  RegionLoad createRegionLoad(final HRegion r, RegionLoad.Builder regionLoadBldr,<a name="line.1607"></a>
-<span class="sourceLineNo">1608</span>      RegionSpecifier.Builder regionSpecifier) throws IOException {<a name="line.1608"></a>
-<span class="sourceLineNo">1609</span>    byte[] name = r.getRegionInfo().getRegionName();<a name="line.1609"></a>
-<span class="sourceLineNo">1610</span>    int stores = 0;<a name="line.1610"></a>
-<span class="sourceLineNo">1611</span>    int storefiles = 0;<a name="line.1611"></a>
-<span class="sourceLineNo">1612</span>    int storeUncompressedSizeMB = 0;<a name="line.1612"></a>
-<span class="sourceLineNo">1613</span>    int storefileSizeMB = 0;<a name="line.1613"></a>
-<span class="sourceLineNo">1614</span>    int memstoreSizeMB = (int) (r.getMemStoreSize() / 1024 / 1024);<a name="line.1614"></a>
-<span class="sourceLineNo">1615</span>    long storefileIndexSizeKB = 0;<a name="line.1615"></a>
-<span class="sourceLineNo">1616</span>    int rootIndexSizeKB = 0;<a name="line.1616"></a>
-<span class="sourceLineNo">1617</span>    int totalStaticIndexSizeKB = 0;<a name="line.1617"></a>
-<span class="sourceLineNo">1618</span>    int totalStaticBloomSizeKB = 0;<a name="line.1618"></a>
-<span class="sourceLineNo">1619</span>    long totalCompactingKVs = 0;<a name="line.1619"></a>
-<span class="sourceLineNo">1620</span>    long currentCompactedKVs = 0;<a name="line.1620"></a>
-<span class="sourceLineNo">1621</span>    List&lt;HStore&gt; storeList = r.getStores();<a name="line.1621"></a>
-<span class="sourceLineNo">1622</span>    stores += storeList.size();<a name="line.1622"></a>
-<span class="sourceLineNo">1623</span>    for (HStore store : storeList) {<a name="line.1623"></a>
-<span class="sourceLineNo">1624</span>      storefiles += store.getStorefilesCount();<a name="line.1624"></a>
-<span class="sourceLineNo">1625</span>      storeUncompressedSizeMB += (int) (store.getStoreSizeUncompressed() / 1024 / 1024);<a name="line.1625"></a>
-<span class="sourceLineNo">1626</span>      storefileSizeMB += (int) (store.getStorefilesSize() / 1024 / 1024);<a name="line.1626"></a>
-<span class="sourceLineNo">1627</span>      storefileIndexSizeKB += store.getStorefilesIndexSize() / 1024;<a name="line.1627"></a>
-<span class="sourceLineNo">1628</span>      CompactionProgress progress = store.getCompactionProgress();<a name="line.1628"></a>
-<span class="sourceLineNo">1629</span>      if (progress != null) {<a name="line.1629"></a>
-<span class="sourceLineNo">1630</span>        totalCompactingKVs += progress.totalCompactingKVs;<a name="line.1630"></a>
-<span class="sourceLineNo">1631</span>        currentCompactedKVs += progress.currentCompactedKVs;<a name="line.1631"></a>
-<span class="sourceLineNo">1632</span>      }<a name="line.1632"></a>
-<span class="sourceLineNo">1633</span>      rootIndexSizeKB += (int) (store.getStorefilesIndexSize() / 1024);<a name="line.1633"></a>
-<span class="sourceLineNo">1634</span>      totalStaticIndexSizeKB += (int) (store.getTotalStaticIndexSize() / 1024);<a name="line.1634"></a>
-<span class="sourceLineNo">1635</span>      totalStaticBloomSizeKB += (int) (store.getTotalStaticBloomSize() / 1024);<a name="line.1635"></a>
-<span class="sourceLineNo">1636</span>    }<a name="line.1636"></a>
-<span class="sourceLineNo">1637</span><a name="line.1637"></a>
-<span class="sourceLineNo">1638</span>    float dataLocality =<a name="line.1638"></a>
-<span class="sourceLineNo">1639</span>        r.getHDFSBlocksDistribution().getBlockLocalityIndex(serverName.getHostname());<a name="line.1639"></a>
-<span class="sourceLineNo">1640</span>    if (regionLoadBldr == null) {<a name="line.1640"></a>
-<span class="sourceLineNo">1641</span>      regionLoadBldr = RegionLoad.newBuilder();<a name="line.1641"></a>
-<span class="sourceLineNo">1642</span>    }<a name="line.1642"></a>
-<span class="sourceLineNo">1643</span>    if (regionSpecifier == null) {<a name="line.1643"></a>
-<span class="sourceLineNo">1644</span>      regionSpecifier = RegionSpecifier.newBuilder();<a name="line.1644"></a>
-<span class="sourceLineNo">1645</span>    }<a name="line.1645"></a>
-<span class="sourceLineNo">1646</span>    regionSpecifier.setType(RegionSpecifierType.REGION_NAME);<a name="line.1646"></a>
-<span class="sourceLineNo">1647</span>    regionSpecifier.setValue(UnsafeByteOperations.unsafeWrap(name));<a name="line.1647"></a>
-<span class="sourceLineNo">1648</span>    regionLoadBldr.setRegionSpecifier(regionSpecifier.build())<a name="line.1648"></a>
-<span class="sourceLineNo">1649</span>      .setStores(stores)<a name="line.1649"></a>
-<span class="sourceLineNo">1650</span>      .setStorefiles(storefiles)<a name="line.1650"></a>
-<span class="sourceLineNo">1651</span>      .setStoreUncompressedSizeMB(storeUncompressedSizeMB)<a name="line.1651"></a>
-<span class="sourceLineNo">1652</span>      .setStorefileSizeMB(storefileSizeMB)<a name="line.1652"></a>
-<span class="sourceLineNo">1653</span>      .setMemStoreSizeMB(memstoreSizeMB)<a name="line.1653"></a>
-<span class="sourceLineNo">1654</span>      .setStorefileIndexSizeKB(storefileIndexSizeKB)<a name="line.1654"></a>
-<span class="sourceLineNo">1655</span>      .setRootIndexSizeKB(rootIndexSizeKB)<a name="line.1655"></a>
-<span class="sourceLineNo">1656</span>      .setTotalStaticIndexSizeKB(totalStaticIndexSizeKB)<a name="line.1656"></a>
-<span class="sourceLineNo">1657</span>      .setTotalStaticBloomSizeKB(totalStaticBloomSizeKB)<a name="line.1657"></a>
-<span class="sourceLineNo">1658</span>      .setReadRequestsCount(r.getReadRequestsCount())<a name="line.1658"></a>
-<span class="sourceLineNo">1659</span>      .setFilteredReadRequestsCount(r.getFilteredReadRequestsCount())<a name="line.1659"></a>
-<span class="sourceLineNo">1660</span>      .setWriteRequestsCount(r.getWriteRequestsCount())<a name="line.1660"></a>
-<span class="sourceLineNo">1661</span>      .setTotalCompactingKVs(totalCompactingKVs)<a name="line.1661"></a>
-<span class="sourceLineNo">1662</span>      .setCurrentCompactedKVs(currentCompactedKVs)<a name="line.1662"></a>
-<span class="sourceLineNo">1663</span>      .setDataLocality(dataLocality)<a name="line.1663"></a>
-<span class="sourceLineNo">1664</span>      .setLastMajorCompactionTs(r.getOldestHfileTs(true));<a name="line.1664"></a>
-<span class="sourceLineNo">1665</span>    ((HRegion)r).setCompleteSequenceId(regionLoadBldr);<a name="line.1665"></a>
-<span class="sourceLineNo">1666</span><a name="line.1666"></a>
-<span class="sourceLineNo">1667</span>    return regionLoadBldr.build();<a name="line.1667"></a>
-<span class="sourceLineNo">1668</span>  }<a name="line.1668"></a>
-<span class="sourceLineNo">1669</span><a name="line.1669"></a>
-<span class="sourceLineNo">1670</span>  /**<a name="line.1670"></a>
-<span class="sourceLineNo">1671</span>   * @param encodedRegionName<a name="line.1671"></a>
-<span class="sourceLineNo">1672</span>   * @return An instance of RegionLoad.<a name="line.1672"></a>
-<span class="sourceLineNo">1673</span>   */<a name="line.1673"></a>
-<span class="sourceLineNo">1674</span>  public RegionLoad createRegionLoad(final String encodedRegionName) throws IOException {<a name="line.1674"></a>
-<span class="sourceLineNo">1675</span>    HRegion r = onlineRegions.get(encodedRegionName);<a name="line.1675"></a>
-<span class="sourceLineNo">1676</span>    return r != null ? createRegionLoad(r, null, null) : null;<a name="line.1676"></a>
-<span class="sourceLineNo">1677</span>  }<a name="line.1677"></a>
-<span class="sourceLineNo">1678</span><a name="line.1678"></a>
-<span class="sourceLineNo">1679</span>  /*<a name="line.1679"></a>
-<span class="sourceLineNo">1680</span>   * Inner class that runs on a long period checking if regions need compaction.<a name="line.1680"></a>
-<span class="sourceLineNo">1681</span>   */<a name="line.1681"></a>
-<span class="sourceLineNo">1682</span>  private static class CompactionChecker extends ScheduledChore {<a name="line.1682"></a>
-<span class="sourceLineNo">1683</span>    private final HRegionServer instance;<a name="line.1683"></a>
-<span class="sourceLineNo">1684</span>    private final int majorCompactPriority;<a name="line.1684"></a>
-<span class="sourceLineNo">1685</span>    private final static int DEFAULT_PRIORITY = Integer.MAX_VALUE;<a name="line.1685"></a>
-<span class="sourceLineNo">1686</span>    //Iteration is 1-based rather than 0-based so we don't check for compaction<a name="line.1686"></a>
-<span class="sourceLineNo">1687</span>    // immediately upon region server startup<a name="line.1687"></a>
-<span class="sourceLineNo">1688</span>    private long iteration = 1;<a name="line.1688"></a>
-<span class="sourceLineNo">1689</span><a name="line.1689"></a>
-<span class="sourceLineNo">1690</span>    CompactionChecker(final HRegionServer h, final int sleepTime, final Stoppable stopper) {<a name="line.1690"></a>
-<span class="sourceLineNo">1691</span>      super("CompactionChecker", stopper, sleepTime);<a name="line.1691"></a>
-<span class="sourceLineNo">1692</span>      this.instance = h;<a name="line.1692"></a>
-<span class="sourceLineNo">1693</span>      LOG.info(this.getName() + " runs every " + StringUtils.formatTime(sleepTime));<a name="line.1693"></a>
-<span class="sourceLineNo">1694</span><a name="line.1694"></a>
-<span class="sourceLineNo">1695</span>      /* MajorCompactPriority is configurable.<a name="line.1695"></a>
-<span class="sourceLineNo">1696</span>       * If not set, the compaction will use default priority.<a name="line.1696"></a>
-<span class="sourceLineNo">1697</span>       */<a name="line.1697"></a>
-<span class="sourceLineNo">1698</span>      this.majorCompactPriority = this.instance.conf.<a name="line.1698"></a>
-<span class="sourceLineNo">1699</span>          getInt("hbase.regionserver.compactionChecker.majorCompactPriority",<a name="line.1699"></a>
-<span class="sourceLineNo">1700</span>              DEFAULT_PRIORITY);<a name="line.1700"></a>
-<span class="sourceLineNo">1701</span>    }<a name="line.1701"></a>
-<span class="sourceLineNo">1702</span><a name="line.1702"></a>
-<span class="sourceLineNo">1703</span>    @Override<a name="line.1703"></a>
-<span class="sourceLineNo">1704</span>    protected void chore() {<a name="line.1704"></a>
-<span class="sourceLineNo">1705</span>      for (Region r : this.instance.onlineRegions.values()) {<a name="line.1705"></a>
-<span class="sourceLineNo">1706</span>        if (r == null) {<a name="line.1706"></a>
-<span class="sourceLineNo">1707</span>          continue;<a name="line.1707"></a>
-<span class="sourceLineNo">1708</span>        }<a name="line.1708"></a>
-<span class="sourceLineNo">1709</span>        HRegion hr = (HRegion) r;<a name="line.1709"></a>
-<span class="sourceLineNo">1710</span>        for (HStore s : hr.stores.values()) {<a name="line.1710"></a>
-<span class="sourceLineNo">1711</span>          try {<a name="line.1711"></a>
-<span class="sourceLineNo">1712</span>            long multiplier = s.getCompactionCheckMultiplier();<a name="line.1712"></a>
-<span class="sourceLineNo">1713</span>            assert multiplier &gt; 0;<a name="line.1713"></a>
-<span class="sourceLineNo">1714</span>            if (iteration % multiplier != 0) {<a name="line.1714"></a>
-<span class="sourceLineNo">1715</span>              continue;<a name="line.1715"></a>
-<span class="sourceLineNo">1716</span>            }<a name="line.1716"></a>
-<span class="sourceLineNo">1717</span>            if (s.needsCompaction()) {<a name="line.1717"></a>
-<span class="sourceLineNo">1718</span>              // Queue a compaction. Will recognize if major is needed.<a name="line.1718"></a>
-<span class="sourceLineNo">1719</span>              this.instance.compactSplitThread.requestSystemCompaction(hr, s,<a name="line.1719"></a>
-<span class="sourceLineNo">1720</span>                getName() + " requests compaction");<a name="line.1720"></a>
-<span class="sourceLineNo">1721</span>            } else if (s.shouldPerformMajorCompaction()) {<a name="line.1721"></a>
-<span class="sourceLineNo">1722</span>              s.triggerMajorCompaction();<a name="line.1722"></a>
-<span class="sourceLineNo">1723</span>              if (majorCompactPriority == DEFAULT_PRIORITY ||<a name="line.1723"></a>
-<span class="sourceLineNo">1724</span>                  majorCompactPriority &gt; hr.getCompactPriority()) {<a name="line.1724"></a>
-<span class="sourceLineNo">1725</span>                this.instance.compactSplitThread.requestCompaction(hr, s,<a name="line.1725"></a>
-<span class="sourceLineNo">1726</span>                    getName() + " requests major compaction; use default priority",<a name="line.1726"></a>
-<span class="sourceLineNo">1727</span>                    Store.NO_PRIORITY,<a name="line.1727"></a>
-<span class="sourceLineNo">1728</span>                CompactionLifeCycleTracker.DUMMY, null);<a name="line.1728"></a>
-<span class="sourceLineNo">1729</span>              } else {<a name="line.1729"></a>
-<span class="sourceLineNo">1730</span>                this.instance.compactSplitThread.requestCompaction(hr, s,<a name="line.1730"></a>
-<span class="sourceLineNo">1731</span>                    getName() + " requests major compaction; use configured priority",<a name="line.1731"></a>
-<span class="sourceLineNo">1732</span>                    this.majorCompactPriority, CompactionLifeCycleTracker.DUMMY, null);<a name="line.1732"></a>
-<span class="sourceLineNo">1733</span>              }<a name="line.1733"></a>
-<span class="sourceLineNo">1734</span>            }<a name="line.1734"></a>
-<span class="sourceLineNo">1735</span>          } catch (IOException e) {<a name="line.1735"></a>
-<span class="sourceLineNo">1736</span>            LOG.warn("Failed major compaction check on " + r, e);<a name="line.1736"></a>
-<span class="sourceLineNo">1737</span>          }<a name="line.1737"></a>
-<span class="sourceLineNo">1738</span>        }<a name="line.1738"></a>
-<span class="sourceLineNo">1739</span>      }<a name="line.1739"></a>
-<span class="sourceLineNo">1740</span>      iteration = (iteration == Long.MAX_VALUE) ? 0 : (iteration + 1);<a name="line.1740"></a>
-<span class="sourceLineNo">1741</span>    }<a name="line.1741"></a>
-<span class="sourceLineNo">1742</span>  }<a name="line.1742"></a>
-<span class="sourceLineNo">1743</span><a name="line.1743"></a>
-<span class="sourceLineNo">1744</span>  static class PeriodicMemStoreFlusher extends ScheduledChore {<a name="line.1744"></a>
-<span class="sourceLineNo">1745</span>    final HRegionServer server;<a name="line.1745"></a>
-<span class="sourceLineNo">1746</span>    final static int RANGE_OF_DELAY = 5 * 60 * 1000; // 5 min in milliseconds<a name="line.1746"></a>
-<span class="sourceLineNo">1747</span>    final static int MIN_DELAY_TIME = 0; // millisec<a name="line.1747"></a>
-<span class="sourceLineNo">1748</span>    public PeriodicMemStoreFlusher(int cacheFlushInterval, final HRegionServer server) {<a name="line.1748"></a>
-<span class="sourceLineNo">1749</span>      super("MemstoreFlusherChore", server, cacheFlushInterval);<a name="line.1749"></a>
-<span class="sourceLineNo">1750</span>      this.server = server;<a name="line.1750"></a>
-<span class="sourceLineNo">1751</span>    }<a name="line.1751"></a>
-<span class="sourceLineNo">1752</span><a name="line.1752"></a>
-<span class="sourceLineNo">1753</span>    @Override<a name="line.1753"></a>
-<span class="sourceLineNo">1754</span>    protected void chore() {<a name="line.1754"></a>
-<span class="sourceLineNo">1755</span>      final StringBuffer whyFlush = new StringBuffer();<a name="line.1755"></a>
-<span class="sourceLineNo">1756</span>      for (HRegion r : this.server.onlineRegions.values()) {<a name="line.1756"></a>
-<span class="sourceLineNo">1757</span>        if (r == null) continue;<a name="line.1757"></a>
-<span class="sourceLineNo">1758</span>        if (r.shouldFlush(whyFlush)) {<a name="line.1758"></a>
-<span class="sourceLineNo">1759</span>          FlushRequester requester = server.getFlushRequester();<a name="line.1759"></a>
-<span class="sourceLineNo">1760</span>          if (requester != null) {<a name="line.1760"></a>
-<span class="sourceLineNo">1761</span>            long randomDelay = RandomUtils.nextInt(0, RANGE_OF_DELAY) + MIN_DELAY_TIME;<a name="line.1761"></a>
-<span class="sourceLineNo">1762</span>            LOG.info(getName() + " requesting flush of " +<a name="line.1762"></a>
-<span class="sourceLineNo">1763</span>              r.getRegionInfo().getRegionNameAsString() + " because " +<a name="line.1763"></a>
-<span class="sourceLineNo">1764</span>              whyFlush.toString() +<a name="line.1764"></a>
-<span class="sourceLineNo">1765</span>              " after random delay " + randomDelay + "ms");<a name="line.1765"></a>
-<span class="sourceLineNo">1766</span>            //Throttle the flushes by putting a delay. If we don't throttle, and there<a name="line.1766"></a>
-<span class="sourceLineNo">1767</span>            //is a balanced write-load on the regions in a table, we might end up<a name="line.1767"></a>
-<span class="sourceLineNo">1768</span>            //overwhelming the filesystem with too many flushes at once.<a name="line.1768"></a>
-<span class="sourceLineNo">1769</span>            requester.requestDelayedFlush(r, randomDelay, false);<a name="line.1769"></a>
-<span class="sourceLineNo">1770</span>          }<a name="line.1770"></a>
-<span class="sourceLineNo">1771</span>        }<a name="line.1771"></a>
-<span class="sourceLineNo">1772</span>      }<a name="line.1772"></a>
-<span class="sourceLineNo">1773</span>    }<a name="line.1773"></a>
-<span class="sourceLineNo">1774</span>  }<a name="line.1774"></a>
-<span class="sourceLineNo">1775</span><a name="line.1775"></a>
-<span class="sourceLineNo">1776</span>  /**<a name="line.1776"></a>
-<span class="sourceLineNo">1777</span>   * Report the status of the server. A server is online once all the startup is<a name="line.1777"></a>
-<span class="sourceLineNo">1778</span>   * completed (setting up filesystem, starting executorService threads, etc.). This<a name="line.1778"></a>
-<span class="sourceLineNo">1779</span>   * method is designed mostly to be useful in tests.<a name="line.1779"></a>
-<span class="sourceLineNo">1780</span>   *<a name="line.1780"></a>
-<span class="sourceLineNo">1781</span>   * @return true if online, false if not.<a name="line.1781"></a>
-<span class="sourceLineNo">1782</span>   */<a name="line.1782"></a>
-<span class="sourceLineNo">1783</span>  public boolean isOnline() {<a name="line.1783"></a>
-<span class="sourceLineNo">1784</span>    return online.get();<a name="line.1784"></a>
-<span class="sourceLineNo">1785</span>  }<a name="line.1785"></a>
-<span class="sourceLineNo">1786</span><a name="line.1786"></a>
-<span class="sourceLineNo">1787</span>  /**<a name="line.1787"></a>
-<span class="sourceLineNo">1788</span>   * Setup WAL log and replication if enabled.<a name="line.1788"></a>
-<span class="sourceLineNo">1789</span>   * Replication setup is done in here because it wants to be hooked up to WAL.<a name="line.1789"></a>
-<span class="sourceLineNo">1790</span>   *<a name="line.1790"></a>
-<span class="sourceLineNo">1791</span>   * @throws IOException<a name="line.1791"></a>
-<span class="sourceLineNo">1792</span>   */<a name="line.1792"></a>
-<span class="sourceLineNo">1793</span>  private void setupWALAndReplication() throws IOException {<a name="line.1793"></a>
-<span class="sourceLineNo">1794</span>    // TODO Replication make assumptions here based on the default filesystem impl<a name="line.1794"></a>
-<span class="sourceLineNo">1795</span>    Path oldLogDir = new Path(walRootDir, HConstants.HREGION_OLDLOGDIR_NAME);<a name="line.1795"></a>
-<span class="sourceLineNo">1796</span>    String logName = AbstractFSWALProvider.getWALDirectoryName(this.serverName.toString());<a name="line.1796"></a>
-<span class="sourceLineNo">1797</span><a name="line.1797"></a>
-<span class="sourceLineNo">1798</span>    Path logDir = new Path(walRootDir, logName);<a name="line.1798"></a>
-<span class="sourceLineNo">1799</span>    if (LOG.isDebugEnabled()) LOG.debug("logDir=" + logDir);<a name="line.1799"></a>
-<span class="sourceLineNo">1800</span>    if (this.walFs.exists(logDir)) {<a name="line.1800"></a>
-<span class="sourceLineNo">1801</span>      throw new RegionServerRunningException("Region server has already " +<a name="line.1801"></a>
-<span class="sourceLineNo">1802</span>          "created directory at " + this.serverName.toString());<a name="line.1802"></a>
-<span class="sourceLineNo">1803</span>    }<a name="line.1803"></a>
-<span class="sourceLineNo">1804</span><a name="line.1804"></a>
-<span class="sourceLineNo">1805</span>    // Instantiate replication if replication enabled.  Pass it the log directories.<a name="line.1805"></a>
-<span class="sourceLineNo">1806</span>    // In here we create the Replication instances. Later they are initialized and started up.<a name="line.1806"></a>
-<span class="sourceLineNo">1807</span>    createNewReplicationInstance(conf, this, this.walFs, logDir, oldLogDir);<a name="line.1807"></a>
-<span class="sourceLineNo">1808</span><a name="line.1808"></a>
-<span class="sourceLineNo">1809</span>    // listeners the wal factory will add to wals it creates.<a name="line.1809"></a>
-<span class="sourceLineNo">1810</span>    List&lt;WALActionsListener&gt; listeners = new ArrayList&lt;&gt;();<a name="line.1810"></a>
-<span class="sourceLineNo">1811</span>    listeners.add(new MetricsWAL());<a name="line.1811"></a>
-<span class="sourceLineNo">1812</span>    if (this.replicationSourceHandler != null &amp;&amp;<a name="line.1812"></a>
-<span class="sourceLineNo">1813</span>        this.replicationSourceHandler.getWALActionsListener() != null) {<a name="line.1813"></a>
-<span class="sourceLineNo">1814</span>      // Replication handler is an implementation of WALActionsListener.<a name="line.1814"></a>
-<span class="sourceLineNo">1815</span>      listeners.add(this.replicationSourceHandler.getWALActionsListener());<a name="line.1815"></a>
-<span class="sourceLineNo">1816</span>    }<a name="line.1816"></a>
-<span class="sourceLineNo">1817</span><a name="line.1817"></a>
-<span class="sourceLineNo">1818</span>    // There is a cyclic dependency between ReplicationSourceHandler and WALFactory.<a name="line.1818"></a>
-<span class="sourceLineNo">1819</span>    // We use WALActionsListener to get the newly rolled WALs, so we need to get the<a name="line.1819"></a>
-<span class="sourceLineNo">1820</span>    // WALActionsListeners from ReplicationSourceHandler before constructing WALFactory. And then<a name="line.1820"></a>
-<span class="sourceLineNo">1821</span>    // ReplicationSourceHandler need to use WALFactory get the length of the wal file being written.<a name="line.1821"></a>
-<span class="sourceLineNo">1822</span>    // So we here we need to construct WALFactory first, and then pass it to the initialized method<a name="line.1822"></a>
-<span class="sourceLineNo">1823</span>    // of ReplicationSourceHandler.<a name="line.1823"></a>
-<span class="sourceLineNo">1824</span>    // TODO: I can't follow replication; it has initialize and then later on we start it!<a name="line.1824"></a>
-<span class="sourceLineNo">1825</span>    WALFactory factory = new WALFactory(conf, listeners, serverName.toString());<a name="line.1825"></a>
-<span class="sourceLineNo">1826</span>    this.walFactory = factory;<a name="line.1826"></a>
-<span class="sourceLineNo">1827</span>    if (this.replicationSourceHandler != null) {<a name="line.1827"></a>
-<span class="sourceLineNo">1828</span>      this.replicationSourceHandler.initialize(this, walFs, logDir, oldLogDir, factory);<a name="line.1828"></a>
-<span class="sourceLineNo">1829</span>    }<a name="line.1829"></a>
-<span class="sourceLineNo">1830</span>    if (this.replicationSinkHandler != null &amp;&amp;<a name="line.1830"></a>
-<span class="sourceLineNo">1831</span>        this.replicationSinkHandler != this.replicationSourceHandler) {<a name="line.1831"></a>
-<span class="sourceLineNo">1832</span>      this.replicationSinkHandler.initialize(this, walFs, logDir, oldLogDir, factory);<a name="line.1832"></a>
-<span class="sourceLineNo">1833</span>    }<a name="line.1833"></a>
-<span class="sourceLineNo">1834</span>  }<a name="line.1834"></a>
-<span class="sourceLineNo">1835</span><a name="line.1835"></a>
-<span class="sourceLineNo">1836</span>  /**<a name="line.1836"></a>
-<span class="sourceLineNo">1837</span>   * Start up replication source and sink handlers.<a name="line.1837"></a>
-<span class="sourceLineNo">1838</span>   * @throws IOException<a name="line.1838"></a>
-<span class="sourceLineNo">1839</span>   */<a name="line.1839"></a>
-<span class="sourceLineNo">1840</span>  private void startReplicationService() throws IOException {<a name="line.1840"></a>
-<span class="sourceLineNo">1841</span>    if (this.replicationSourceHandler == this.replicationSinkHandler &amp;&amp;<a name="line.1841"></a>
-<span class="sourceLineNo">1842</span>        this.replicationSourceHandler != null) {<a name="line.1842"></a>
-<span class="sourceLineNo">1843</span>      this.replicationSourceHandler.startReplicationService();<a name="line.1843"></a>
-<span class="sourceLineNo">1844</span>    } else {<a name="line.1844"></a>
-<span class="sourceLineNo">1845</span>      if (this.replicationSourceHandler != null) {<a name="line.1845"></a>
-<span class="sourceLineNo">1846</span>        this.replicationSourceHandler.startReplicationService();<a name="line.1846"></a>
-<span class="sourceLineNo">1847</span>      }<a name="line.1847"></a>
-<span class="sourceLineNo">1848</span>      if (this.replicationSinkHandler != null) {<a name="line.1848"></a>
-<span class="sourceLineNo">1849</span>        this.replicationSinkHandler.startReplicationService();<a name="line.1849"></a>
-<span class="sourceLineNo">1850</span>      }<a name="line.1850"></a>
-<span class="sourceLineNo">1851</span>    }<a name="line.1851"></a>
-<span class="sourceLineNo">1852</span>  }<a name="line.1852"></a>
-<span class="sourceLineNo">1853</span><a name="line.1853"></a>
+<span class="sourceLineNo">1534</span><a name="line.1534"></a>
+<span class="sourceLineNo">1535</span>      // Set up ZK<a name="line.1535"></a>
+<span class="sourceLineNo">1536</span>      LOG.info("Serving as " + this.serverName + ", RpcServer on " + rpcServices.isa +<a name="line.1536"></a>
+<span class="sourceLineNo">1537</span>          ", sessionid=0x" +<a name="line.1537"></a>
+<span class="sourceLineNo">1538</span>          Long.toHexString(this.zooKeeper.getRecoverableZooKeeper().getSessionId()));<a name="line.1538"></a>
+<span class="sourceLineNo">1539</span><a name="line.1539"></a>
+<span class="sourceLineNo">1540</span>      // Wake up anyone waiting for this server to online<a name="line.1540"></a>
+<span class="sourceLineNo">1541</span>      synchronized (online) {<a name="line.1541"></a>
+<span class="sourceLineNo">1542</span>        online.set(true);<a name="line.1542"></a>
+<span class="sourceLineNo">1543</span>        online.notifyAll();<a name="line.1543"></a>
+<span class="sourceLineNo">1544</span>      }<a name="line.1544"></a>
+<span class="sourceLineNo">1545</span>    } catch (Throwable e) {<a name="line.1545"></a>
+<span class="sourceLineNo">1546</span>      stop("Failed initialization");<a name="line.1546"></a>
+<span class="sourceLineNo">1547</span>      throw convertThrowableToIOE(cleanup(e, "Failed init"),<a name="line.1547"></a>
+<span class="sourceLineNo">1548</span>          "Region server startup failed");<a name="line.1548"></a>
+<span class="sourceLineNo">1549</span>    } finally {<a name="line.1549"></a>
+<span class="sourceLineNo">1550</span>      sleeper.skipSleepCycle();<a name="line.1550"></a>
+<span class="sourceLineNo">1551</span>    }<a name="line.1551"></a>
+<span class="sourceLineNo">1552</span>  }<a name="line.1552"></a>
+<span class="sourceLineNo">1553</span><a name="line.1553"></a>
+<span class="sourceLineNo">1554</span>  protected void initializeMemStoreChunkCreator() {<a name="line.1554"></a>
+<span class="sourceLineNo">1555</span>    if (MemStoreLAB.isEnabled(conf)) {<a name="line.1555"></a>
+<span class="sourceLineNo">1556</span>      // MSLAB is enabled. So initialize MemStoreChunkPool<a name="line.1556"></a>
+<span class="sourceLineNo">1557</span>      // By this time, the MemstoreFlusher is already initialized. We can get the global limits from<a name="line.1557"></a>
+<span class="sourceLineNo">1558</span>      // it.<a name="line.1558"></a>
+<span class="sourceLineNo">1559</span>      Pair&lt;Long, MemoryType&gt; pair = MemorySizeUtil.getGlobalMemStoreSize(conf);<a name="line.1559"></a>
+<span class="sourceLineNo">1560</span>      long globalMemStoreSize = pair.getFirst();<a name="line.1560"></a>
+<span class="sourceLineNo">1561</span>      boolean offheap = this.regionServerAccounting.isOffheap();<a name="line.1561"></a>
+<span class="sourceLineNo">1562</span>      // When off heap memstore in use, take full area for chunk pool.<a name="line.1562"></a>
+<span class="sourceLineNo">1563</span>      float poolSizePercentage = offheap? 1.0F:<a name="line.1563"></a>
+<span class="sourceLineNo">1564</span>          conf.getFloat(MemStoreLAB.CHUNK_POOL_MAXSIZE_KEY, MemStoreLAB.POOL_MAX_SIZE_DEFAULT);<a name="line.1564"></a>
+<span class="sourceLineNo">1565</span>      float initialCountPercentage = conf.getFloat(MemStoreLAB.CHUNK_POOL_INITIALSIZE_KEY,<a name="line.1565"></a>
+<span class="sourceLineNo">1566</span>          MemStoreLAB.POOL_INITIAL_SIZE_DEFAULT);<a name="line.1566"></a>
+<span class="sourceLineNo">1567</span>      int chunkSize = conf.getInt(MemStoreLAB.CHUNK_SIZE_KEY, MemStoreLAB.CHUNK_SIZE_DEFAULT);<a name="line.1567"></a>
+<span class="sourceLineNo">1568</span>      // init the chunkCreator<a name="line.1568"></a>
+<span class="sourceLineNo">1569</span>      ChunkCreator chunkCreator =<a name="line.1569"></a>
+<span class="sourceLineNo">1570</span>          ChunkCreator.initialize(chunkSize, offheap, globalMemStoreSize, poolSizePercentage,<a name="line.1570"></a>
+<span class="sourceLineNo">1571</span>      initialCountPercentage, this.hMemManager);<a name="line.1571"></a>
+<span class="sourceLineNo">1572</span>    }<a name="line.1572"></a>
+<span class="sourceLineNo">1573</span>  }<a name="line.1573"></a>
+<span class="sourceLineNo">1574</span><a name="line.1574"></a>
+<span class="sourceLineNo">1575</span>  private void startHeapMemoryManager() {<a name="line.1575"></a>
+<span class="sourceLineNo">1576</span>    this.hMemManager = HeapMemoryManager.create(this.conf, this.cacheFlusher, this,<a name="line.1576"></a>
+<span class="sourceLineNo">1577</span>        this.regionServerAccounting);<a name="line.1577"></a>
+<span class="sourceLineNo">1578</span>    if (this.hMemManager != null) {<a name="line.1578"></a>
+<span class="sourceLineNo">1579</span>      this.hMemManager.start(getChoreService());<a name="line.1579"></a>
+<span class="sourceLineNo">1580</span>    }<a name="line.1580"></a>
+<span class="sourceLineNo">1581</span>  }<a name="line.1581"></a>
+<span class="sourceLineNo">1582</span><a name="line.1582"></a>
+<span class="sourceLineNo">1583</span>  private void createMyEphemeralNode() throws KeeperException, IOException {<a name="line.1583"></a>
+<span class="sourceLineNo">1584</span>    RegionServerInfo.Builder rsInfo = RegionServerInfo.newBuilder();<a name="line.1584"></a>
+<span class="sourceLineNo">1585</span>    rsInfo.setInfoPort(infoServer != null ? infoServer.getPort() : -1);<a name="line.1585"></a>
+<span class="sourceLineNo">1586</span>    rsInfo.setVersionInfo(ProtobufUtil.getVersionInfo());<a name="line.1586"></a>
+<span class="sourceLineNo">1587</span>    byte[] data = ProtobufUtil.prependPBMagic(rsInfo.build().toByteArray());<a name="line.1587"></a>
+<span class="sourceLineNo">1588</span>    ZKUtil.createEphemeralNodeAndWatch(this.zooKeeper, getMyEphemeralNodePath(), data);<a name="line.1588"></a>
+<span class="sourceLineNo">1589</span>  }<a name="line.1589"></a>
+<span class="sourceLineNo">1590</span><a name="line.1590"></a>
+<span class="sourceLineNo">1591</span>  private void deleteMyEphemeralNode() throws KeeperException {<a name="line.1591"></a>
+<span class="sourceLineNo">1592</span>    ZKUtil.deleteNode(this.zooKeeper, getMyEphemeralNodePath());<a name="line.1592"></a>
+<span class="sourceLineNo">1593</span>  }<a name="line.1593"></a>
+<span class="sourceLineNo">1594</span><a name="line.1594"></a>
+<span class="sourceLineNo">1595</span>  @Override<a name="line.1595"></a>
+<span class="sourceLineNo">1596</span>  public RegionServerAccounting getRegionServerAccounting() {<a name="line.1596"></a>
+<span class="sourceLineNo">1597</span>    return regionServerAccounting;<a name="line.1597"></a>
+<span class="sourceLineNo">1598</span>  }<a name="line.1598"></a>
+<span class="sourceLineNo">1599</span><a name="line.1599"></a>
+<span class="sourceLineNo">1600</span>  /*<a name="line.1600"></a>
+<span class="sourceLineNo">1601</span>   * @param r Region to get RegionLoad for.<a name="line.1601"></a>
+<span class="sourceLineNo">1602</span>   * @param regionLoadBldr the RegionLoad.Builder, can be null<a name="line.1602"></a>
+<span class="sourceLineNo">1603</span>   * @param regionSpecifier the RegionSpecifier.Builder, can be null<a name="line.1603"></a>
+<span class="sourceLineNo">1604</span>   * @return RegionLoad instance.<a name="line.1604"></a>
+<span class="sourceLineNo">1605</span>   *<a name="line.1605"></a>
+<span class="sourceLineNo">1606</span>   * @throws IOException<a name="line.1606"></a>
+<span class="sourceLineNo">1607</span>   */<a name="line.1607"></a>
+<span class="sourceLineNo">1608</span>  RegionLoad createRegionLoad(final HRegion r, RegionLoad.Builder regionLoadBldr,<a name="line.1608"></a>
+<span class="sourceLineNo">1609</span>      RegionSpecifier.Builder regionSpecifier) throws IOException {<a name="line.1609"></a>
+<span class="sourceLineNo">1610</span>    byte[] name = r.getRegionInfo().getRegionName();<a name="line.1610"></a>
+<span class="sourceLineNo">1611</span>    int stores = 0;<a name="line.1611"></a>
+<span class="sourceLineNo">1612</span>    int storefiles = 0;<a name="line.1612"></a>
+<span class="sourceLineNo">1613</span>    int storeUncompressedSizeMB = 0;<a name="line.1613"></a>
+<span class="sourceLineNo">1614</span>    int storefileSizeMB = 0;<a name="line.1614"></a>
+<span class="sourceLineNo">1615</span>    int memstoreSizeMB = (int) (r.getMemStoreSize() / 1024 / 1024);<a name="line.1615"></a>
+<span class="sourceLineNo">1616</span>    long storefileIndexSizeKB = 0;<a name="line.1616"></a>
+<span class="sourceLineNo">1617</span>    int rootIndexSizeKB = 0;<a name="line.1617"></a>
+<span class="sourceLineNo">1618</span>    int totalStaticIndexSizeKB = 0;<a name="line.1618"></a>
+<span class="sourceLineNo">1619</span>    int totalStaticBloomSizeKB = 0;<a name="line.1619"></a>
+<span class="sourceLineNo">1620</span>    long totalCompactingKVs = 0;<a name="line.1620"></a>
+<span class="sourceLineNo">1621</span>    long currentCompactedKVs = 0;<a name="line.1621"></a>
+<span class="sourceLineNo">1622</span>    List&lt;HStore&gt; storeList = r.getStores();<a name="line.1622"></a>
+<span class="sourceLineNo">1623</span>    stores += storeList.size();<a name="line.1623"></a>
+<span class="sourceLineNo">1624</span>    for (HStore store : storeList) {<a name="line.1624"></a>
+<span class="sourceLineNo">1625</span>      storefiles += store.getStorefilesCount();<a name="line.1625"></a>
+<span class="sourceLineNo">1626</span>      storeUncompressedSizeMB += (int) (store.getStoreSizeUncompressed() / 1024 / 1024);<a name="line.1626"></a>
+<span class="sourceLineNo">1627</span>      storefileSizeMB += (int) (store.getStorefilesSize() / 1024 / 1024);<a name="line.1627"></a>
+<span class="sourceLineNo">1628</span>      storefileIndexSizeKB += store.getStorefilesIndexSize() / 1024;<a name="line.1628"></a>
+<span class="sourceLineNo">1629</span>      CompactionProgress progress = store.getCompactionProgress();<a name="line.1629"></a>
+<span class="sourceLineNo">1630</span>      if (progress != null) {<a name="line.1630"></a>
+<span class="sourceLineNo">1631</span>        totalCompactingKVs += progress.totalCompactingKVs;<a name="line.1631"></a>
+<span class="sourceLineNo">1632</span>        currentCompactedKVs += progress.currentCompactedKVs;<a name="line.1632"></a>
+<span class="sourceLineNo">1633</span>      }<a name="line.1633"></a>
+<span class="sourceLineNo">1634</span>      rootIndexSizeKB += (int) (store.getStorefilesIndexSize() / 1024);<a name="line.1634"></a>
+<span class="sourceLineNo">1635</span>      totalStaticIndexSizeKB += (int) (store.getTotalStaticIndexSize() / 1024);<a name="line.1635"></a>
+<span class="sourceLineNo">1636</span>      totalStaticBloomSizeKB += (int) (store.getTotalStaticBloomSize() / 1024);<a name="line.1636"></a>
+<span class="sourceLineNo">1637</span>    }<a name="line.1637"></a>
+<span class="sourceLineNo">1638</span><a name="line.1638"></a>
+<span class="sourceLineNo">1639</span>    float dataLocality =<a name="line.1639"></a>
+<span class="sourceLineNo">1640</span>        r.getHDFSBlocksDistribution().getBlockLocalityIndex(serverName.getHostname());<a name="line.1640"></a>
+<span class="sourceLineNo">1641</span>    if (regionLoadBldr == null) {<a name="line.1641"></a>
+<span class="sourceLineNo">1642</span>      regionLoadBldr = RegionLoad.newBuilder();<a name="line.1642"></a>
+<span class="sourceLineNo">1643</span>    }<a name="line.1643"></a>
+<span class="sourceLineNo">1644</span>    if (regionSpecifier == null) {<a name="line.1644"></a>
+<span class="sourceLineNo">1645</span>      regionSpecifier = RegionSpecifier.newBuilder();<a name="line.1645"></a>
+<span class="sourceLineNo">1646</span>    }<a name="line.1646"></a>
+<span class="sourceLineNo">1647</span>    regionSpecifier.setType(RegionSpecifierType.REGION_NAME);<a name="line.1647"></a>
+<span class="sourceLineNo">1648</span>    regionSpecifier.setValue(UnsafeByteOperations.unsafeWrap(name));<a name="line.1648"></a>
+<span class="sourceLineNo">1649</span>    regionLoadBldr.setRegionSpecifier(regionSpecifier.build())<a name="line.1649"></a>
+<span class="sourceLineNo">1650</span>      .setStores(stores)<a name="line.1650"></a>
+<span class="sourceLineNo">1651</span>      .setStorefiles(storefiles)<a name="line.1651"></a>
+<span class="sourceLineNo">1652</span>      .setStoreUncompressedSizeMB(storeUncompressedSizeMB)<a name="line.1652"></a>
+<span class="sourceLineNo">1653</span>      .setStorefileSizeMB(storefileSizeMB)<a name="line.1653"></a>
+<span class="sourceLineNo">1654</span>      .setMemStoreSizeMB(memstoreSizeMB)<a name="line.1654"></a>
+<span class="sourceLineNo">1655</span>      .setStorefileIndexSizeKB(storefileIndexSizeKB)<a name="line.1655"></a>
+<span class="sourceLineNo">1656</span>      .setRootIndexSizeKB(rootIndexSizeKB)<a name="line.1656"></a>
+<span class="sourceLineNo">1657</span>      .setTotalStaticIndexSizeKB(totalStaticIndexSizeKB)<a name="line.1657"></a>
+<span class="sourceLineNo">1658</span>      .setTotalStaticBloomSizeKB(totalStaticBloomSizeKB)<a name="line.1658"></a>
+<span class="sourceLineNo">1659</span>      .setReadRequestsCount(r.getReadRequestsCount())<a name="line.1659"></a>
+<span class="sourceLineNo">1660</span>      .setFilteredReadRequestsCount(r.getFilteredReadRequestsCount())<a name="line.1660"></a>
+<span class="sourceLineNo">1661</span>      .setWriteRequestsCount(r.getWriteRequestsCount())<a name="line.1661"></a>
+<span class="sourceLineNo">1662</span>      .setTotalCompactingKVs(totalCompactingKVs)<a name="line.1662"></a>
+<span class="sourceLineNo">1663</span>      .setCurrentCompactedKVs(currentCompactedKVs)<a name="line.1663"></a>
+<span class="sourceLineNo">1664</span>      .setDataLocality(dataLocality)<a name="line.1664"></a>
+<span class="sourceLineNo">1665</span>      .setLastMajorCompactionTs(r.getOldestHfileTs(true));<a name="line.1665"></a>
+<span class="sourceLineNo">1666</span>    ((HRegion)r).setCompleteSequenceId(regionLoadBldr);<a name="line.1666"></a>
+<span class="sourceLineNo">1667</span><a name="line.1667"></a>
+<span class="sourceLineNo">1668</span>    return regionLoadBldr.build();<a name="line.1668"></a>
+<span class="sourceLineNo">1669</span>  }<a name="line.1669"></a>
+<span class="sourceLineNo">1670</span><a name="line.1670"></a>
+<span class="sourceLineNo">1671</span>  /**<a name="line.1671"></a>
+<span class="sourceLineNo">1672</span>   * @param encodedRegionName<a name="line.1672"></a>
+<span class="sourceLineNo">1673</span>   * @return An instance of RegionLoad.<a name="line.1673"></a>
+<span class="sourceLineNo">1674</span>   */<a name="line.1674"></a>
+<span class="sourceLineNo">1675</span>  public RegionLoad createRegionLoad(final String encodedRegionName) throws IOException {<a name="line.1675"></a>
+<span class="sourceLineNo">1676</span>    HRegion r = onlineRegions.get(encodedRegionName);<a name="line.1676"></a>
+<span class="sourceLineNo">1677</span>    return r != null ? createRegionLoad(r, null, null) : null;<a name="line.1677"></a>
+<span class="sourceLineNo">1678</span>  }<a name="line.1678"></a>
+<span class="sourceLineNo">1679</span><a name="line.1679"></a>
+<span class="sourceLineNo">1680</span>  /*<a name="line.1680"></a>
+<span class="sourceLineNo">1681</span>   * Inner class that runs on a long period checking if regions need compaction.<a name="line.1681"></a>
+<span class="sourceLineNo">1682</span>   */<a name="line.1682"></a>
+<span class="sourceLineNo">1683</span>  private static class CompactionChecker extends ScheduledChore {<a name="line.1683"></a>
+<span class="sourceLineNo">1684</span>    private final HRegionServer instance;<a name="line.1684"></a>
+<span class="sourceLineNo">1685</span>    private final int majorCompactPriority;<a name="line.1685"></a>
+<span class="sourceLineNo">1686</span>    private final static int DEFAULT_PRIORITY = Integer.MAX_VALUE;<a name="line.1686"></a>
+<span class="sourceLineNo">1687</span>    //Iteration is 1-based rather than 0-based so we don't check for compaction<a name="line.1687"></a>
+<span class="sourceLineNo">1688</span>    // immediately upon region server startup<a name="line.1688"></a>
+<span class="sourceLineNo">1689</span>    private long iteration = 1;<a name="line.1689"></a>
+<span class="sourceLineNo">1690</span><a name="line.1690"></a>
+<span class="sourceLineNo">1691</span>    CompactionChecker(final HRegionServer h, final int sleepTime, final Stoppable stopper) {<a name="line.1691"></a>
+<span class="sourceLineNo">1692</span>      super("CompactionChecker", stopper, sleepTime);<a name="line.1692"></a>
+<span class="sourceLineNo">1693</span>      this.instance = h;<a name="line.1693"></a>
+<span class="sourceLineNo">1694</span>      LOG.info(this.getName() + " runs every " + StringUtils.formatTime(sleepTime));<a name="line.1694"></a>
+<span class="sourceLineNo">1695</span><a name="line.1695"></a>
+<span class="sourceLineNo">1696</span>      /* MajorCompactPriority is configurable.<a name="line.1696"></a>
+<span class="sourceLineNo">1697</span>       * If not set, the compaction will use default priority.<a name="line.1697"></a>
+<span class="sourceLineNo">1698</span>       */<a name="line.1698"></a>
+<span class="sourceLineNo">1699</span>      this.majorCompactPriority = this.instance.conf.<a name="line.1699"></a>
+<span class="sourceLineNo">1700</span>          getInt("hbase.regionserver.compactionChecker.majorCompactPriority",<a name="line.1700"></a>
+<span class="sourceLineNo">1701</span>              DEFAULT_PRIORITY);<a name="line.1701"></a>
+<span class="sourceLineNo">1702</span>    }<a name="line.1702"></a>
+<span class="sourceLineNo">1703</span><a name="line.1703"></a>
+<span class="sourceLineNo">1704</span>    @Override<a name="line.1704"></a>
+<span class="sourceLineNo">1705</span>    protected void chore() {<a name="line.1705"></a>
+<span class="sourceLineNo">1706</span>      for (Region r : this.instance.onlineRegions.values()) {<a name="line.1706"></a>
+<span class="sourceLineNo">1707</span>        if (r == null) {<a name="line.1707"></a>
+<span class="sourceLineNo">1708</span>          continue;<a name="line.1708"></a>
+<span class="sourceLineNo">1709</span>        }<a name="line.1709"></a>
+<span class="sourceLineNo">1710</span>        HRegion hr = (HRegion) r;<a name="line.1710"></a>
+<span class="sourceLineNo">1711</span>        for (HStore s : hr.stores.values()) {<a name="line.1711"></a>
+<span class="sourceLineNo">1712</span>          try {<a name="line.1712"></a>
+<span class="sourceLineNo">1713</span>            long multiplier = s.getCompactionCheckMultiplier();<a name="line.1713"></a>
+<span class="sourceLineNo">1714</span>            assert multiplier &gt; 0;<a name="line.1714"></a>
+<span class="sourceLineNo">1715</span>            if (iteration % multiplier != 0) {<a name="line.1715"></a>
+<span class="sourceLineNo">1716</span>              continue;<a name="line.1716"></a>
+<span class="sourceLineNo">1717</span>            }<a name="line.1717"></a>
+<span class="sourceLineNo">1718</span>            if (s.needsCompaction()) {<a name="line.1718"></a>
+<span class="sourceLineNo">1719</span>              // Queue a compaction. Will recognize if major is needed.<a name="line.1719"></a>
+<span class="sourceLineNo">1720</span>              this.instance.compactSplitThread.requestSystemCompaction(hr, s,<a name="line.1720"></a>
+<span class="sourceLineNo">1721</span>                getName() + " requests compaction");<a name="line.1721"></a>
+<span class="sourceLineNo">1722</span>            } else if (s.shouldPerformMajorCompaction()) {<a name="line.1722"></a>
+<span class="sourceLineNo">1723</span>              s.triggerMajorCompaction();<a name="line.1723"></a>
+<span class="sourceLineNo">1724</span>              if (majorCompactPriority == DEFAULT_PRIORITY ||<a name="line.1724"></a>
+<span class="sourceLineNo">1725</span>                  majorCompactPriority &gt; hr.getCompactPriority()) {<a name="line.1725"></a>
+<span class="sourceLineNo">1726</span>                this.instance.compactSplitThread.requestCompaction(hr, s,<a name="line.1726"></a>
+<span class="sourceLineNo">1727</span>                    getName() + " requests major compaction; use default priority",<a name="line.1727"></a>
+<span class="sourceLineNo">1728</span>                    Store.NO_PRIORITY,<a name="line.1728"></a>
+<span class="sourceLineNo">1729</span>                CompactionLifeCycleTracker.DUMMY, null);<a name="line.1729"></a>
+<span class="sourceLineNo">1730</span>              } else {<a name="line.1730"></a>
+<span class="sourceLineNo">1731</span>                this.instance.compactSplitThread.requestCompaction(hr, s,<a name="line.1731"></a>
+<span class="sourceLineNo">1732</span>                    getName() + " requests major compaction; use configured priority",<a name="line.1732"></a>
+<span class="sourceLineNo">1733</span>                    this.majorCompactPriority, CompactionLifeCycleTracker.DUMMY, null);<a name="line.1733"></a>
+<span class="sourceLineNo">1734</span>              }<a name="line.1734"></a>
+<span class="sourceLineNo">1735</span>            }<a name="line.1735"></a>
+<span class="sourceLineNo">1736</span>          } catch (IOException e) {<a name="line.1736"></a>
+<span class="sourceLineNo">1737</span>            LOG.warn("Failed major compaction check on " + r, e);<a name="line.1737"></a>
+<span class="sourceLineNo">1738</span>          }<a name="line.1738"></a>
+<span class="sourceLineNo">1739</span>        }<a name="line.1739"></a>
+<span class="sourceLineNo">1740</span>      }<a name="line.1740"></a>
+<span class="sourceLineNo">1741</span>      iteration = (iteration == Long.MAX_VALUE) ? 0 : (iteration + 1);<a name="line.1741"></a>
+<span class="sourceLineNo">1742</span>    }<a name="line.1742"></a>
+<span class="sourceLineNo">1743</span>  }<a name="line.1743"></a>
+<span class="sourceLineNo">1744</span><a name="line.1744"></a>
+<span class="sourceLineNo">1745</span>  static class PeriodicMemStoreFlusher extends ScheduledChore {<a name="line.1745"></a>
+<span class="sourceLineNo">1746</span>    final HRegionServer server;<a name="line.1746"></a>
+<span class="sourceLineNo">1747</span>    final static int RANGE_OF_DELAY = 5 * 60 * 1000; // 5 min in milliseconds<a name="line.1747"></a>
+<span class="sourceLineNo">1748</span>    final static int MIN_DELAY_TIME = 0; // millisec<a name="line.1748"></a>
+<span class="sourceLineNo">1749</span>    public PeriodicMemStoreFlusher(int cacheFlushInterval, final HRegionServer server) {<a name="line.1749"></a>
+<span class="sourceLineNo">1750</span>      super("MemstoreFlusherChore", server, cacheFlushInterval);<a name="line.1750"></a>
+<span class="sourceLineNo">1751</span>      this.server = server;<a name="line.1751"></a>
+<span class="sourceLineNo">1752</span>    }<a name="line.1752"></a>
+<span class="sourceLineNo">1753</span><a name="line.1753"></a>
+<span class="sourceLineNo">1754</span>    @Override<a name="line.1754"></a>
+<span class="sourceLineNo">1755</span>    protected void chore() {<a name="line.1755"></a>
+<span class="sourceLineNo">1756</span>      final StringBuffer whyFlush = new StringBuffer();<a name="line.1756"></a>
+<span class="sourceLineNo">1757</span>      for (HRegion r : this.server.onlineRegions.values()) {<a name="line.1757"></a>
+<span class="sourceLineNo">1758</span>        if (r == null) continue;<a name="line.1758"></a>
+<span class="sourceLineNo">1759</span>        if (r.shouldFlush(whyFlush)) {<a name="line.1759"></a>
+<span class="sourceLineNo">1760</span>          FlushRequester requester = server.getFlushRequester();<a name="line.1760"></a>
+<span class="sourceLineNo">1761</span>          if (requester != null) {<a name="line.1761"></a>
+<span class="sourceLineNo">1762</span>            long randomDelay = RandomUtils.nextInt(0, RANGE_OF_DELAY) + MIN_DELAY_TIME;<a name="line.1762"></a>
+<span class="sourceLineNo">1763</span>            LOG.info(getName() + " requesting flush of " +<a name="line.1763"></a>
+<span class="sourceLineNo">1764</span>              r.getRegionInfo().getRegionNameAsString() + " because " +<a name="line.1764"></a>
+<span class="sourceLineNo">1765</span>              whyFlush.toString() +<a name="line.1765"></a>
+<span class="sourceLineNo">1766</span>              " after random delay " + randomDelay + "ms");<a name="line.1766"></a>
+<span class="sourceLineNo">1767</span>            //Throttle the flushes by putting a delay. If we don't throttle, and there<a name="line.1767"></a>
+<span class="sourceLineNo">1768</span>            //is a balanced write-load on the regions in a table, we might end up<a name="line.1768"></a>
+<span class="sourceLineNo">1769</span>            //overwhelming the filesystem with too many flushes at once.<a name="line.1769"></a>
+<span class="sourceLineNo">1770</span>            requester.requestDelayedFlush(r, randomDelay, false);<a name="line.1770"></a>
+<span class="sourceLineNo">1771</span>          }<a name="line.1771"></a>
+<span class="sourceLineNo">1772</span>        }<a name="line.1772"></a>
+<span class="sourceLineNo">1773</span>      }<a name="line.1773"></a>
+<span class="sourceLineNo">1774</span>    }<a name="line.1774"></a>
+<span class="sourceLineNo">1775</span>  }<a name="line.1775"></a>
+<span class="sourceLineNo">1776</span><a name="line.1776"></a>
+<span class="sourceLineNo">1777</span>  /**<a name="line.1777"></a>
+<span class="sourceLineNo">1778</span>   * Report the status of the server. A server is online once all the startup is<a name="line.1778"></a>
+<span class="sourceLineNo">1779</span>   * completed (setting up filesystem, starting executorService threads, etc.). This<a name="line.1779"></a>
+<span class="sourceLineNo">1780</span>   * method is designed mostly to be useful in tests.<a name="line.1780"></a>
+<span class="sourceLineNo">1781</span>   *<a name="line.1781"></a>
+<span class="sourceLineNo">1782</span>   * @return true if online, false if not.<a name="line.1782"></a>
+<span class="sourceLineNo">1783</span>   */<a name="line.1783"></a>
+<span class="sourceLineNo">1784</span>  public boolean isOnline() {<a name="line.1784"></a>
+<span class="sourceLineNo">1785</span>    return online.get();<a name="line.1785"></a>
+<span class="sourceLineNo">1786</span>  }<a name="line.1786"></a>
+<span class="sourceLineNo">1787</span><a name="line.1787"></a>
+<span class="sourceLineNo">1788</span>  /**<a name="line.1788"></a>
+<span class="sourceLineNo">1789</span>   * Setup WAL log and replication if enabled.<a name="line.1789"></a>
+<span class="sourceLineNo">1790</span>   * Replication setup is done in here because it wants to be hooked up to WAL.<a name="line.1790"></a>
+<span class="sourceLineNo">1791</span>   *<a name="line.1791"></a>
+<span class="sourceLineNo">1792</span>   * @throws IOException<a name="line.1792"></a>
+<span class="sourceLineNo">1793</span>   */<a name="line.1793"></a>
+<span class="sourceLineNo">1794</span>  private void setupWALAndReplication() throws IOException {<a name="line.1794"></a>
+<span class="sourceLineNo">1795</span>    // TODO Replication make assumptions here based on the default filesystem impl<a name="line.1795"></a>
+<span class="sourceLineNo">1796</span>    Path oldLogDir = new Path(walRootDir, HConstants.HREGION_OLDLOGDIR_NAME);<a name="line.1796"></a>
+<span class="sourceLineNo">1797</span>    String logName = AbstractFSWALProvider.getWALDirectoryName(this.serverName.toString());<a name="line.1797"></a>
+<span class="sourceLineNo">1798</span><a name="line.1798"></a>
+<span class="sourceLineNo">1799</span>    Path logDir = new Path(walRootDir, logName);<a name="line.1799"></a>
+<span class="sourceLineNo">1800</span>    if (LOG.isDebugEnabled()) LOG.debug("logDir=" + logDir);<a name="line.1800"></a>
+<span class="sourceLineNo">1801</span>    if (this.walFs.exists(logDir)) {<a name="line.1801"></a>
+<span class="sourceLineNo">1802</span>      throw new RegionServerRunningException("Region server has already " +<a name="line.1802"></a>
+<span class="sourceLineNo">1803</span>          "created directory at " + this.serverName.toString());<a name="line.1803"></a>
+<span class="sourceLineNo">1804</span>    }<a name="line.1804"></a>
+<span class="sourceLineNo">1805</span><a name="line.1805"></a>
+<span class="sourceLineNo">1806</span>    // Instantiate replication if replication enabled.  Pass it the log directories.<a name="line.1806"></a>
+<span class="sourceLineNo">1807</span>    // In here we create the Replication instances. Later they are initialized and started up.<a name="line.1807"></a>
+<span class="sourceLineNo">1808</span>    createNewReplicationInstance(conf, this, this.walFs, logDir, oldLogDir);<a name="line.1808"></a>
+<span class="sourceLineNo">1809</span><a name="line.1809"></a>
+<span class="sourceLineNo">1810</span>    // listeners the wal factory will add to wals it creates.<a name="line.1810"></a>
+<span class="sourceLineNo">1811</span>    List&lt;WALActionsListener&gt; listeners = new ArrayList&lt;&gt;();<a name="line.1811"></a>
+<span class="sourceLineNo">1812</span>    listeners.add(new MetricsWAL());<a name="line.1812"></a>
+<span class="sourceLineNo">1813</span>    if (this.replicationSourceHandler != null &amp;&amp;<a name="line.1813"></a>
+<span class="sourceLineNo">1814</span>        this.replicationSourceHandler.getWALActionsListener() != null) {<a name="line.1814"></a>
+<span class="sourceLineNo">1815</span>      // Replication handler is an implementation of WALActionsListener.<a name="line.1815"></a>
+<span class="sourceLineNo">1816</span>      listeners.add(this.replicationSourceHandler.getWALActionsListener());<a name="line.1816"></a>
+<span class="sourceLineNo">1817</span>    }<a name="line.1817"></a>
+<span class="sourceLineNo">1818</span><a name="line.1818"></a>
+<span class="sourceLineNo">1819</span>    // There is a cyclic dependency between ReplicationSourceHandler and WALFactory.<a name="line.1819"></a>
+<span class="sourceLineNo">1820</span>    // We use WALActionsListener to get the newly rolled WALs, so we need to get the<a name="line.1820"></a>
+<span class="sourceLineNo">1821</span>    // WALActionsListeners from ReplicationSourceHandler before constructing WALFactory. And then<a name="line.1821"></a>
+<span class="sourceLineNo">1822</span>    // ReplicationSourceHandler need to use WALFactory get the length of the wal file being written.<a name="line.1822"></a>
+<span class="sourceLineNo">1823</span>    // So we here we need to construct WALFactory first, and then pass it to the initialized method<a name="line.1823"></a>
+<span class="sourceLineNo">1824</span>    // of ReplicationSourceHandler.<a name="line.1824"></a>
+<span class="sourceLineNo">1825</span>    // TODO: I can't follow replication; it has initialize and then later on we start it!<a name="line.1825"></a>
+<span class="sourceLineNo">1826</span>    WALFactory factory = new WALFactory(conf, listeners, serverName.toString());<a name="line.1826"></a>
+<span class="sourceLineNo">1827</span>    this.walFactory = factory;<a name="line.1827"></a>
+<span class="sourceLineNo">1828</span>    if (this.replicationSourceHandler != null) {<a name="line.1828"></a>
+<span class="sourceLineNo">1829</span>      this.replicationSourceHandler.initialize(this, walFs, logDir, oldLogDir, factory);<a name="line.1829"></a>
+<span class="sourceLineNo">1830</span>    }<a name="line.1830"></a>
+<span class="sourceLineNo">1831</span>    if (this.replicationSinkHandler != null &amp;&amp;<a name="line.1831"></a>
+<span class="sourceLineNo">1832</span>        this.replicationSinkHandler != this.replicationSourceHandler) {<a name="line.1832"></a>
+<span class="sourceLineNo">1833</span>      this.replicationSinkHandler.initialize(this, walFs, logDir, oldLogDir, factory);<a name="line.1833"></a>
+<span class="sourceLineNo">1834</span>    }<a name="line.1834"></a>
+<span class="sourceLineNo">1835</span>  }<a name="line.1835"></a>
+<span class="sourceLineNo">1836</span><a name="line.1836"></a>
+<span class="sourceLineNo">1837</span>  /**<a name="line.1837"></a>
+<span class="sourceLineNo">1838</span>   * Start up replication source and sink handlers.<a name="line.1838"></a>
+<span class="sourceLineNo">1839</span>   * @throws IOException<a name="line.1839"></a>
+<span class="sourceLineNo">1840</span>   */<a name="line.1840"></a>
+<span class="sourceLineNo">1841</span>  private void startReplicationService() throws IOException {<a name="line.1841"></a>
+<span class="sourceLineNo">1842</span>    if (this.replicationSourceHandler == this.replicationSinkHandler &amp;&amp;<a name="line.1842"></a>
+<span class="sourceLineNo">1843</span>        this.replicationSourceHandler != null) {<a name="line.1843"></a>
+<span class="sourceLineNo">1844</span>      this.replicationSourceHandler.startReplicationService();<a name="line.1844"></a>
+<span class="sourceLineNo">1845</span>    } else {<a name="line.1845"></a>
+<span class="sourceLineNo">1846</span>      if (this.replicationSourceHandler != null) {<a name="line.1846"></a>
+<span class="sourceLineNo">1847</span>        this.replicationSourceHandler.startReplicationService();<a name="line.1847"></a>
+<span class="sourceLineNo">1848</span>      }<a name="line.1848"></a>
+<span class="sourceLineNo">1849</span>      if (this.replicationSinkHandler != null) {<a name="line.1849"></a>
+<span class="sourceLineNo">1850</span>        this.replicationSinkHandler.startReplicationService();<a name="line.1850"></a>
+<span class="sourceLineNo">1851</span>      }<a name="line.1851"></a>
+<span class="sourceLineNo">1852</span>    }<a name="line.1852"></a>
+<span class="sourceLineNo">1853</span>  }<a name="line.1853"></a>
 <span class="sourceLineNo">1854</span><a name="line.1854"></a>
-<span class="sourceLineNo">1855</span>  public MetricsRegionServer getRegionServerMetrics() {<a name="line.1855"></a>
-<span class="sourceLineNo">1856</span>    return this.metricsRegionServer;<a name="line.1856"></a>
-<span class="sourceLineNo">1857</span>  }<a name="line.1857"></a>
-<span class="sourceLineNo">1858</span><a name="line.1858"></a>
-<span class="sourceLineNo">1859</span>  /**<a name="line.1859"></a>
-<span class="sourceLineNo">1860</span>   * @return Master address tracker instance.<a name="line.1860"></a>
-<span class="sourceLineNo">1861</span>   */<a name="line.1861"></a>
-<span class="sourceLineNo">1862</span>  public MasterAddressTracker getMasterAddressTracker() {<a name="line.1862"></a>
-<span class="sourceLineNo">1863</span>    return this.masterAddressTracker;<a name="line.1863"></a>
-<span class="sourceLineNo">1864</span>  }<a name="line.1864"></a>
-<span class="sourceLineNo">1865</span><a name="line.1865"></a>
-<span class="sourceLineNo">1866</span>  /*<a name="line.1866"></a>
-<span class="sourceLineNo">1867</span>   * Start maintenance Threads, Server, Worker and lease checker threads.<a name="line.1867"></a>
-<span class="sourceLineNo">1868</span>   * Start all threads we need to run. This is called after we've successfully<a name="line.1868"></a>
-<span class="sourceLineNo">1869</span>   * registered with the Master.<a name="line.1869"></a>
-<span class="sourceLineNo">1870</span>   * Install an UncaughtExceptionHandler that calls abort of RegionServer if we<a name="line.1870"></a>
-<span class="sourceLineNo">1871</span>   * get an unhandled exception. We cannot set the handler on all threads.<a name="line.1871"></a>
-<span class="sourceLineNo">1872</span>   * Server's internal Listener thread is off limits. For Server, if an OOME, it<a name="line.1872"></a>
-<span class="sourceLineNo">1873</span>   * waits a while then retries. Meantime, a flush or a compaction that tries to<a name="line.1873"></a>
-<span class="sourceLineNo">1874</span>   * run should trigger same critical condition and the shutdown will run. On<a name="line.1874"></a>
-<span class="sourceLineNo">1875</span>   * its way out, this server will shut down Server. Leases are sort of<a name="line.1875"></a>
-<span class="sourceLineNo">1876</span>   * inbetween. It has an internal thread that while it inherits from Chore, it<a name="line.1876"></a>
-<span class="sourceLineNo">1877</span>   * keeps its own internal stop mechanism so needs to be stopped by this<a name="line.1877"></a>
-<span class="sourceLineNo">1878</span>   * hosting server. Worker logs the exception and exits.<a name="line.1878"></a>
-<span class="sourceLineNo">1879</span>   */<a name="line.1879"></a>
-<span class="sourceLineNo">1880</span>  private void startServices() throws IOException {<a name="line.1880"></a>
-<span class="sourceLineNo">1881</span>    if (!isStopped() &amp;&amp; !isAborted()) {<a name="line.1881"></a>
-<span class="sourceLineNo">1882</span>      initializeThreads();<a name="line.1882"></a>
-<span class="sourceLineNo">1883</span>    }<a name="line.1883"></a>
-<span class="sourceLineNo">1884</span>    this.secureBulkLoadManager = new SecureBulkLoadManager(this.conf, clusterConnection);<a name="line.1884"></a>
-<span class="sourceLineNo">1885</span>    this.secureBulkLoadManager.start();<a name="line.1885"></a>
-<span class="sourceLineNo">1886</span><a name="line.1886"></a>
-<span class="sourceLineNo">1887</span>    // Health checker thread.<a name="line.1887"></a>
-<span class="sourceLineNo">1888</span>    if (isHealthCheckerConfigured()) {<a name="line.1888"></a>
-<span class="sourceLineNo">1889</span>      int sleepTime = this.conf.getInt(HConstants.HEALTH_CHORE_WAKE_FREQ,<a name="line.1889"></a>
-<span class="sourceLineNo">1890</span>      HConstants.DEFAULT_THREAD_WAKE_FREQUENCY);<a name="line.1890"></a>
-<span class="sourceLineNo">1891</span>      healthCheckChore = new HealthCheckChore(sleepTime, this, getConfiguration());<a name="line.1891"></a>
-<span class="sourceLineNo">1892</span>    }<a name="line.1892"></a>
-<span class="sourceLineNo">1893</span><a name="line.1893"></a>
-<span class="sourceLineNo">1894</span>    this.walRoller = new LogRoller(this, this);<a name="line.1894"></a>
-<span class="sourceLineNo">1895</span>    this.flushThroughputController = FlushThroughputControllerFactory.create(this, conf);<a name="line.1895"></a>
-<span class="sourceLineNo">1896</span><a name="line.1896"></a>
-<span class="sourceLineNo">1897</span>    // Create the CompactedFileDischarger chore executorService. This chore helps to<a name="line.1897"></a>
-<span class="sourceLineNo">1898</span>    // remove the compacted files<a name="line.1898"></a>
-<span class="sourceLineNo">1899</span>    // that will no longer be used in reads.<a name="line.1899"></a>
-<span class="sourceLineNo">1900</span>    // Default is 2 mins. The default value for TTLCleaner is 5 mins so we set this to<a name="line.1900"></a>
-<span class="sourceLineNo">1901</span>    // 2 mins so that compacted files can be archived before the TTLCleaner runs<a name="line.1901"></a>
-<span class="sourceLineNo">1902</span>    int cleanerInterval =<a name="line.1902"></a>
-<span class="sourceLineNo">1903</span>    conf.getInt("hbase.hfile.compaction.discharger.interval", 2 * 60 * 1000);<a name="line.1903"></a>
-<span class="sourceLineNo">1904</span>    this.compactedFileDischarger =<a name="line.1904"></a>
-<span class="sourceLineNo">1905</span>    new CompactedHFilesDischarger(cleanerInterval, this, this);<a name="line.1905"></a>
-<span class="sourceLineNo">1906</span>    choreService.scheduleChore(compactedFileDischarger);<a name="line.1906"></a>
-<span class="sourceLineNo">1907</span><a name="line.1907"></a>
-<span class="sourceLineNo">1908</span>    // Start executor services<a name="line.1908"></a>
-<span class="sourceLineNo">1909</span>    this.executorService.startExecutorService(ExecutorType.RS_OPEN_REGION,<a name="line.1909"></a>
-<span class="sourceLineNo">1910</span>        conf.getInt("hbase.regionserver.executor.openregion.threads", 3));<a name="line.1910"></a>
-<span class="sourceLineNo">1911</span>    this.executorService.startExecutorService(ExecutorType.RS_OPEN_META,<a name="line.1911"></a>
-<span class="sourceLineNo">1912</span>        conf.getInt("hbase.regionserver.executor.openmeta.threads", 1));<a name="line.1912"></a>
-<span class="sourceLineNo">1913</span>    this.executorService.startExecutorService(ExecutorType.RS_OPEN_PRIORITY_REGION,<a name="line.1913"></a>
-<span class="sourceLineNo">1914</span>        conf.getInt("hbase.regionserver.executor.openpriorityregion.threads", 3));<a name="line.1914"></a>
-<span class="sourceLineNo">1915</span>    this.executorService.startExecutorService(ExecutorType.RS_CLOSE_REGION,<a name="line.1915"></a>
-<span class="sourceLineNo">1916</span>        conf.getInt("hbase.regionserver.executor.closeregion.threads", 3));<a name="line.1916"></a>
-<span class="sourceLineNo">1917</span>    this.executorService.startExecutorService(ExecutorType.RS_CLOSE_META,<a name="line.1917"></a>
-<span class="sourceLineNo">1918</span>        conf.getInt("hbase.regionserver.executor.closemeta.threads", 1));<a name="line.1918"></a>
-<span class="sourceLineNo">1919</span>    if (conf.getBoolean(StoreScanner.STORESCANNER_PARALLEL_SEEK_ENABLE, false)) {<a name="line.1919"></a>
-<span class="sourceLineNo">1920</span>      this.executorService.startExecutorService(ExecutorType.RS_PARALLEL_SEEK,<a name="line.1920"></a>
-<span class="sourceLineNo">1921</span>          conf.getInt("hbase.storescanner.parallel.seek.threads", 10));<a name="line.1921"></a>
-<span class="sourceLineNo">1922</span>    }<a name="line.1922"></a>
-<span class="sourceLineNo">1923</span>    this.executorService.startExecutorService(ExecutorType.RS_LOG_REPLAY_OPS, conf.getInt(<a name="line.1923"></a>
-<span class="sourceLineNo">1924</span>    "hbase.regionserver.wal.max.splitters", SplitLogWorkerCoordination.DEFAULT_MAX_SPLITTERS));<a name="line.1924"></a>
-<span class="sourceLineNo">1925</span>    // Start the threads for compacted files discharger<a name="line.1925"></a>
-<span class="sourceLineNo">1926</span>    this.executorService.startExecutorService(ExecutorType.RS_COMPACTED_FILES_DISCHARGER,<a name="line.1926"></a>
-<span class="sourceLineNo">1927</span>        conf.getInt(CompactionConfiguration.HBASE_HFILE_COMPACTION_DISCHARGER_THREAD_COUNT, 10));<a name="line.1927"></a>
-<span class="sourceLineNo">1928</span>    if (ServerRegionReplicaUtil.isRegionReplicaWaitForPrimaryFlushEnabled(conf)) {<a name="line.1928"></a>
-<span class="sourceLineNo">1929</span>      this.executorService.startExecutorService(ExecutorType.RS_REGION_REPLICA_FLUSH_OPS,<a name="line.1929"></a>
-<span class="sourceLineNo">1930</span>          conf.getInt("hbase.regionserver.region.replica.flusher.threads",<a name="line.1930"></a>
-<span class="sourceLineNo">1931</span>              conf.getInt("hbase.regionserver.executor.openregion.threads", 3)));<a name="line.1931"></a>
-<span class="sourceLineNo">1932</span>    }<a name="line.1932"></a>
-<span class="sourceLineNo">1933</span><a name="line.1933"></a>
-<span class="sourceLineNo">1934</span>    Threads.setDaemonThreadRunning(this.walRoller.getThread(), getName() + ".logRoller",<a name="line.1934"></a>
-<span class="sourceLineNo">1935</span>    uncaughtExceptionHandler);<a name="line.1935"></a>
-<span class="sourceLineNo">1936</span>    this.cacheFlusher.start(uncaughtExceptionHandler);<a name="line.1936"></a>
-<span class="sourceLineNo">1937</span><a name="line.1937"></a>
-<span class="sourceLineNo">1938</span>    if (this.compactionChecker != null) choreService.scheduleChore(compactionChecker);<a name="line.1938"></a>
-<span class="sourceLineNo">1939</span>    if (this.periodicFlusher != null) choreService.scheduleChore(periodicFlusher);<a name="line.1939"></a>
-<span class="sourceLineNo">1940</span>    if (this.healthCheckChore != null) choreService.scheduleChore(healthCheckChore);<a name="line.1940"></a>
-<span class="sourceLineNo">1941</span>    if (this.nonceManagerChore != null) choreService.scheduleChore(nonceManagerChore);<a name="line.1941"></a>
-<span class="sourceLineNo">1942</span>    if (this.storefileRefresher != null) choreService.scheduleChore(storefileRefresher);<a name="line.1942"></a>
-<span class="sourceLineNo">1943</span>    if (this.movedRegionsCleaner != null) choreService.scheduleChore(movedRegionsCleaner);<a name="line.1943"></a>
-<span class="sourceLineNo">1944</span>    if (this.fsUtilizationChore != null) choreService.scheduleChore(fsUtilizationChore);<a name="line.1944"></a>
-<span class="sourceLineNo">1945</span><a name="line.1945"></a>
-<span class="sourceLineNo">1946</span>    // Leases is not a Thread. Internally it runs a daemon thread. If it gets<a name="line.1946"></a>
-<span class="sourceLineNo">1947</span>    // an unhandled exception, it will just exit.<a name="line.1947"></a>
-<span class="sourceLineNo">1948</span>    Threads.setDaemonThreadRunning(this.leases.getThread(), getName() + ".leaseChecker",<a name="line.1948"></a>
-<span class="sourceLineNo">1949</span>    uncaughtExceptionHandler);<a name="line.1949"></a>
-<span class="sourceLineNo">1950</span><a name="line.1950"></a>
-<span class="sourceLineNo">1951</span>    // Create the log splitting worker and start it<a name="line.1951"></a>
-<span class="sourceLineNo">1952</span>    // set a smaller retries to fast fail otherwise splitlogworker could be blocked for<a name="line.1952"></a>
-<span class="sourceLineNo">1953</span>    // quite a while inside Connection layer. The worker won't be available for other<a name="line.1953"></a>
-<span class="sourceLineNo">1954</span>    // tasks even after current task is preempted after a split task times out.<a name="line.1954"></a>
-<span class="sourceLineNo">1955</span>    Configuration sinkConf = HBaseConfiguration.create(conf);<a name="line.1955"></a>
-<span class="sourceLineNo">1956</span>    sinkConf.setInt(HConstants.HBASE_CLIENT_RETRIES_NUMBER,<a name="line.1956"></a>
-<span class="sourceLineNo">1957</span>        conf.getInt("hbase.log.replay.retries.number", 8)); // 8 retries take about 23 seconds<a name="line.1957"></a>
-<span class="sourceLineNo">1958</span>    sinkConf.setInt(HConstants.HBASE_RPC_TIMEOUT_KEY,<a name="line.1958"></a>
-<span class="sourceLineNo">1959</span>        conf.getInt("hbase.log.replay.rpc.timeout", 30000)); // default 30 seconds<a name="line.1959"></a>
-<span class="sourceLineNo">1960</span>    sinkConf.setInt(HConstants.HBASE_CLIENT_SERVERSIDE_RETRIES_MULTIPLIER, 1);<a name="line.1960"></a>
-<span class="sourceLineNo">1961</span>    if (this.csm != null) {<a name="line.1961"></a>
-<span class="sourceLineNo">1962</span>      // SplitLogWorker needs csm. If none, don't start this.<a name="line.1962"></a>
-<span class="sourceLineNo">1963</span>      this.splitLogWorker = new SplitLogWorker(this, sinkConf, this,<a name="line.1963"></a>
-<span class="sourceLineNo">1964</span>          this, walFactory);<a name="line.1964"></a>
-<span class="sourceLineNo">1965</span>      splitLogWorker.start();<a name="line.1965"></a>
-<span class="sourceLineNo">1966</span>    } else {<a name="line.1966"></a>
-<span class="sourceLineNo">1967</span>      LOG.warn("SplitLogWorker Service NOT started; CoordinatedStateManager is null");<a name="line.1967"></a>
-<span class="sourceLineNo">1968</span>    }<a name="line.1968"></a>
-<span class="sourceLineNo">1969</span><a name="line.1969"></a>
-<span class="sourceLineNo">1970</span>    // Memstore services.<a name="line.1970"></a>
-<span class="sourceLineNo">1971</span>    startHeapMemoryManager();<a name="line.1971"></a>
-<span class="sourceLineNo">1972</span>    // Call it after starting HeapMemoryManager.<a name="line.1972"></a>
-<span class="sourceLineNo">1973</span>    initializeMemStoreChunkCreator();<a name="line.1973"></a>
-<span class="sourceLineNo">1974</span>  }<a name="line.1974"></a>
-<span class="sourceLineNo">1975</span><a name="line.1975"></a>
-<span class="sourceLineNo">1976</span>  private void initializeThreads() throws IOException {<a name="line.1976"></a>
-<span class="sourceLineNo">1977</span>    // Cache flushing thread.<a name="line.1977"></a>
-<span class="sourceLineNo">1978</span>    this.cacheFlusher = new MemStoreFlusher(conf, this);<a name="line.1978"></a>
-<span class="sourceLineNo">1979</span><a name="line.1979"></a>
-<span class="sourceLineNo">1980</span>    // Compaction thread<a name="line.1980"></a>
-<span class="sourceLineNo">1981</span>    this.compactSplitThread = new CompactSplit(this);<a name="line.1981"></a>
-<span class="sourceLineNo">1982</span><a name="line.1982"></a>
-<span class="sourceLineNo">1983</span>    // Background thread to check for compactions; needed if region has not gotten updates<a name="line.1983"></a>
-<span class="sourceLineNo">1984</span>    // in a while. It will take care of not checking too frequently on store-by-store basis.<a name="line.1984"></a>
-<span class="sourceLineNo">1985</span>    this.compactionChecker = new CompactionChecker(this, this.threadWakeFrequency, this);<a name="line.1985"></a>
-<span class="sourceLineNo">1986</span>    this.periodicFlusher = new PeriodicMemStoreFlusher(this.threadWakeFrequency, this);<a name="line.1986"></a>
-<span class="sourceLineNo">1987</span>    this.leases = new Leases(this.threadWakeFrequency);<a name="line.1987"></a>
-<span class="sourceLineNo">1988</span><a name="line.1988"></a>
-<span class="sourceLineNo">1989</span>    // Create the thread to clean the moved regions list<a name="line.1989"></a>
-<span class="sourceLineNo">1990</span>    movedRegionsCleaner = MovedRegionsCleaner.create(this);<a name="line.1990"></a>
-<span class="sourceLineNo">1991</span><a name="line.1991"></a>
-<span class="sourceLineNo">1992</span>    if (this.nonceManager != null) {<a name="line.1992"></a>
-<span class="sourceLineNo">1993</span>      // Create the scheduled chore that cleans up nonces.<a name="line.1993"></a>
-<span class="sourceLineNo">1994</span>      nonceManagerChore = this.nonceManager.createCleanupScheduledChore(this);<a name="line.1994"></a>
-<span class="sourceLineNo">1995</span>    }<a name="line.1995"></a>
-<span class="sourceLineNo">1996</span><a name="line.1996"></a>
-<span class="sourceLineNo">1997</span>    // Setup the Quota Manager<a name="line.1997"></a>
-<span class="sourceLineNo">1998</span>    rsQuotaManager = new RegionServerRpcQuotaManager(this);<a name="line.1998"></a>
-<span class="sourceLineNo">1999</span>    rsSpaceQuotaManager = new RegionServerSpaceQuotaManager(this);<a name="line.1999"></a>
-<span class="sourceLineNo">2000</span><a name="line.2000"></a>
-<span class="sourceLineNo">2001</span>    if (QuotaUtil.isQuotaEnabled(conf)) {<a name="line.2001"></a>
-<span class="sourceLineNo">2002</span>      this.fsUtilizationChore = new FileSystemUtilizationChore(this);<a name="line.2002"></a>
-<span class="sourceLineNo">2003</span>    }<a name="line.2003"></a>
-<span class="sourceLineNo">2004</span><a name="line.2004"></a>
+<span class="sourceLineNo">1855</span><a name="line.1855"></a>
+<span class="sourceLineNo">1856</span>  public MetricsRegionServer getRegionServerMetrics() {<a name="line.1856"></a>
+<span class="

<TRUNCATED>

[12/32] hbase-site git commit: Published site at .

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/29b27596/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.RegionScannerCloseCallBack.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.RegionScannerCloseCallBack.html b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.RegionScannerCloseCallBack.html
index b7f041a..c0ea82b 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.RegionScannerCloseCallBack.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.RegionScannerCloseCallBack.html
@@ -668,2792 +668,2806 @@
 <span class="sourceLineNo">660</span>    }<a name="line.660"></a>
 <span class="sourceLineNo">661</span>    if (regionServer.metricsRegionServer != null) {<a name="line.661"></a>
 <span class="sourceLineNo">662</span>      regionServer.metricsRegionServer.updateAppend(<a name="line.662"></a>
-<span class="sourceLineNo">663</span>        EnvironmentEdgeManager.currentTime() - before);<a name="line.663"></a>
-<span class="sourceLineNo">664</span>    }<a name="line.664"></a>
-<span class="sourceLineNo">665</span>    return r;<a name="line.665"></a>
-<span class="sourceLineNo">666</span>  }<a name="line.666"></a>
-<span class="sourceLineNo">667</span><a name="line.667"></a>
-<span class="sourceLineNo">668</span>  /**<a name="line.668"></a>
-<span class="sourceLineNo">669</span>   * Execute an increment mutation.<a name="line.669"></a>
-<span class="sourceLineNo">670</span>   *<a name="line.670"></a>
-<span class="sourceLineNo">671</span>   * @param region<a name="line.671"></a>
-<span class="sourceLineNo">672</span>   * @param mutation<a name="line.672"></a>
-<span class="sourceLineNo">673</span>   * @return the Result<a name="line.673"></a>
-<span class="sourceLineNo">674</span>   * @throws IOException<a name="line.674"></a>
-<span class="sourceLineNo">675</span>   */<a name="line.675"></a>
-<span class="sourceLineNo">676</span>  private Result increment(final HRegion region, final OperationQuota quota,<a name="line.676"></a>
-<span class="sourceLineNo">677</span>      final MutationProto mutation, final CellScanner cells, long nonceGroup,<a name="line.677"></a>
-<span class="sourceLineNo">678</span>      ActivePolicyEnforcement spaceQuota)<a name="line.678"></a>
-<span class="sourceLineNo">679</span>      throws IOException {<a name="line.679"></a>
-<span class="sourceLineNo">680</span>    long before = EnvironmentEdgeManager.currentTime();<a name="line.680"></a>
-<span class="sourceLineNo">681</span>    Increment increment = ProtobufUtil.toIncrement(mutation, cells);<a name="line.681"></a>
-<span class="sourceLineNo">682</span>    checkCellSizeLimit(region, increment);<a name="line.682"></a>
-<span class="sourceLineNo">683</span>    spaceQuota.getPolicyEnforcement(region).check(increment);<a name="line.683"></a>
-<span class="sourceLineNo">684</span>    quota.addMutation(increment);<a name="line.684"></a>
-<span class="sourceLineNo">685</span>    Result r = null;<a name="line.685"></a>
-<span class="sourceLineNo">686</span>    if (region.getCoprocessorHost() != null) {<a name="line.686"></a>
-<span class="sourceLineNo">687</span>      r = region.getCoprocessorHost().preIncrement(increment);<a name="line.687"></a>
-<span class="sourceLineNo">688</span>    }<a name="line.688"></a>
-<span class="sourceLineNo">689</span>    if (r == null) {<a name="line.689"></a>
-<span class="sourceLineNo">690</span>      boolean canProceed = startNonceOperation(mutation, nonceGroup);<a name="line.690"></a>
-<span class="sourceLineNo">691</span>      boolean success = false;<a name="line.691"></a>
-<span class="sourceLineNo">692</span>      try {<a name="line.692"></a>
-<span class="sourceLineNo">693</span>        long nonce = mutation.hasNonce() ? mutation.getNonce() : HConstants.NO_NONCE;<a name="line.693"></a>
-<span class="sourceLineNo">694</span>        if (canProceed) {<a name="line.694"></a>
-<span class="sourceLineNo">695</span>          r = region.increment(increment, nonceGroup, nonce);<a name="line.695"></a>
-<span class="sourceLineNo">696</span>        } else {<a name="line.696"></a>
-<span class="sourceLineNo">697</span>          // convert duplicate increment to get<a name="line.697"></a>
-<span class="sourceLineNo">698</span>          List&lt;Cell&gt; results = region.get(ProtobufUtil.toGet(mutation, cells), false, nonceGroup,<a name="line.698"></a>
-<span class="sourceLineNo">699</span>              nonce);<a name="line.699"></a>
-<span class="sourceLineNo">700</span>          r = Result.create(results);<a name="line.700"></a>
-<span class="sourceLineNo">701</span>        }<a name="line.701"></a>
-<span class="sourceLineNo">702</span>        success = true;<a name="line.702"></a>
-<span class="sourceLineNo">703</span>      } finally {<a name="line.703"></a>
-<span class="sourceLineNo">704</span>        if (canProceed) {<a name="line.704"></a>
-<span class="sourceLineNo">705</span>          endNonceOperation(mutation, nonceGroup, success);<a name="line.705"></a>
-<span class="sourceLineNo">706</span>        }<a name="line.706"></a>
-<span class="sourceLineNo">707</span>      }<a name="line.707"></a>
-<span class="sourceLineNo">708</span>      if (region.getCoprocessorHost() != null) {<a name="line.708"></a>
-<span class="sourceLineNo">709</span>        r = region.getCoprocessorHost().postIncrement(increment, r);<a name="line.709"></a>
-<span class="sourceLineNo">710</span>      }<a name="line.710"></a>
-<span class="sourceLineNo">711</span>    }<a name="line.711"></a>
-<span class="sourceLineNo">712</span>    if (regionServer.metricsRegionServer != null) {<a name="line.712"></a>
-<span class="sourceLineNo">713</span>      regionServer.metricsRegionServer.updateIncrement(<a name="line.713"></a>
-<span class="sourceLineNo">714</span>        EnvironmentEdgeManager.currentTime() - before);<a name="line.714"></a>
-<span class="sourceLineNo">715</span>    }<a name="line.715"></a>
-<span class="sourceLineNo">716</span>    return r;<a name="line.716"></a>
-<span class="sourceLineNo">717</span>  }<a name="line.717"></a>
-<span class="sourceLineNo">718</span><a name="line.718"></a>
-<span class="sourceLineNo">719</span>  /**<a name="line.719"></a>
-<span class="sourceLineNo">720</span>   * Run through the regionMutation &lt;code&gt;rm&lt;/code&gt; and per Mutation, do the work, and then when<a name="line.720"></a>
-<span class="sourceLineNo">721</span>   * done, add an instance of a {@link ResultOrException} that corresponds to each Mutation.<a name="line.721"></a>
-<span class="sourceLineNo">722</span>   * @param cellsToReturn  Could be null. May be allocated in this method.  This is what this<a name="line.722"></a>
-<span class="sourceLineNo">723</span>   * method returns as a 'result'.<a name="line.723"></a>
-<span class="sourceLineNo">724</span>   * @param closeCallBack the callback to be used with multigets<a name="line.724"></a>
-<span class="sourceLineNo">725</span>   * @param context the current RpcCallContext<a name="line.725"></a>
-<span class="sourceLineNo">726</span>   * @return Return the &lt;code&gt;cellScanner&lt;/code&gt; passed<a name="line.726"></a>
-<span class="sourceLineNo">727</span>   */<a name="line.727"></a>
-<span class="sourceLineNo">728</span>  private List&lt;CellScannable&gt; doNonAtomicRegionMutation(final HRegion region,<a name="line.728"></a>
-<span class="sourceLineNo">729</span>      final OperationQuota quota, final RegionAction actions, final CellScanner cellScanner,<a name="line.729"></a>
-<span class="sourceLineNo">730</span>      final RegionActionResult.Builder builder, List&lt;CellScannable&gt; cellsToReturn, long nonceGroup,<a name="line.730"></a>
-<span class="sourceLineNo">731</span>      final RegionScannersCloseCallBack closeCallBack, RpcCallContext context,<a name="line.731"></a>
-<span class="sourceLineNo">732</span>      ActivePolicyEnforcement spaceQuotaEnforcement) {<a name="line.732"></a>
-<span class="sourceLineNo">733</span>    // Gather up CONTIGUOUS Puts and Deletes in this mutations List.  Idea is that rather than do<a name="line.733"></a>
-<span class="sourceLineNo">734</span>    // one at a time, we instead pass them in batch.  Be aware that the corresponding<a name="line.734"></a>
-<span class="sourceLineNo">735</span>    // ResultOrException instance that matches each Put or Delete is then added down in the<a name="line.735"></a>
-<span class="sourceLineNo">736</span>    // doBatchOp call.  We should be staying aligned though the Put and Delete are deferred/batched<a name="line.736"></a>
-<span class="sourceLineNo">737</span>    List&lt;ClientProtos.Action&gt; mutations = null;<a name="line.737"></a>
-<span class="sourceLineNo">738</span>    long maxQuotaResultSize = Math.min(maxScannerResultSize, quota.getReadAvailable());<a name="line.738"></a>
-<span class="sourceLineNo">739</span>    IOException sizeIOE = null;<a name="line.739"></a>
-<span class="sourceLineNo">740</span>    Object lastBlock = null;<a name="line.740"></a>
-<span class="sourceLineNo">741</span>    ClientProtos.ResultOrException.Builder resultOrExceptionBuilder = ResultOrException.newBuilder();<a name="line.741"></a>
-<span class="sourceLineNo">742</span>    boolean hasResultOrException = false;<a name="line.742"></a>
-<span class="sourceLineNo">743</span>    for (ClientProtos.Action action : actions.getActionList()) {<a name="line.743"></a>
-<span class="sourceLineNo">744</span>      hasResultOrException = false;<a name="line.744"></a>
-<span class="sourceLineNo">745</span>      resultOrExceptionBuilder.clear();<a name="line.745"></a>
-<span class="sourceLineNo">746</span>      try {<a name="line.746"></a>
-<span class="sourceLineNo">747</span>        Result r = null;<a name="line.747"></a>
-<span class="sourceLineNo">748</span><a name="line.748"></a>
-<span class="sourceLineNo">749</span>        if (context != null<a name="line.749"></a>
-<span class="sourceLineNo">750</span>            &amp;&amp; context.isRetryImmediatelySupported()<a name="line.750"></a>
-<span class="sourceLineNo">751</span>            &amp;&amp; (context.getResponseCellSize() &gt; maxQuotaResultSize<a name="line.751"></a>
-<span class="sourceLineNo">752</span>              || context.getResponseBlockSize() + context.getResponseExceptionSize()<a name="line.752"></a>
-<span class="sourceLineNo">753</span>              &gt; maxQuotaResultSize)) {<a name="line.753"></a>
-<span class="sourceLineNo">754</span><a name="line.754"></a>
-<span class="sourceLineNo">755</span>          // We're storing the exception since the exception and reason string won't<a name="line.755"></a>
-<span class="sourceLineNo">756</span>          // change after the response size limit is reached.<a name="line.756"></a>
-<span class="sourceLineNo">757</span>          if (sizeIOE == null ) {<a name="line.757"></a>
-<span class="sourceLineNo">758</span>            // We don't need the stack un-winding do don't throw the exception.<a name="line.758"></a>
-<span class="sourceLineNo">759</span>            // Throwing will kill the JVM's JIT.<a name="line.759"></a>
-<span class="sourceLineNo">760</span>            //<a name="line.760"></a>
-<span class="sourceLineNo">761</span>            // Instead just create the exception and then store it.<a name="line.761"></a>
-<span class="sourceLineNo">762</span>            sizeIOE = new MultiActionResultTooLarge("Max size exceeded"<a name="line.762"></a>
-<span class="sourceLineNo">763</span>                + " CellSize: " + context.getResponseCellSize()<a name="line.763"></a>
-<span class="sourceLineNo">764</span>                + " BlockSize: " + context.getResponseBlockSize());<a name="line.764"></a>
-<span class="sourceLineNo">765</span><a name="line.765"></a>
-<span class="sourceLineNo">766</span>            // Only report the exception once since there's only one request that<a name="line.766"></a>
-<span class="sourceLineNo">767</span>            // caused the exception. Otherwise this number will dominate the exceptions count.<a name="line.767"></a>
-<span class="sourceLineNo">768</span>            rpcServer.getMetrics().exception(sizeIOE);<a name="line.768"></a>
-<span class="sourceLineNo">769</span>          }<a name="line.769"></a>
-<span class="sourceLineNo">770</span><a name="line.770"></a>
-<span class="sourceLineNo">771</span>          // Now that there's an exception is known to be created<a name="line.771"></a>
-<span class="sourceLineNo">772</span>          // use it for the response.<a name="line.772"></a>
-<span class="sourceLineNo">773</span>          //<a name="line.773"></a>
-<span class="sourceLineNo">774</span>          // This will create a copy in the builder.<a name="line.774"></a>
-<span class="sourceLineNo">775</span>          hasResultOrException = true;<a name="line.775"></a>
-<span class="sourceLineNo">776</span>          NameBytesPair pair = ResponseConverter.buildException(sizeIOE);<a name="line.776"></a>
-<span class="sourceLineNo">777</span>          resultOrExceptionBuilder.setException(pair);<a name="line.777"></a>
-<span class="sourceLineNo">778</span>          context.incrementResponseExceptionSize(pair.getSerializedSize());<a name="line.778"></a>
-<span class="sourceLineNo">779</span>          resultOrExceptionBuilder.setIndex(action.getIndex());<a name="line.779"></a>
-<span class="sourceLineNo">780</span>          builder.addResultOrException(resultOrExceptionBuilder.build());<a name="line.780"></a>
-<span class="sourceLineNo">781</span>          if (cellScanner != null) {<a name="line.781"></a>
-<span class="sourceLineNo">782</span>            skipCellsForMutation(action, cellScanner);<a name="line.782"></a>
-<span class="sourceLineNo">783</span>          }<a name="line.783"></a>
-<span class="sourceLineNo">784</span>          continue;<a name="line.784"></a>
-<span class="sourceLineNo">785</span>        }<a name="line.785"></a>
-<span class="sourceLineNo">786</span>        if (action.hasGet()) {<a name="line.786"></a>
-<span class="sourceLineNo">787</span>          long before = EnvironmentEdgeManager.currentTime();<a name="line.787"></a>
-<span class="sourceLineNo">788</span>          try {<a name="line.788"></a>
-<span class="sourceLineNo">789</span>            Get get = ProtobufUtil.toGet(action.getGet());<a name="line.789"></a>
-<span class="sourceLineNo">790</span>            if (context != null) {<a name="line.790"></a>
-<span class="sourceLineNo">791</span>              r = get(get, ((HRegion) region), closeCallBack, context);<a name="line.791"></a>
-<span class="sourceLineNo">792</span>            } else {<a name="line.792"></a>
-<span class="sourceLineNo">793</span>              r = region.get(get);<a name="line.793"></a>
-<span class="sourceLineNo">794</span>            }<a name="line.794"></a>
-<span class="sourceLineNo">795</span>          } finally {<a name="line.795"></a>
-<span class="sourceLineNo">796</span>            if (regionServer.metricsRegionServer != null) {<a name="line.796"></a>
-<span class="sourceLineNo">797</span>              regionServer.metricsRegionServer.updateGet(<a name="line.797"></a>
-<span class="sourceLineNo">798</span>                EnvironmentEdgeManager.currentTime() - before);<a name="line.798"></a>
-<span class="sourceLineNo">799</span>            }<a name="line.799"></a>
-<span class="sourceLineNo">800</span>          }<a name="line.800"></a>
-<span class="sourceLineNo">801</span>        } else if (action.hasServiceCall()) {<a name="line.801"></a>
-<span class="sourceLineNo">802</span>          hasResultOrException = true;<a name="line.802"></a>
-<span class="sourceLineNo">803</span>          try {<a name="line.803"></a>
-<span class="sourceLineNo">804</span>            com.google.protobuf.Message result =<a name="line.804"></a>
-<span class="sourceLineNo">805</span>                execServiceOnRegion(region, action.getServiceCall());<a name="line.805"></a>
-<span class="sourceLineNo">806</span>            ClientProtos.CoprocessorServiceResult.Builder serviceResultBuilder =<a name="line.806"></a>
-<span class="sourceLineNo">807</span>                ClientProtos.CoprocessorServiceResult.newBuilder();<a name="line.807"></a>
-<span class="sourceLineNo">808</span>            resultOrExceptionBuilder.setServiceResult(<a name="line.808"></a>
-<span class="sourceLineNo">809</span>                serviceResultBuilder.setValue(<a name="line.809"></a>
-<span class="sourceLineNo">810</span>                  serviceResultBuilder.getValueBuilder()<a name="line.810"></a>
-<span class="sourceLineNo">811</span>                    .setName(result.getClass().getName())<a name="line.811"></a>
-<span class="sourceLineNo">812</span>                    // TODO: Copy!!!<a name="line.812"></a>
-<span class="sourceLineNo">813</span>                    .setValue(UnsafeByteOperations.unsafeWrap(result.toByteArray()))));<a name="line.813"></a>
-<span class="sourceLineNo">814</span>          } catch (IOException ioe) {<a name="line.814"></a>
-<span class="sourceLineNo">815</span>            rpcServer.getMetrics().exception(ioe);<a name="line.815"></a>
-<span class="sourceLineNo">816</span>            NameBytesPair pair = ResponseConverter.buildException(ioe);<a name="line.816"></a>
-<span class="sourceLineNo">817</span>            resultOrExceptionBuilder.setException(pair);<a name="line.817"></a>
-<span class="sourceLineNo">818</span>            context.incrementResponseExceptionSize(pair.getSerializedSize());<a name="line.818"></a>
-<span class="sourceLineNo">819</span>          }<a name="line.819"></a>
-<span class="sourceLineNo">820</span>        } else if (action.hasMutation()) {<a name="line.820"></a>
-<span class="sourceLineNo">821</span>          MutationType type = action.getMutation().getMutateType();<a name="line.821"></a>
-<span class="sourceLineNo">822</span>          if (type != MutationType.PUT &amp;&amp; type != MutationType.DELETE &amp;&amp; mutations != null &amp;&amp;<a name="line.822"></a>
-<span class="sourceLineNo">823</span>              !mutations.isEmpty()) {<a name="line.823"></a>
-<span class="sourceLineNo">824</span>            // Flush out any Puts or Deletes already collected.<a name="line.824"></a>
-<span class="sourceLineNo">825</span>            doBatchOp(builder, region, quota, mutations, cellScanner, spaceQuotaEnforcement, false);<a name="line.825"></a>
-<span class="sourceLineNo">826</span>            mutations.clear();<a name="line.826"></a>
-<span class="sourceLineNo">827</span>          }<a name="line.827"></a>
-<span class="sourceLineNo">828</span>          switch (type) {<a name="line.828"></a>
-<span class="sourceLineNo">829</span>            case APPEND:<a name="line.829"></a>
-<span class="sourceLineNo">830</span>              r = append(region, quota, action.getMutation(), cellScanner, nonceGroup,<a name="line.830"></a>
-<span class="sourceLineNo">831</span>                  spaceQuotaEnforcement);<a name="line.831"></a>
-<span class="sourceLineNo">832</span>              break;<a name="line.832"></a>
-<span class="sourceLineNo">833</span>            case INCREMENT:<a name="line.833"></a>
-<span class="sourceLineNo">834</span>              r = increment(region, quota, action.getMutation(), cellScanner, nonceGroup,<a name="line.834"></a>
-<span class="sourceLineNo">835</span>                  spaceQuotaEnforcement);<a name="line.835"></a>
-<span class="sourceLineNo">836</span>              break;<a name="line.836"></a>
-<span class="sourceLineNo">837</span>            case PUT:<a name="line.837"></a>
-<span class="sourceLineNo">838</span>            case DELETE:<a name="line.838"></a>
-<span class="sourceLineNo">839</span>              // Collect the individual mutations and apply in a batch<a name="line.839"></a>
-<span class="sourceLineNo">840</span>              if (mutations == null) {<a name="line.840"></a>
-<span class="sourceLineNo">841</span>                mutations = new ArrayList&lt;&gt;(actions.getActionCount());<a name="line.841"></a>
-<span class="sourceLineNo">842</span>              }<a name="line.842"></a>
-<span class="sourceLineNo">843</span>              mutations.add(action);<a name="line.843"></a>
-<span class="sourceLineNo">844</span>              break;<a name="line.844"></a>
-<span class="sourceLineNo">845</span>            default:<a name="line.845"></a>
-<span class="sourceLineNo">846</span>              throw new DoNotRetryIOException("Unsupported mutate type: " + type.name());<a name="line.846"></a>
-<span class="sourceLineNo">847</span>          }<a name="line.847"></a>
-<span class="sourceLineNo">848</span>        } else {<a name="line.848"></a>
-<span class="sourceLineNo">849</span>          throw new HBaseIOException("Unexpected Action type");<a name="line.849"></a>
-<span class="sourceLineNo">850</span>        }<a name="line.850"></a>
-<span class="sourceLineNo">851</span>        if (r != null) {<a name="line.851"></a>
-<span class="sourceLineNo">852</span>          ClientProtos.Result pbResult = null;<a name="line.852"></a>
-<span class="sourceLineNo">853</span>          if (isClientCellBlockSupport(context)) {<a name="line.853"></a>
-<span class="sourceLineNo">854</span>            pbResult = ProtobufUtil.toResultNoData(r);<a name="line.854"></a>
-<span class="sourceLineNo">855</span>            //  Hard to guess the size here.  Just make a rough guess.<a name="line.855"></a>
-<span class="sourceLineNo">856</span>            if (cellsToReturn == null) {<a name="line.856"></a>
-<span class="sourceLineNo">857</span>              cellsToReturn = new ArrayList&lt;&gt;();<a name="line.857"></a>
-<span class="sourceLineNo">858</span>            }<a name="line.858"></a>
-<span class="sourceLineNo">859</span>            cellsToReturn.add(r);<a name="line.859"></a>
-<span class="sourceLineNo">860</span>          } else {<a name="line.860"></a>
-<span class="sourceLineNo">861</span>            pbResult = ProtobufUtil.toResult(r);<a name="line.861"></a>
-<span class="sourceLineNo">862</span>          }<a name="line.862"></a>
-<span class="sourceLineNo">863</span>          lastBlock = addSize(context, r, lastBlock);<a name="line.863"></a>
-<span class="sourceLineNo">864</span>          hasResultOrException = true;<a name="line.864"></a>
-<span class="sourceLineNo">865</span>          resultOrExceptionBuilder.setResult(pbResult);<a name="line.865"></a>
-<span class="sourceLineNo">866</span>        }<a name="line.866"></a>
-<span class="sourceLineNo">867</span>        // Could get to here and there was no result and no exception.  Presumes we added<a name="line.867"></a>
-<span class="sourceLineNo">868</span>        // a Put or Delete to the collecting Mutations List for adding later.  In this<a name="line.868"></a>
-<span class="sourceLineNo">869</span>        // case the corresponding ResultOrException instance for the Put or Delete will be added<a name="line.869"></a>
-<span class="sourceLineNo">870</span>        // down in the doBatchOp method call rather than up here.<a name="line.870"></a>
-<span class="sourceLineNo">871</span>      } catch (IOException ie) {<a name="line.871"></a>
-<span class="sourceLineNo">872</span>        rpcServer.getMetrics().exception(ie);<a name="line.872"></a>
-<span class="sourceLineNo">873</span>        hasResultOrException = true;<a name="line.873"></a>
-<span class="sourceLineNo">874</span>        NameBytesPair pair = ResponseConverter.buildException(ie);<a name="line.874"></a>
-<span class="sourceLineNo">875</span>        resultOrExceptionBuilder.setException(pair);<a name="line.875"></a>
-<span class="sourceLineNo">876</span>        context.incrementResponseExceptionSize(pair.getSerializedSize());<a name="line.876"></a>
-<span class="sourceLineNo">877</span>      }<a name="line.877"></a>
-<span class="sourceLineNo">878</span>      if (hasResultOrException) {<a name="line.878"></a>
-<span class="sourceLineNo">879</span>        // Propagate index.<a name="line.879"></a>
-<span class="sourceLineNo">880</span>        resultOrExceptionBuilder.setIndex(action.getIndex());<a name="line.880"></a>
-<span class="sourceLineNo">881</span>        builder.addResultOrException(resultOrExceptionBuilder.build());<a name="line.881"></a>
-<span class="sourceLineNo">882</span>      }<a name="line.882"></a>
-<span class="sourceLineNo">883</span>    }<a name="line.883"></a>
-<span class="sourceLineNo">884</span>    // Finish up any outstanding mutations<a name="line.884"></a>
-<span class="sourceLineNo">885</span>    if (mutations != null &amp;&amp; !mutations.isEmpty()) {<a name="line.885"></a>
-<span class="sourceLineNo">886</span>      try {<a name="line.886"></a>
-<span class="sourceLineNo">887</span>        doBatchOp(builder, region, quota, mutations, cellScanner, spaceQuotaEnforcement, false);<a name="line.887"></a>
-<span class="sourceLineNo">888</span>      } catch (IOException ioe) {<a name="line.888"></a>
-<span class="sourceLineNo">889</span>        rpcServer.getMetrics().exception(ioe);<a name="line.889"></a>
-<span class="sourceLineNo">890</span>        NameBytesPair pair = ResponseConverter.buildException(ioe);<a name="line.890"></a>
-<span class="sourceLineNo">891</span>        resultOrExceptionBuilder.setException(pair);<a name="line.891"></a>
-<span class="sourceLineNo">892</span>        context.incrementResponseExceptionSize(pair.getSerializedSize());<a name="line.892"></a>
-<span class="sourceLineNo">893</span>        builder.addResultOrException(resultOrExceptionBuilder.build());<a name="line.893"></a>
-<span class="sourceLineNo">894</span>      }<a name="line.894"></a>
-<span class="sourceLineNo">895</span>    }<a name="line.895"></a>
-<span class="sourceLineNo">896</span>    return cellsToReturn;<a name="line.896"></a>
-<span class="sourceLineNo">897</span>  }<a name="line.897"></a>
-<span class="sourceLineNo">898</span><a name="line.898"></a>
-<span class="sourceLineNo">899</span>  private void checkCellSizeLimit(final HRegion r, final Mutation m) throws IOException {<a name="line.899"></a>
-<span class="sourceLineNo">900</span>    if (r.maxCellSize &gt; 0) {<a name="line.900"></a>
-<span class="sourceLineNo">901</span>      CellScanner cells = m.cellScanner();<a name="line.901"></a>
-<span class="sourceLineNo">902</span>      while (cells.advance()) {<a name="line.902"></a>
-<span class="sourceLineNo">903</span>        int size = PrivateCellUtil.estimatedSerializedSizeOf(cells.current());<a name="line.903"></a>
-<span class="sourceLineNo">904</span>        if (size &gt; r.maxCellSize) {<a name="line.904"></a>
-<span class="sourceLineNo">905</span>          String msg = "Cell with size " + size + " exceeds limit of " + r.maxCellSize + " bytes";<a name="line.905"></a>
-<span class="sourceLineNo">906</span>          if (LOG.isDebugEnabled()) {<a name="line.906"></a>
-<span class="sourceLineNo">907</span>            LOG.debug(msg);<a name="line.907"></a>
-<span class="sourceLineNo">908</span>          }<a name="line.908"></a>
-<span class="sourceLineNo">909</span>          throw new DoNotRetryIOException(msg);<a name="line.909"></a>
-<span class="sourceLineNo">910</span>        }<a name="line.910"></a>
-<span class="sourceLineNo">911</span>      }<a name="line.911"></a>
-<span class="sourceLineNo">912</span>    }<a name="line.912"></a>
-<span class="sourceLineNo">913</span>  }<a name="line.913"></a>
-<span class="sourceLineNo">914</span><a name="line.914"></a>
-<span class="sourceLineNo">915</span>  /**<a name="line.915"></a>
-<span class="sourceLineNo">916</span>   * Execute a list of Put/Delete mutations.<a name="line.916"></a>
-<span class="sourceLineNo">917</span>   *<a name="line.917"></a>
-<span class="sourceLineNo">918</span>   * @param builder<a name="line.918"></a>
-<span class="sourceLineNo">919</span>   * @param region<a name="line.919"></a>
-<span class="sourceLineNo">920</span>   * @param mutations<a name="line.920"></a>
-<span class="sourceLineNo">921</span>   */<a name="line.921"></a>
-<span class="sourceLineNo">922</span>  private void doBatchOp(final RegionActionResult.Builder builder, final HRegion region,<a name="line.922"></a>
-<span class="sourceLineNo">923</span>      final OperationQuota quota, final List&lt;ClientProtos.Action&gt; mutations,<a name="line.923"></a>
-<span class="sourceLineNo">924</span>      final CellScanner cells, ActivePolicyEnforcement spaceQuotaEnforcement, boolean atomic)<a name="line.924"></a>
-<span class="sourceLineNo">925</span>      throws IOException {<a name="line.925"></a>
-<span class="sourceLineNo">926</span>    Mutation[] mArray = new Mutation[mutations.size()];<a name="line.926"></a>
-<span class="sourceLineNo">927</span>    long before = EnvironmentEdgeManager.currentTime();<a name="line.927"></a>
-<span class="sourceLineNo">928</span>    boolean batchContainsPuts = false, batchContainsDelete = false;<a name="line.928"></a>
-<span class="sourceLineNo">929</span>    try {<a name="line.929"></a>
-<span class="sourceLineNo">930</span>      /** HBASE-17924<a name="line.930"></a>
-<span class="sourceLineNo">931</span>       * mutationActionMap is a map to map the relation between mutations and actions<a name="line.931"></a>
-<span class="sourceLineNo">932</span>       * since mutation array may have been reoredered.In order to return the right<a name="line.932"></a>
-<span class="sourceLineNo">933</span>       * result or exception to the corresponding actions, We need to know which action<a name="line.933"></a>
-<span class="sourceLineNo">934</span>       * is the mutation belong to. We can't sort ClientProtos.Action array, since they<a name="line.934"></a>
-<span class="sourceLineNo">935</span>       * are bonded to cellscanners.<a name="line.935"></a>
-<span class="sourceLineNo">936</span>       */<a name="line.936"></a>
-<span class="sourceLineNo">937</span>      Map&lt;Mutation, ClientProtos.Action&gt; mutationActionMap = new HashMap&lt;&gt;();<a name="line.937"></a>
-<span class="sourceLineNo">938</span>      int i = 0;<a name="line.938"></a>
-<span class="sourceLineNo">939</span>      for (ClientProtos.Action action: mutations) {<a name="line.939"></a>
-<span class="sourceLineNo">940</span>        MutationProto m = action.getMutation();<a name="line.940"></a>
-<span class="sourceLineNo">941</span>        Mutation mutation;<a name="line.941"></a>
-<span class="sourceLineNo">942</span>        if (m.getMutateType() == MutationType.PUT) {<a name="line.942"></a>
-<span class="sourceLineNo">943</span>          mutation = ProtobufUtil.toPut(m, cells);<a name="line.943"></a>
-<span class="sourceLineNo">944</span>          batchContainsPuts = true;<a name="line.944"></a>
-<span class="sourceLineNo">945</span>        } else {<a name="line.945"></a>
-<span class="sourceLineNo">946</span>          mutation = ProtobufUtil.toDelete(m, cells);<a name="line.946"></a>
-<span class="sourceLineNo">947</span>          batchContainsDelete = true;<a name="line.947"></a>
-<span class="sourceLineNo">948</span>        }<a name="line.948"></a>
-<span class="sourceLineNo">949</span>        mutationActionMap.put(mutation, action);<a name="line.949"></a>
-<span class="sourceLineNo">950</span>        mArray[i++] = mutation;<a name="line.950"></a>
-<span class="sourceLineNo">951</span>        checkCellSizeLimit(region, mutation);<a name="line.951"></a>
-<span class="sourceLineNo">952</span>        // Check if a space quota disallows this mutation<a name="line.952"></a>
-<span class="sourceLineNo">953</span>        spaceQuotaEnforcement.getPolicyEnforcement(region).check(mutation);<a name="line.953"></a>
-<span class="sourceLineNo">954</span>        quota.addMutation(mutation);<a name="line.954"></a>
-<span class="sourceLineNo">955</span>      }<a name="line.955"></a>
-<span class="sourceLineNo">956</span><a name="line.956"></a>
-<span class="sourceLineNo">957</span>      if (!region.getRegionInfo().isMetaRegion()) {<a name="line.957"></a>
-<span class="sourceLineNo">958</span>        regionServer.cacheFlusher.reclaimMemStoreMemory();<a name="line.958"></a>
-<span class="sourceLineNo">959</span>      }<a name="line.959"></a>
-<span class="sourceLineNo">960</span><a name="line.960"></a>
-<span class="sourceLineNo">961</span>      // HBASE-17924<a name="line.961"></a>
-<span class="sourceLineNo">962</span>      // Sort to improve lock efficiency for non-atomic batch of operations. If atomic (mostly<a name="line.962"></a>
-<span class="sourceLineNo">963</span>      // called from mutateRows()), order is preserved as its expected from the client<a name="line.963"></a>
-<span class="sourceLineNo">964</span>      if (!atomic) {<a name="line.964"></a>
-<span class="sourceLineNo">965</span>        Arrays.sort(mArray);<a name="line.965"></a>
-<span class="sourceLineNo">966</span>      }<a name="line.966"></a>
-<span class="sourceLineNo">967</span><a name="line.967"></a>
-<span class="sourceLineNo">968</span>      OperationStatus[] codes = region.batchMutate(mArray, atomic, HConstants.NO_NONCE,<a name="line.968"></a>
-<span class="sourceLineNo">969</span>        HConstants.NO_NONCE);<a name="line.969"></a>
-<span class="sourceLineNo">970</span>      for (i = 0; i &lt; codes.length; i++) {<a name="line.970"></a>
-<span class="sourceLineNo">971</span>        Mutation currentMutation = mArray[i];<a name="line.971"></a>
-<span class="sourceLineNo">972</span>        ClientProtos.Action currentAction = mutationActionMap.get(currentMutation);<a name="line.972"></a>
-<span class="sourceLineNo">973</span>        int index = currentAction.hasIndex() || !atomic ? currentAction.getIndex() : i;<a name="line.973"></a>
-<span class="sourceLineNo">974</span>        Exception e = null;<a name="line.974"></a>
-<span class="sourceLineNo">975</span>        switch (codes[i].getOperationStatusCode()) {<a name="line.975"></a>
-<span class="sourceLineNo">976</span>          case BAD_FAMILY:<a name="line.976"></a>
-<span class="sourceLineNo">977</span>            e = new NoSuchColumnFamilyException(codes[i].getExceptionMsg());<a name="line.977"></a>
-<span class="sourceLineNo">978</span>            builder.addResultOrException(getResultOrException(e, index));<a name="line.978"></a>
-<span class="sourceLineNo">979</span>            break;<a name="line.979"></a>
-<span class="sourceLineNo">980</span><a name="line.980"></a>
-<span class="sourceLineNo">981</span>          case SANITY_CHECK_FAILURE:<a name="line.981"></a>
-<span class="sourceLineNo">982</span>            e = new FailedSanityCheckException(codes[i].getExceptionMsg());<a name="line.982"></a>
-<span class="sourceLineNo">983</span>            builder.addResultOrException(getResultOrException(e, index));<a name="line.983"></a>
-<span class="sourceLineNo">984</span>            break;<a name="line.984"></a>
-<span class="sourceLineNo">985</span><a name="line.985"></a>
-<span class="sourceLineNo">986</span>          default:<a name="line.986"></a>
-<span class="sourceLineNo">987</span>            e = new DoNotRetryIOException(codes[i].getExceptionMsg());<a name="line.987"></a>
-<span class="sourceLineNo">988</span>            builder.addResultOrException(getResultOrException(e, index));<a name="line.988"></a>
-<span class="sourceLineNo">989</span>            break;<a name="line.989"></a>
-<span class="sourceLineNo">990</span><a name="line.990"></a>
-<span class="sourceLineNo">991</span>          case SUCCESS:<a name="line.991"></a>
-<span class="sourceLineNo">992</span>            builder.addResultOrException(getResultOrException(<a name="line.992"></a>
-<span class="sourceLineNo">993</span>              ClientProtos.Result.getDefaultInstance(), index));<a name="line.993"></a>
-<span class="sourceLineNo">994</span>            break;<a name="line.994"></a>
-<span class="sourceLineNo">995</span>        }<a name="line.995"></a>
-<span class="sourceLineNo">996</span>      }<a name="line.996"></a>
-<span class="sourceLineNo">997</span>    } catch (IOException ie) {<a name="line.997"></a>
-<span class="sourceLineNo">998</span>      if (atomic) {<a name="line.998"></a>
-<span class="sourceLineNo">999</span>        throw ie;<a name="line.999"></a>
-<span class="sourceLineNo">1000</span>      }<a name="line.1000"></a>
-<span class="sourceLineNo">1001</span>      for (Action mutation : mutations) {<a name="line.1001"></a>
-<span class="sourceLineNo">1002</span>        builder.addResultOrException(getResultOrException(ie, mutation.getIndex()));<a name="line.1002"></a>
+<span class="sourceLineNo">663</span>          region.getTableDescriptor().getTableName(),<a name="line.663"></a>
+<span class="sourceLineNo">664</span>        EnvironmentEdgeManager.currentTime() - before);<a name="line.664"></a>
+<span class="sourceLineNo">665</span>    }<a name="line.665"></a>
+<span class="sourceLineNo">666</span>    return r;<a name="line.666"></a>
+<span class="sourceLineNo">667</span>  }<a name="line.667"></a>
+<span class="sourceLineNo">668</span><a name="line.668"></a>
+<span class="sourceLineNo">669</span>  /**<a name="line.669"></a>
+<span class="sourceLineNo">670</span>   * Execute an increment mutation.<a name="line.670"></a>
+<span class="sourceLineNo">671</span>   *<a name="line.671"></a>
+<span class="sourceLineNo">672</span>   * @param region<a name="line.672"></a>
+<span class="sourceLineNo">673</span>   * @param mutation<a name="line.673"></a>
+<span class="sourceLineNo">674</span>   * @return the Result<a name="line.674"></a>
+<span class="sourceLineNo">675</span>   * @throws IOException<a name="line.675"></a>
+<span class="sourceLineNo">676</span>   */<a name="line.676"></a>
+<span class="sourceLineNo">677</span>  private Result increment(final HRegion region, final OperationQuota quota,<a name="line.677"></a>
+<span class="sourceLineNo">678</span>      final MutationProto mutation, final CellScanner cells, long nonceGroup,<a name="line.678"></a>
+<span class="sourceLineNo">679</span>      ActivePolicyEnforcement spaceQuota)<a name="line.679"></a>
+<span class="sourceLineNo">680</span>      throws IOException {<a name="line.680"></a>
+<span class="sourceLineNo">681</span>    long before = EnvironmentEdgeManager.currentTime();<a name="line.681"></a>
+<span class="sourceLineNo">682</span>    Increment increment = ProtobufUtil.toIncrement(mutation, cells);<a name="line.682"></a>
+<span class="sourceLineNo">683</span>    checkCellSizeLimit(region, increment);<a name="line.683"></a>
+<span class="sourceLineNo">684</span>    spaceQuota.getPolicyEnforcement(region).check(increment);<a name="line.684"></a>
+<span class="sourceLineNo">685</span>    quota.addMutation(increment);<a name="line.685"></a>
+<span class="sourceLineNo">686</span>    Result r = null;<a name="line.686"></a>
+<span class="sourceLineNo">687</span>    if (region.getCoprocessorHost() != null) {<a name="line.687"></a>
+<span class="sourceLineNo">688</span>      r = region.getCoprocessorHost().preIncrement(increment);<a name="line.688"></a>
+<span class="sourceLineNo">689</span>    }<a name="line.689"></a>
+<span class="sourceLineNo">690</span>    if (r == null) {<a name="line.690"></a>
+<span class="sourceLineNo">691</span>      boolean canProceed = startNonceOperation(mutation, nonceGroup);<a name="line.691"></a>
+<span class="sourceLineNo">692</span>      boolean success = false;<a name="line.692"></a>
+<span class="sourceLineNo">693</span>      try {<a name="line.693"></a>
+<span class="sourceLineNo">694</span>        long nonce = mutation.hasNonce() ? mutation.getNonce() : HConstants.NO_NONCE;<a name="line.694"></a>
+<span class="sourceLineNo">695</span>        if (canProceed) {<a name="line.695"></a>
+<span class="sourceLineNo">696</span>          r = region.increment(increment, nonceGroup, nonce);<a name="line.696"></a>
+<span class="sourceLineNo">697</span>        } else {<a name="line.697"></a>
+<span class="sourceLineNo">698</span>          // convert duplicate increment to get<a name="line.698"></a>
+<span class="sourceLineNo">699</span>          List&lt;Cell&gt; results = region.get(ProtobufUtil.toGet(mutation, cells), false, nonceGroup,<a name="line.699"></a>
+<span class="sourceLineNo">700</span>              nonce);<a name="line.700"></a>
+<span class="sourceLineNo">701</span>          r = Result.create(results);<a name="line.701"></a>
+<span class="sourceLineNo">702</span>        }<a name="line.702"></a>
+<span class="sourceLineNo">703</span>        success = true;<a name="line.703"></a>
+<span class="sourceLineNo">704</span>      } finally {<a name="line.704"></a>
+<span class="sourceLineNo">705</span>        if (canProceed) {<a name="line.705"></a>
+<span class="sourceLineNo">706</span>          endNonceOperation(mutation, nonceGroup, success);<a name="line.706"></a>
+<span class="sourceLineNo">707</span>        }<a name="line.707"></a>
+<span class="sourceLineNo">708</span>      }<a name="line.708"></a>
+<span class="sourceLineNo">709</span>      if (region.getCoprocessorHost() != null) {<a name="line.709"></a>
+<span class="sourceLineNo">710</span>        r = region.getCoprocessorHost().postIncrement(increment, r);<a name="line.710"></a>
+<span class="sourceLineNo">711</span>      }<a name="line.711"></a>
+<span class="sourceLineNo">712</span>    }<a name="line.712"></a>
+<span class="sourceLineNo">713</span>    if (regionServer.metricsRegionServer != null) {<a name="line.713"></a>
+<span class="sourceLineNo">714</span>      regionServer.metricsRegionServer.updateIncrement(<a name="line.714"></a>
+<span class="sourceLineNo">715</span>          region.getTableDescriptor().getTableName(),<a name="line.715"></a>
+<span class="sourceLineNo">716</span>          EnvironmentEdgeManager.currentTime() - before);<a name="line.716"></a>
+<span class="sourceLineNo">717</span>    }<a name="line.717"></a>
+<span class="sourceLineNo">718</span>    return r;<a name="line.718"></a>
+<span class="sourceLineNo">719</span>  }<a name="line.719"></a>
+<span class="sourceLineNo">720</span><a name="line.720"></a>
+<span class="sourceLineNo">721</span>  /**<a name="line.721"></a>
+<span class="sourceLineNo">722</span>   * Run through the regionMutation &lt;code&gt;rm&lt;/code&gt; and per Mutation, do the work, and then when<a name="line.722"></a>
+<span class="sourceLineNo">723</span>   * done, add an instance of a {@link ResultOrException} that corresponds to each Mutation.<a name="line.723"></a>
+<span class="sourceLineNo">724</span>   * @param cellsToReturn  Could be null. May be allocated in this method.  This is what this<a name="line.724"></a>
+<span class="sourceLineNo">725</span>   * method returns as a 'result'.<a name="line.725"></a>
+<span class="sourceLineNo">726</span>   * @param closeCallBack the callback to be used with multigets<a name="line.726"></a>
+<span class="sourceLineNo">727</span>   * @param context the current RpcCallContext<a name="line.727"></a>
+<span class="sourceLineNo">728</span>   * @return Return the &lt;code&gt;cellScanner&lt;/code&gt; passed<a name="line.728"></a>
+<span class="sourceLineNo">729</span>   */<a name="line.729"></a>
+<span class="sourceLineNo">730</span>  private List&lt;CellScannable&gt; doNonAtomicRegionMutation(final HRegion region,<a name="line.730"></a>
+<span class="sourceLineNo">731</span>      final OperationQuota quota, final RegionAction actions, final CellScanner cellScanner,<a name="line.731"></a>
+<span class="sourceLineNo">732</span>      final RegionActionResult.Builder builder, List&lt;CellScannable&gt; cellsToReturn, long nonceGroup,<a name="line.732"></a>
+<span class="sourceLineNo">733</span>      final RegionScannersCloseCallBack closeCallBack, RpcCallContext context,<a name="line.733"></a>
+<span class="sourceLineNo">734</span>      ActivePolicyEnforcement spaceQuotaEnforcement) {<a name="line.734"></a>
+<span class="sourceLineNo">735</span>    // Gather up CONTIGUOUS Puts and Deletes in this mutations List.  Idea is that rather than do<a name="line.735"></a>
+<span class="sourceLineNo">736</span>    // one at a time, we instead pass them in batch.  Be aware that the corresponding<a name="line.736"></a>
+<span class="sourceLineNo">737</span>    // ResultOrException instance that matches each Put or Delete is then added down in the<a name="line.737"></a>
+<span class="sourceLineNo">738</span>    // doBatchOp call.  We should be staying aligned though the Put and Delete are deferred/batched<a name="line.738"></a>
+<span class="sourceLineNo">739</span>    List&lt;ClientProtos.Action&gt; mutations = null;<a name="line.739"></a>
+<span class="sourceLineNo">740</span>    long maxQuotaResultSize = Math.min(maxScannerResultSize, quota.getReadAvailable());<a name="line.740"></a>
+<span class="sourceLineNo">741</span>    IOException sizeIOE = null;<a name="line.741"></a>
+<span class="sourceLineNo">742</span>    Object lastBlock = null;<a name="line.742"></a>
+<span class="sourceLineNo">743</span>    ClientProtos.ResultOrException.Builder resultOrExceptionBuilder = ResultOrException.newBuilder();<a name="line.743"></a>
+<span class="sourceLineNo">744</span>    boolean hasResultOrException = false;<a name="line.744"></a>
+<span class="sourceLineNo">745</span>    for (ClientProtos.Action action : actions.getActionList()) {<a name="line.745"></a>
+<span class="sourceLineNo">746</span>      hasResultOrException = false;<a name="line.746"></a>
+<span class="sourceLineNo">747</span>      resultOrExceptionBuilder.clear();<a name="line.747"></a>
+<span class="sourceLineNo">748</span>      try {<a name="line.748"></a>
+<span class="sourceLineNo">749</span>        Result r = null;<a name="line.749"></a>
+<span class="sourceLineNo">750</span><a name="line.750"></a>
+<span class="sourceLineNo">751</span>        if (context != null<a name="line.751"></a>
+<span class="sourceLineNo">752</span>            &amp;&amp; context.isRetryImmediatelySupported()<a name="line.752"></a>
+<span class="sourceLineNo">753</span>            &amp;&amp; (context.getResponseCellSize() &gt; maxQuotaResultSize<a name="line.753"></a>
+<span class="sourceLineNo">754</span>              || context.getResponseBlockSize() + context.getResponseExceptionSize()<a name="line.754"></a>
+<span class="sourceLineNo">755</span>              &gt; maxQuotaResultSize)) {<a name="line.755"></a>
+<span class="sourceLineNo">756</span><a name="line.756"></a>
+<span class="sourceLineNo">757</span>          // We're storing the exception since the exception and reason string won't<a name="line.757"></a>
+<span class="sourceLineNo">758</span>          // change after the response size limit is reached.<a name="line.758"></a>
+<span class="sourceLineNo">759</span>          if (sizeIOE == null ) {<a name="line.759"></a>
+<span class="sourceLineNo">760</span>            // We don't need the stack un-winding do don't throw the exception.<a name="line.760"></a>
+<span class="sourceLineNo">761</span>            // Throwing will kill the JVM's JIT.<a name="line.761"></a>
+<span class="sourceLineNo">762</span>            //<a name="line.762"></a>
+<span class="sourceLineNo">763</span>            // Instead just create the exception and then store it.<a name="line.763"></a>
+<span class="sourceLineNo">764</span>            sizeIOE = new MultiActionResultTooLarge("Max size exceeded"<a name="line.764"></a>
+<span class="sourceLineNo">765</span>                + " CellSize: " + context.getResponseCellSize()<a name="line.765"></a>
+<span class="sourceLineNo">766</span>                + " BlockSize: " + context.getResponseBlockSize());<a name="line.766"></a>
+<span class="sourceLineNo">767</span><a name="line.767"></a>
+<span class="sourceLineNo">768</span>            // Only report the exception once since there's only one request that<a name="line.768"></a>
+<span class="sourceLineNo">769</span>            // caused the exception. Otherwise this number will dominate the exceptions count.<a name="line.769"></a>
+<span class="sourceLineNo">770</span>            rpcServer.getMetrics().exception(sizeIOE);<a name="line.770"></a>
+<span class="sourceLineNo">771</span>          }<a name="line.771"></a>
+<span class="sourceLineNo">772</span><a name="line.772"></a>
+<span class="sourceLineNo">773</span>          // Now that there's an exception is known to be created<a name="line.773"></a>
+<span class="sourceLineNo">774</span>          // use it for the response.<a name="line.774"></a>
+<span class="sourceLineNo">775</span>          //<a name="line.775"></a>
+<span class="sourceLineNo">776</span>          // This will create a copy in the builder.<a name="line.776"></a>
+<span class="sourceLineNo">777</span>          hasResultOrException = true;<a name="line.777"></a>
+<span class="sourceLineNo">778</span>          NameBytesPair pair = ResponseConverter.buildException(sizeIOE);<a name="line.778"></a>
+<span class="sourceLineNo">779</span>          resultOrExceptionBuilder.setException(pair);<a name="line.779"></a>
+<span class="sourceLineNo">780</span>          context.incrementResponseExceptionSize(pair.getSerializedSize());<a name="line.780"></a>
+<span class="sourceLineNo">781</span>          resultOrExceptionBuilder.setIndex(action.getIndex());<a name="line.781"></a>
+<span class="sourceLineNo">782</span>          builder.addResultOrException(resultOrExceptionBuilder.build());<a name="line.782"></a>
+<span class="sourceLineNo">783</span>          if (cellScanner != null) {<a name="line.783"></a>
+<span class="sourceLineNo">784</span>            skipCellsForMutation(action, cellScanner);<a name="line.784"></a>
+<span class="sourceLineNo">785</span>          }<a name="line.785"></a>
+<span class="sourceLineNo">786</span>          continue;<a name="line.786"></a>
+<span class="sourceLineNo">787</span>        }<a name="line.787"></a>
+<span class="sourceLineNo">788</span>        if (action.hasGet()) {<a name="line.788"></a>
+<span class="sourceLineNo">789</span>          long before = EnvironmentEdgeManager.currentTime();<a name="line.789"></a>
+<span class="sourceLineNo">790</span>          try {<a name="line.790"></a>
+<span class="sourceLineNo">791</span>            Get get = ProtobufUtil.toGet(action.getGet());<a name="line.791"></a>
+<span class="sourceLineNo">792</span>            if (context != null) {<a name="line.792"></a>
+<span class="sourceLineNo">793</span>              r = get(get, ((HRegion) region), closeCallBack, context);<a name="line.793"></a>
+<span class="sourceLineNo">794</span>            } else {<a name="line.794"></a>
+<span class="sourceLineNo">795</span>              r = region.get(get);<a name="line.795"></a>
+<span class="sourceLineNo">796</span>            }<a name="line.796"></a>
+<span class="sourceLineNo">797</span>          } finally {<a name="line.797"></a>
+<span class="sourceLineNo">798</span>            if (regionServer.metricsRegionServer != null) {<a name="line.798"></a>
+<span class="sourceLineNo">799</span>              regionServer.metricsRegionServer.updateGet(<a name="line.799"></a>
+<span class="sourceLineNo">800</span>                  region.getTableDescriptor().getTableName(),<a name="line.800"></a>
+<span class="sourceLineNo">801</span>                  EnvironmentEdgeManager.currentTime() - before);<a name="line.801"></a>
+<span class="sourceLineNo">802</span>            }<a name="line.802"></a>
+<span class="sourceLineNo">803</span>          }<a name="line.803"></a>
+<span class="sourceLineNo">804</span>        } else if (action.hasServiceCall()) {<a name="line.804"></a>
+<span class="sourceLineNo">805</span>          hasResultOrException = true;<a name="line.805"></a>
+<span class="sourceLineNo">806</span>          try {<a name="line.806"></a>
+<span class="sourceLineNo">807</span>            com.google.protobuf.Message result =<a name="line.807"></a>
+<span class="sourceLineNo">808</span>                execServiceOnRegion(region, action.getServiceCall());<a name="line.808"></a>
+<span class="sourceLineNo">809</span>            ClientProtos.CoprocessorServiceResult.Builder serviceResultBuilder =<a name="line.809"></a>
+<span class="sourceLineNo">810</span>                ClientProtos.CoprocessorServiceResult.newBuilder();<a name="line.810"></a>
+<span class="sourceLineNo">811</span>            resultOrExceptionBuilder.setServiceResult(<a name="line.811"></a>
+<span class="sourceLineNo">812</span>                serviceResultBuilder.setValue(<a name="line.812"></a>
+<span class="sourceLineNo">813</span>                  serviceResultBuilder.getValueBuilder()<a name="line.813"></a>
+<span class="sourceLineNo">814</span>                    .setName(result.getClass().getName())<a name="line.814"></a>
+<span class="sourceLineNo">815</span>                    // TODO: Copy!!!<a name="line.815"></a>
+<span class="sourceLineNo">816</span>                    .setValue(UnsafeByteOperations.unsafeWrap(result.toByteArray()))));<a name="line.816"></a>
+<span class="sourceLineNo">817</span>          } catch (IOException ioe) {<a name="line.817"></a>
+<span class="sourceLineNo">818</span>            rpcServer.getMetrics().exception(ioe);<a name="line.818"></a>
+<span class="sourceLineNo">819</span>            NameBytesPair pair = ResponseConverter.buildException(ioe);<a name="line.819"></a>
+<span class="sourceLineNo">820</span>            resultOrExceptionBuilder.setException(pair);<a name="line.820"></a>
+<span class="sourceLineNo">821</span>            context.incrementResponseExceptionSize(pair.getSerializedSize());<a name="line.821"></a>
+<span class="sourceLineNo">822</span>          }<a name="line.822"></a>
+<span class="sourceLineNo">823</span>        } else if (action.hasMutation()) {<a name="line.823"></a>
+<span class="sourceLineNo">824</span>          MutationType type = action.getMutation().getMutateType();<a name="line.824"></a>
+<span class="sourceLineNo">825</span>          if (type != MutationType.PUT &amp;&amp; type != MutationType.DELETE &amp;&amp; mutations != null &amp;&amp;<a name="line.825"></a>
+<span class="sourceLineNo">826</span>              !mutations.isEmpty()) {<a name="line.826"></a>
+<span class="sourceLineNo">827</span>            // Flush out any Puts or Deletes already collected.<a name="line.827"></a>
+<span class="sourceLineNo">828</span>            doBatchOp(builder, region, quota, mutations, cellScanner, spaceQuotaEnforcement, false);<a name="line.828"></a>
+<span class="sourceLineNo">829</span>            mutations.clear();<a name="line.829"></a>
+<span class="sourceLineNo">830</span>          }<a name="line.830"></a>
+<span class="sourceLineNo">831</span>          switch (type) {<a name="line.831"></a>
+<span class="sourceLineNo">832</span>            case APPEND:<a name="line.832"></a>
+<span class="sourceLineNo">833</span>              r = append(region, quota, action.getMutation(), cellScanner, nonceGroup,<a name="line.833"></a>
+<span class="sourceLineNo">834</span>                  spaceQuotaEnforcement);<a name="line.834"></a>
+<span class="sourceLineNo">835</span>              break;<a name="line.835"></a>
+<span class="sourceLineNo">836</span>            case INCREMENT:<a name="line.836"></a>
+<span class="sourceLineNo">837</span>              r = increment(region, quota, action.getMutation(), cellScanner, nonceGroup,<a name="line.837"></a>
+<span class="sourceLineNo">838</span>                  spaceQuotaEnforcement);<a name="line.838"></a>
+<span class="sourceLineNo">839</span>              break;<a name="line.839"></a>
+<span class="sourceLineNo">840</span>            case PUT:<a name="line.840"></a>
+<span class="sourceLineNo">841</span>            case DELETE:<a name="line.841"></a>
+<span class="sourceLineNo">842</span>              // Collect the individual mutations and apply in a batch<a name="line.842"></a>
+<span class="sourceLineNo">843</span>              if (mutations == null) {<a name="line.843"></a>
+<span class="sourceLineNo">844</span>                mutations = new ArrayList&lt;&gt;(actions.getActionCount());<a name="line.844"></a>
+<span class="sourceLineNo">845</span>              }<a name="line.845"></a>
+<span class="sourceLineNo">846</span>              mutations.add(action);<a name="line.846"></a>
+<span class="sourceLineNo">847</span>              break;<a name="line.847"></a>
+<span class="sourceLineNo">848</span>            default:<a name="line.848"></a>
+<span class="sourceLineNo">849</span>              throw new DoNotRetryIOException("Unsupported mutate type: " + type.name());<a name="line.849"></a>
+<span class="sourceLineNo">850</span>          }<a name="line.850"></a>
+<span class="sourceLineNo">851</span>        } else {<a name="line.851"></a>
+<span class="sourceLineNo">852</span>          throw new HBaseIOException("Unexpected Action type");<a name="line.852"></a>
+<span class="sourceLineNo">853</span>        }<a name="line.853"></a>
+<span class="sourceLineNo">854</span>        if (r != null) {<a name="line.854"></a>
+<span class="sourceLineNo">855</span>          ClientProtos.Result pbResult = null;<a name="line.855"></a>
+<span class="sourceLineNo">856</span>          if (isClientCellBlockSupport(context)) {<a name="line.856"></a>
+<span class="sourceLineNo">857</span>            pbResult = ProtobufUtil.toResultNoData(r);<a name="line.857"></a>
+<span class="sourceLineNo">858</span>            //  Hard to guess the size here.  Just make a rough guess.<a name="line.858"></a>
+<span class="sourceLineNo">859</span>            if (cellsToReturn == null) {<a name="line.859"></a>
+<span class="sourceLineNo">860</span>              cellsToReturn = new ArrayList&lt;&gt;();<a name="line.860"></a>
+<span class="sourceLineNo">861</span>            }<a name="line.861"></a>
+<span class="sourceLineNo">862</span>            cellsToReturn.add(r);<a name="line.862"></a>
+<span class="sourceLineNo">863</span>          } else {<a name="line.863"></a>
+<span class="sourceLineNo">864</span>            pbResult = ProtobufUtil.toResult(r);<a name="line.864"></a>
+<span class="sourceLineNo">865</span>          }<a name="line.865"></a>
+<span class="sourceLineNo">866</span>          lastBlock = addSize(context, r, lastBlock);<a name="line.866"></a>
+<span class="sourceLineNo">867</span>          hasResultOrException = true;<a name="line.867"></a>
+<span class="sourceLineNo">868</span>          resultOrExceptionBuilder.setResult(pbResult);<a name="line.868"></a>
+<span class="sourceLineNo">869</span>        }<a name="line.869"></a>
+<span class="sourceLineNo">870</span>        // Could get to here and there was no result and no exception.  Presumes we added<a name="line.870"></a>
+<span class="sourceLineNo">871</span>        // a Put or Delete to the collecting Mutations List for adding later.  In this<a name="line.871"></a>
+<span class="sourceLineNo">872</span>        // case the corresponding ResultOrException instance for the Put or Delete will be added<a name="line.872"></a>
+<span class="sourceLineNo">873</span>        // down in the doBatchOp method call rather than up here.<a name="line.873"></a>
+<span class="sourceLineNo">874</span>      } catch (IOException ie) {<a name="line.874"></a>
+<span class="sourceLineNo">875</span>        rpcServer.getMetrics().exception(ie);<a name="line.875"></a>
+<span class="sourceLineNo">876</span>        hasResultOrException = true;<a name="line.876"></a>
+<span class="sourceLineNo">877</span>        NameBytesPair pair = ResponseConverter.buildException(ie);<a name="line.877"></a>
+<span class="sourceLineNo">878</span>        resultOrExceptionBuilder.setException(pair);<a name="line.878"></a>
+<span class="sourceLineNo">879</span>        context.incrementResponseExceptionSize(pair.getSerializedSize());<a name="line.879"></a>
+<span class="sourceLineNo">880</span>      }<a name="line.880"></a>
+<span class="sourceLineNo">881</span>      if (hasResultOrException) {<a name="line.881"></a>
+<span class="sourceLineNo">882</span>        // Propagate index.<a name="line.882"></a>
+<span class="sourceLineNo">883</span>        resultOrExceptionBuilder.setIndex(action.getIndex());<a name="line.883"></a>
+<span class="sourceLineNo">884</span>        builder.addResultOrException(resultOrExceptionBuilder.build());<a name="line.884"></a>
+<span class="sourceLineNo">885</span>      }<a name="line.885"></a>
+<span class="sourceLineNo">886</span>    }<a name="line.886"></a>
+<span class="sourceLineNo">887</span>    // Finish up any outstanding mutations<a name="line.887"></a>
+<span class="sourceLineNo">888</span>    if (mutations != null &amp;&amp; !mutations.isEmpty()) {<a name="line.888"></a>
+<span class="sourceLineNo">889</span>      try {<a name="line.889"></a>
+<span class="sourceLineNo">890</span>        doBatchOp(builder, region, quota, mutations, cellScanner, spaceQuotaEnforcement, false);<a name="line.890"></a>
+<span class="sourceLineNo">891</span>      } catch (IOException ioe) {<a name="line.891"></a>
+<span class="sourceLineNo">892</span>        rpcServer.getMetrics().exception(ioe);<a name="line.892"></a>
+<span class="sourceLineNo">893</span>        NameBytesPair pair = ResponseConverter.buildException(ioe);<a name="line.893"></a>
+<span class="sourceLineNo">894</span>        resultOrExceptionBuilder.setException(pair);<a name="line.894"></a>
+<span class="sourceLineNo">895</span>        context.incrementResponseExceptionSize(pair.getSerializedSize());<a name="line.895"></a>
+<span class="sourceLineNo">896</span>        builder.addResultOrException(resultOrExceptionBuilder.build());<a name="line.896"></a>
+<span class="sourceLineNo">897</span>      }<a name="line.897"></a>
+<span class="sourceLineNo">898</span>    }<a name="line.898"></a>
+<span class="sourceLineNo">899</span>    return cellsToReturn;<a name="line.899"></a>
+<span class="sourceLineNo">900</span>  }<a name="line.900"></a>
+<span class="sourceLineNo">901</span><a name="line.901"></a>
+<span class="sourceLineNo">902</span>  private void checkCellSizeLimit(final HRegion r, final Mutation m) throws IOException {<a name="line.902"></a>
+<span class="sourceLineNo">903</span>    if (r.maxCellSize &gt; 0) {<a name="line.903"></a>
+<span class="sourceLineNo">904</span>      CellScanner cells = m.cellScanner();<a name="line.904"></a>
+<span class="sourceLineNo">905</span>      while (cells.advance()) {<a name="line.905"></a>
+<span class="sourceLineNo">906</span>        int size = PrivateCellUtil.estimatedSerializedSizeOf(cells.current());<a name="line.906"></a>
+<span class="sourceLineNo">907</span>        if (size &gt; r.maxCellSize) {<a name="line.907"></a>
+<span class="sourceLineNo">908</span>          String msg = "Cell with size " + size + " exceeds limit of " + r.maxCellSize + " bytes";<a name="line.908"></a>
+<span class="sourceLineNo">909</span>          if (LOG.isDebugEnabled()) {<a name="line.909"></a>
+<span class="sourceLineNo">910</span>            LOG.debug(msg);<a name="line.910"></a>
+<span class="sourceLineNo">911</span>          }<a name="line.911"></a>
+<span class="sourceLineNo">912</span>          throw new DoNotRetryIOException(msg);<a name="line.912"></a>
+<span class="sourceLineNo">913</span>        }<a name="line.913"></a>
+<span class="sourceLineNo">914</span>      }<a name="line.914"></a>
+<span class="sourceLineNo">915</span>    }<a name="line.915"></a>
+<span class="sourceLineNo">916</span>  }<a name="line.916"></a>
+<span class="sourceLineNo">917</span><a name="line.917"></a>
+<span class="sourceLineNo">918</span>  /**<a name="line.918"></a>
+<span class="sourceLineNo">919</span>   * Execute a list of Put/Delete mutations.<a name="line.919"></a>
+<span class="sourceLineNo">920</span>   *<a name="line.920"></a>
+<span class="sourceLineNo">921</span>   * @param builder<a name="line.921"></a>
+<span class="sourceLineNo">922</span>   * @param region<a name="line.922"></a>
+<span class="sourceLineNo">923</span>   * @param mutations<a name="line.923"></a>
+<span class="sourceLineNo">924</span>   */<a name="line.924"></a>
+<span class="sourceLineNo">925</span>  private void doBatchOp(final RegionActionResult.Builder builder, final HRegion region,<a name="line.925"></a>
+<span class="sourceLineNo">926</span>      final OperationQuota quota, final List&lt;ClientProtos.Action&gt; mutations,<a name="line.926"></a>
+<span class="sourceLineNo">927</span>      final CellScanner cells, ActivePolicyEnforcement spaceQuotaEnforcement, boolean atomic)<a name="line.927"></a>
+<span class="sourceLineNo">928</span>      throws IOException {<a name="line.928"></a>
+<span class="sourceLineNo">929</span>    Mutation[] mArray = new Mutation[mutations.size()];<a name="line.929"></a>
+<span class="sourceLineNo">930</span>    long before = EnvironmentEdgeManager.currentTime();<a name="line.930"></a>
+<span class="sourceLineNo">931</span>    boolean batchContainsPuts = false, batchContainsDelete = false;<a name="line.931"></a>
+<span class="sourceLineNo">932</span>    try {<a name="line.932"></a>
+<span class="sourceLineNo">933</span>      /** HBASE-17924<a name="line.933"></a>
+<span class="sourceLineNo">934</span>       * mutationActionMap is a map to map the relation between mutations and actions<a name="line.934"></a>
+<span class="sourceLineNo">935</span>       * since mutation array may have been reoredered.In order to return the right<a name="line.935"></a>
+<span class="sourceLineNo">936</span>       * result or exception to the corresponding actions, We need to know which action<a name="line.936"></a>
+<span class="sourceLineNo">937</span>       * is the mutation belong to. We can't sort ClientProtos.Action array, since they<a name="line.937"></a>
+<span class="sourceLineNo">938</span>       * are bonded to cellscanners.<a name="line.938"></a>
+<span class="sourceLineNo">939</span>       */<a name="line.939"></a>
+<span class="sourceLineNo">940</span>      Map&lt;Mutation, ClientProtos.Action&gt; mutationActionMap = new HashMap&lt;&gt;();<a name="line.940"></a>
+<span class="sourceLineNo">941</span>      int i = 0;<a name="line.941"></a>
+<span class="sourceLineNo">942</span>      for (ClientProtos.Action action: mutations) {<a name="line.942"></a>
+<span class="sourceLineNo">943</span>        MutationProto m = action.getMutation();<a name="line.943"></a>
+<span class="sourceLineNo">944</span>        Mutation mutation;<a name="line.944"></a>
+<span class="sourceLineNo">945</span>        if (m.getMutateType() == MutationType.PUT) {<a name="line.945"></a>
+<span class="sourceLineNo">946</span>          mutation = ProtobufUtil.toPut(m, cells);<a name="line.946"></a>
+<span class="sourceLineNo">947</span>          batchContainsPuts = true;<a name="line.947"></a>
+<span class="sourceLineNo">948</span>        } else {<a name="line.948"></a>
+<span class="sourceLineNo">949</span>          mutation = ProtobufUtil.toDelete(m, cells);<a name="line.949"></a>
+<span class="sourceLineNo">950</span>          batchContainsDelete = true;<a name="line.950"></a>
+<span class="sourceLineNo">951</span>        }<a name="line.951"></a>
+<span class="sourceLineNo">952</span>        mutationActionMap.put(mutation, action);<a name="line.952"></a>
+<span class="sourceLineNo">953</span>        mArray[i++] = mutation;<a name="line.953"></a>
+<span class="sourceLineNo">954</span>        checkCellSizeLimit(region, mutation);<a name="line.954"></a>
+<span class="sourceLineNo">955</span>        // Check if a space quota disallows this mutation<a name="line.955"></a>
+<span class="sourceLineNo">956</span>        spaceQuotaEnforcement.getPolicyEnforcement(region).check(mutation);<a name="line.956"></a>
+<span class="sourceLineNo">957</span>        quota.addMutation(mutation);<a name="line.957"></a>
+<span class="sourceLineNo">958</span>      }<a name="line.958"></a>
+<span class="sourceLineNo">959</span><a name="line.959"></a>
+<span class="sourceLineNo">960</span>      if (!region.getRegionInfo().isMetaRegion()) {<a name="line.960"></a>
+<span class="sourceLineNo">961</span>        regionServer.cacheFlusher.reclaimMemStoreMemory();<a name="line.961"></a>
+<span class="sourceLineNo">962</span>      }<a name="line.962"></a>
+<span class="sourceLineNo">963</span><a name="line.963"></a>
+<span class="sourceLineNo">964</span>      // HBASE-17924<a name="line.964"></a>
+<span class="sourceLineNo">965</span>      // Sort to improve lock efficiency for non-atomic batch of operations. If atomic (mostly<a name="line.965"></a>
+<span class="sourceLineNo">966</span>      // called from mutateRows()), order is preserved as its expected from the client<a name="line.966"></a>
+<span class="sourceLineNo">967</span>      if (!atomic) {<a name="line.967"></a>
+<span class="sourceLineNo">968</span>        Arrays.sort(mArray);<a name="line.968"></a>
+<span class="sourceLineNo">969</span>      }<a name="line.969"></a>
+<span class="sourceLineNo">970</span><a name="line.970"></a>
+<span class="sourceLineNo">971</span>      OperationStatus[] codes = region.batchMutate(mArray, atomic, HConstants.NO_NONCE,<a name="line.971"></a>
+<span class="sourceLineNo">972</span>        HConstants.NO_NONCE);<a name="line.972"></a>
+<span class="sourceLineNo">973</span>      for (i = 0; i &lt; codes.length; i++) {<a name="line.973"></a>
+<span class="sourceLineNo">974</span>        Mutation currentMutation = mArray[i];<a name="line.974"></a>
+<span class="sourceLineNo">975</span>        ClientProtos.Action currentAction = mutationActionMap.get(currentMutation);<a name="line.975"></a>
+<span class="sourceLineNo">976</span>        int index = currentAction.hasIndex() || !atomic ? currentAction.getIndex() : i;<a name="line.976"></a>
+<span class="sourceLineNo">977</span>        Exception e = null;<a name="line.977"></a>
+<span class="sourceLineNo">978</span>        switch (codes[i].getOperationStatusCode()) {<a name="line.978"></a>
+<span class="sourceLineNo">979</span>          case BAD_FAMILY:<a name="line.979"></a>
+<span class="sourceLineNo">980</span>            e = new NoSuchColumnFamilyException(codes[i].getExceptionMsg());<a name="line.980"></a>
+<span class="sourceLineNo">981</span>            builder.addResultOrException(getResultOrException(e, index));<a name="line.981"></a>
+<span class="sourceLineNo">982</span>            break;<a name="line.982"></a>
+<span class="sourceLineNo">983</span><a name="line.983"></a>
+<span class="sourceLineNo">984</span>          case SANITY_CHECK_FAILURE:<a name="line.984"></a>
+<span class="sourceLineNo">985</span>            e = new FailedSanityCheckException(codes[i].getExceptionMsg());<a name="line.985"></a>
+<span class="sourceLineNo">986</span>            builder.addResultOrException(getResultOrException(e, index));<a name="line.986"></a>
+<span class="sourceLineNo">987</span>            break;<a name="line.987"></a>
+<span class="sourceLineNo">988</span><a name="line.988"></a>
+<span class="sourceLineNo">989</span>          default:<a name="line.989"></a>
+<span class="sourceLineNo">990</span>            e = new DoNotRetryIOException(codes[i].getExceptionMsg());<a name="line.990"></a>
+<span class="sourceLineNo">991</span>            builder.addResultOrException(getResultOrException(e, index));<a name="line.991"></a>
+<span class="sourceLineNo">992</span>            break;<a name="line.992"></a>
+<span class="sourceLineNo">993</span><a name="line.993"></a>
+<span class="sourceLineNo">994</span>          case SUCCESS:<a name="line.994"></a>
+<span class="sourceLineNo">995</span>            builder.addResultOrException(getResultOrException(<a name="line.995"></a>
+<span class="sourceLineNo">996</span>              ClientProtos.Result.getDefaultInstance(), index));<a name="line.996"></a>
+<span class="sourceLineNo">997</span>            break;<a name="line.997"></a>
+<span class="sourceLineNo">998</span>        }<a name="line.998"></a>
+<span class="sourceLineNo">999</span>      }<a name="line.999"></a>
+<span class="sourceLineNo">1000</span>    } catch (IOException ie) {<a name="line.1000"></a>
+<span class="sourceLineNo">1001</span>      if (atomic) {<a name="line.1001"></a>
+<span class="sourceLineNo">1002</span>        throw ie;<a name="line.1002"></a>
 <span class="sourceLineNo">1003</span>      }<a name="line.1003"></a>
-<span class="sourceLineNo">1004</span>    }<a name="line.1004"></a>
-<span class="sourceLineNo">1005</span>    if (regionServer.metricsRegionServer != null) {<a name="line.1005"></a>
-<span class="sourceLineNo">1006</span>      long after = EnvironmentEdgeManager.currentTime();<a name="line.1006"></a>
-<span class="sourceLineNo">1007</span>      if (batchContainsPuts) {<a name="line.1007"></a>
-<span class="sourceLineNo">1008</span>        regionServer.metricsRegionServer.updatePutBatch(after - before);<a name="line.1008"></a>
-<span class="sourceLineNo">1009</span>      }<a name="line.1009"></a>
-<span class="sourceLineNo">1010</span>      if (batchContainsDelete) {<a name="line.1010"></a>
-<span class="sourceLineNo">1011</span>        regionServer.metricsRegionServer.updateDeleteBatch(after - before);<a name="line.1011"></a>
-<span class="sourceLineNo">1012</span>      }<a name="line.1012"></a>
-<span class="sourceLineNo">1013</span>    }<a name="line.1013"></a>
-<span class="sourceLineNo">1014</span>  }<a name="line.1014"></a>
-<span class="sourceLineNo">1015</span><a name="line.1015"></a>
-<span class="sourceLineNo">1016</span>  /**<a name="line.1016"></a>
-<span class="sourceLineNo">1017</span>   * Execute a list of Put/Delete mutations. The function returns OperationStatus instead of<a name="line.1017"></a>
-<span class="sourceLineNo">1018</span>   * constructing MultiResponse to save a possible loop if caller doesn't need MultiResponse.<a name="line.1018"></a>
-<span class="sourceLineNo">1019</span>   * @param region<a name="line.1019"></a>
-<span class="sourceLineNo">1020</span>   * @param mutations<a name="line.1020"></a>
-<span class="sourceLineNo">1021</span>   * @param replaySeqId<a name="line.1021"></a>
-<span class="sourceLineNo">1022</span>   * @return an array of OperationStatus which internally contains the OperationStatusCode and the<a name="line.1022"></a>
-<span class="sourceLineNo">1023</span>   *         exceptionMessage if any<a name="line.1023"></a>
-<span class="sourceLineNo">1024</span>   * @throws IOException<a name="line.1024"></a>
-<span class="sourceLineNo">1025</span>   */<a name="line.1025"></a>
-<span class="sourceLineNo">1026</span>  private OperationStatus [] doReplayBatchOp(final HRegion region,<a name="line.1026"></a>
-<span class="sourceLineNo">1027</span>      final List&lt;WALSplitter.MutationReplay&gt; mutations, long replaySeqId) throws IOException {<a name="line.1027"></a>
-<span class="sourceLineNo">1028</span>    long before = EnvironmentEdgeManager.currentTime();<a name="line.1028"></a>
-<span class="sourceLineNo">1029</span>    boolean batchContainsPuts = false, batchContainsDelete = false;<a name="line.1029"></a>
-<span class="sourceLineNo">1030</span>    try {<a name="line.1030"></a>
-<span class="sourceLineNo">1031</span>      for (Iterator&lt;WALSplitter.MutationReplay&gt; it = mutations.iterator(); it.hasNext();) {<a name="line.1031"></a>
-<span class="sourceLineNo">1032</span>        WALSplitter.MutationReplay m = it.next();<a name="line.1032"></a>
-<span class="sourceLineNo">1033</span><a name="line.1033"></a>
-<span class="sourceLineNo">1034</span>        if (m.type == MutationType.PUT) {<a name="line.1034"></a>
-<span class="sourceLineNo">1035</span>          batchContainsPuts = true;<a name="line.1035"></a>
-<span class="sourceLineNo">1036</span>        } else {<a name="line.1036"></a>
-<span class="sourceLineNo">1037</span>          batchContainsDelete = true;<a name="line.1037"></a>
-<span class="sourceLineNo">1038</span>        }<a name="line.1038"></a>
-<span class="sourceLineNo">1039</span><a name="line.1039"></a>
-<span class="sourceLineNo">1040</span>        NavigableMap&lt;byte[], List&lt;Cell&gt;&gt; map = m.mutation.getFamilyCellMap();<a name="line.1040"></a>
-<span class="sourceLineNo">1041</span>        List&lt;Cell&gt; metaCells = map.get(WALEdit.METAFAMILY);<a name="line.1041"></a>
-<span class="sourceLineNo">1042</span>        if (metaCells != null &amp;&amp; !metaCells.isEmpty()) {<a name="line.1042"></a>
-<span class="sourceLineNo">1043</span>          for (Cell metaCell : metaCells) {<a name="line.1043"></a>
-<span class="sourceLineNo">1044</span>            CompactionDescriptor compactionDesc = WALEdit.getCompaction(metaCell);<a name="line.1044"></a>
-<span class="sourceLineNo">1045</span>            boolean isDefaultReplica = RegionReplicaUtil.isDefaultReplica(region.getRegionInfo());<a name="line.1045"></a>
-<span class="sourceLineNo">1046</span>            HRegion hRegion = (HRegion)region;<a name="line.1046"></a>
-<span class="sourceLineNo">1047</span>            if (compactionDesc != null) {<a name="line.1047"></a>
-<span class="sourceLineNo">1048</span>              // replay the compaction. Remove the files from stores only if we are the primary<a name="line.1048"></a>
-<span class="sourceLineNo">1049</span>              // region replica (thus own the files)<a name="line.1049"></a>
-<span class="sourceLineNo">1050</span>              hRegion.replayWALCompactionMarker(compactionDesc, !isDefaultReplica, isDefaultReplica,<a name="line.1050"></a>
-<span class="sourceLineNo">1051</span>                replaySeqId);<a name="line.1051"></a>
-<span class="sourceLineNo">1052</span>              continue;<a name="line.1052"></a>
-<span class="sourceLineNo">1053</span>            }<a name="line.1053"></a>
-<span class="sourceLineNo">1054</span>            FlushDescriptor flushDesc = WALEdit.getFlushDescriptor(metaCell);<a name="line.1054"></a>
-<span class="sourceLineNo">1055</span>            if (flushDesc != null &amp;&amp; !isDefaultReplica) {<a name="line.1055"></a>
-<span class="sourceLineNo">1056</span>              hRegion.replayWALFlushMarker(flushDesc, replaySeqId);<a name="line.1056"></a>
+<span class="sourceLineNo">1004</span>      for (Action mutation : mutations) {<a name="line.1004"></a>
+<span class="sourceLineNo">1005</span>        builder.addResultOrException(getResultOrException(ie, mutation.getIndex()));<a name="line.1005"></a>
+<span class="sourceLineNo">1006</span>      }<a name="line.1006"></a>
+<span class="sourceLineNo">1007</span>    }<a name="line.1007"></a>
+<span class="sourceLineNo">1008</span>    if (regionServer.metricsRegionServer != null) {<a name="line.1008"></a>
+<span class="sourceLineNo">1009</span>      long after = EnvironmentEdgeManager.currentTime();<a name="line.1009"></a>
+<span class="sourceLineNo">1010</span>      if (batchContainsPuts) {<a name="line.1010"></a>
+<span class="sourceLineNo">1011</span>        regionServer.metricsRegionServer.updatePutBatch(<a name="line.1011"></a>
+<span class="sourceLineNo">1012</span>            region.getTableDescriptor().getTableName(), after - before);<a name="line.1012"></a>
+<span class="sourceLineNo">1013</span>      }<a name="line.1013"></a>
+<span class="sourceLineNo">1014</span>      if (batchContainsDelete) {<a name="line.1014"></a>
+<span class="sourceLineNo">1015</span>        regionServer.metricsRegionServer.updateDeleteBatch(<a name="line.1015"></a>
+<span class="sourceLineNo">1016</span>            region.getTableDescriptor().getTableName(), after - before);<a name="line.1016"></a>
+<span class="sourceLineNo">1017</span>      }<a name="line.1017"></a>
+<span class="sourceLineNo">1018</span>    }<a name="line.1018"></a>
+<span class="sourceLineNo">1019</span>  }<a name="line.1019"></a>
+<span class="sourceLineNo">1020</span><a name="line.1020"></a>
+<span class="sourceLineNo">1021</span>  /**<a name="line.1021"></a>
+<span class="sourceLineNo">1022</span>   * Execute a list of Put/Delete mutations. The function returns OperationStatus instead of<a name="line.1022"></a>
+<span class="sourceLineNo">1023</span>   * constructing MultiResponse to save a possible loop if caller doesn't need MultiResponse.<a name="line.1023"></a>
+<span class="sourceLineNo">1024</span>   * @param region<a name="line.1024"></a>
+<span class="sourceLineNo">1025</span>   * @param mutations<a name="line.1025"></a>
+<span class="sourceLineNo">1026</span>   * @param replaySeqId<a name="line.1026"></a>
+<span class="sourceLineNo">1027</span>   * @return an array of OperationStatus which internally contains the OperationStatusCode and the<a name="line.1027"></a>
+<span class="sourceLineNo">1028</span>   *         exceptionMessage if any<a name="line.1028"></a>
+<span class="sourceLineNo">1029</span>   * @throws IOException<a name="line.1029"></a>
+<span class="sourceLineNo">1030</span>   */<a name="line.1030"></a>
+<span class="sourceLineNo">1031</span>  private OperationStatus [] doReplayBatchOp(final HRegion region,<a name="line.1031"></a>
+<span class="sourceLineNo">1032</span>      final List&lt;WALSplitter.MutationReplay&gt; mutations, long replaySeqId) throws IOException {<a name="line.1032"></a>
+<span class="sourceLineNo">1033</span>    long before = EnvironmentEdgeManager.currentTime();<a name="line.1033"></a>
+<span class="sourceLineNo">1034</span>    boolean batchContainsPuts = false, batchContainsDelete = false;<a name="line.1034"></a>
+<span class="sourceLineNo">1035</span>    try {<a name="line.1035"></a>
+<span class="sourceLineNo">1036</span>      for (Iterator&lt;WALSplitter.MutationReplay&gt; it = mutations.iterator(); it.hasNext();) {<a name="line.1036"></a>
+<span class="sourceLineNo">1037</span>        WALSplitter.MutationReplay m = it.next();<a name="line.1037"></a>
+<span class="sourceLineNo">1038</span><a name="line.1038"></a>
+<span class="sourceLineNo">1039</span>        if (m.type == MutationType.PUT) {<a name="line.1039"></a>
+<span class="sourceLineNo">1040</span>          batchContainsPuts = true;<a name="line.1040"></a>
+<span class="sourceLineNo">1041</span>        } else {<a name="line.1041"></a>
+<span class="sourceLineNo">1042</span>          batchContainsDelete = true;<a name="line.1042"></a>
+<span class="sourceLineNo">1043</span>        }<a name="line.1043"></a>
+<span class="sourceLineNo">1044</span><a name="line.1044"></a>
+<span class="sourceLineNo">1045</span>        NavigableMap&lt;byte[], List&lt;Cell&gt;&gt; map = m.mutation.getFamilyCellMap();<a name="line.1045"></a>
+<span class="sourceLineNo">1046</span>        List&lt;Cell&gt; metaCells = map.get(WALEdit.METAFAMILY);<a name="line.1046"></a>
+<span class="sourceLineNo">1047</span>        if (metaCells != null &amp;&amp; !metaCells.isEmpty()) {<a name="line.1047"></a>
+<span class="sourceLineNo">1048</span>          for (Cell metaCell : metaCells) {<a name="line.1048"></a>
+<span class="sourceLineNo">1049</span>            CompactionDescriptor compactionDesc = WALEdit.getCompaction(metaCell);<a name="line.1049"></a>
+<span class="sourceLineNo">1050</span>            boolean isDefaultReplica = RegionReplicaUtil.isDefaultReplica(region.getRegionInfo());<a name="line.1050"></a>
+<span class="sourceLineNo">1051</span>            HRegion hRegion = (HRegion)region;<a name="line.1051"></a>
+<span class="sourceLineNo">1052</span>            if (compactionDesc != null) {<a name="line.1052"></a>
+<span class="sourceLineNo">1053</span>              // replay the compaction. Remove the files from stores only if we are the primary<a name="line.1053"></a>
+<span class="sourceLineNo">1054</span>              // region replica (thus own the files)<a name="line.1054"></a>
+<span class="sourceLineNo">1055</span>              hRegion.replayWALCompactionMarker(compactionDesc, !isDefaultReplica, isDefaultReplica,<a name="line.1055"></a>
+<span class="sourceLineNo">1056</span>                replaySeqId);<a name="line.1056"></a>
 <span class="sourceLineNo">1057</span>              continue;<a name="line.1057"></a>
 <span class="sourceLineNo">1058</span>            }<a name="line.1058"></a>
-<span class="sourceLineNo">1059</span>            RegionEventDescriptor regionEvent = WALEdit.getRegionEventDescriptor(metaCell);<a name="line.1059"></a>
-<span class="sourceLineNo">1060</span>            if (regionEvent != null &amp;&amp; !isDefaultReplica) {<a name="line.1060"></a>
-<span class="sourceLineNo">1061</span>              hRegion.replayWALRegionEventMarker(regionEvent);<a name="line.1061"></a>
+<span class="sourceLineNo">1059</span>            FlushDescriptor flushDesc = WALEdit.getFlushDescriptor(metaCell);<a name="line.1059"></a>
+<span class="sourceLineNo">1060</span>            if (flushDesc != null &amp;&amp; !isDefaultReplica) {<a name="line.1060"></a>
+<span class="sourceLineNo">1061</span>              hRegion.replayWALFlushMarker(flushDesc, replaySeqId);<a name="line.1061"></a>
 <span class="sourceLineNo">1062</span>              continue;<a name="line.1062"></a>
 <span class="sourceLineNo">1063</span>            }<a name="line.1063"></a>
-<span class="sourceLineNo">1064</span>            BulkLoadDescriptor bulkLoadEvent = WALEdit.getBulkLoadDescriptor(metaCell);<a name="line.1064"></a>
-<span class="sourceLineNo">1065</span>            if (bulkLoadEvent != null) {<a name="line.1065"></a>
-<span class="sourceLineNo">1066</span>              hRegion.replayWALBulkLoadEventMarker(bulkLoadEvent);<a name="line.1066"></a>
+<span class="sourceLineNo">1064</span>            RegionEventDescriptor regionEvent = WALEdit.getRegionEventDescriptor(metaCell);<a name="line.1064"></a>
+<span class="sourceLineNo">1065</span>            if (regionEvent != null &amp;&amp; !isDefaultReplica) {<a name="line.1065"></a>
+<span class="sourceLineNo">1066</span>              hRegion.replayWALRegionEventMarker(regionEvent);<a name="line.1066"></a>
 <span class="sourceLineNo">1067</span>              continue;<a name="line.1067"></a>
 <span class="sourceLineNo">1068</span>            }<a name="line.1068"></a>
-<span class="sourceLineNo">1069</span>          }<a name="line.1069"></a>
-<span class="sourceLineNo">1070</span>          it.remove();<a name="line.1070"></a>
-<span class="sourceLineNo">1071</span>        }<a name="line.1071"></a>
-<span class="sourceLineNo">1072</span>      }<a name="line.1072"></a>
-<span class="sourceLineNo">1073</span>      requestCount.increment();<a name="line.1073"></a>
-<span class="sourceLineNo">1074</span>      if (!region.getRegionInfo().isMetaRegion()) {<a name="line.1074"></a>
-<span class="sourceLineNo">1075</span>        regionServer.cacheFlusher.reclaimMemStoreMemory();<a name="line.1075"></a>
-<span class="sourceLineNo">1076</span>      }<a name="line.1076"></a>
-<span class="sourceLineNo">1077</span>      return region.batchReplay(mutations.toArray(<a name="line.1077"></a>
-<span class="sourceLineNo">1078</span>        new WALSplitter.MutationReplay[mutations.size()]), replaySeqId);<a name="line.1078"></a>
-<span class="sourceLineNo">1079</span>    } finally {<a name="line.1079"></a>
-<span class="sourceLineNo">1080</span>      if (regionServer.metricsRegionServer != null) {<a name="line.1080"></a>
-<span class="sourceLineNo">1081</span>        long after = EnvironmentEdgeManager.currentTime();<a name="line.1081"></a>
-<span class="sourceLineNo">1082</span>          if (batchContainsPuts) {<a name="line.1082"></a>
-<span class="sourceLineNo">1083</span>          regionServer.metricsRegionServer.updatePutBatch(after - before);<a name="line.1083"></a>
-<span class="sourceLineNo">1084</span>        }<a name="line.1084"></a>
-<span class="sourceLineNo">1085</span>        if (batchContainsDelete) {<a name="line.1085"></a>
-<span class="sourceLineNo">1086</span>          regionServer.metricsRegionServer.updateDeleteBatch(after - before);<a name="line.1086"></a>
-<span class="sourceLineNo">1087</span>        }<a name="line.1087"></a>
-<span class="sourceLineNo">1088</span>      }<a name="line.1088"></a>
-<span class="sourceLineNo">1089</span>    }<a name="line.1089"></a>
-<span class="sourceLineNo">1090</span>  }<a name="line.1090"></a>
-<span class="sourceLineNo">1091</span><a name="line.1091"></a>
-<span class="sourceLineNo">1092</span>  private void closeAllScanners() {<a name="line.1092"></a>
-<span class="sourceLineNo">1093</span>    // Close any outstanding scanners. Means they'll get an UnknownScanner<a name="line.1093"></a>
-<span class="sourceLineNo">1094</span>    // exception next time they come in.<a name="line.1094"></a>
-<span class="sourceLineNo">1095</span>    for (Map.Entry&lt;String, RegionScannerHolder&gt; e : scanners.entrySet()) {<a name="line.1095"></a>
-<span class="sourceLineNo">1096</span>      try {<a name="line.1096"></a>
-<span class="sourceLineNo">1097</span>        e.getValue().s.close();<a name="line.1097"></a>
-<span class="sourceLineNo">1098</span>      } catch (IOException ioe) {<a name="line.1098"></a>
-<span class="sourceLineNo">1099</span>        LOG.warn("Closing scanner " + e.getKey(), ioe);<a name="line.1099"></a>
-<span class="sourceLineNo">1100</span>      }<a name="line.1100"></a>
-<span class="sourceLineNo">1101</span>    }<a name="line.1101"></a>
-<span class="sourceLineNo">1102</span>  }<a name="line.1102"></a>
-<span class="sourceLineNo">1103</span><a name="line.1103"></a>
-<span class="sourceLineNo">1104</span>  // Exposed for testing<a name="line.1104"></a>
-<span class="sourceLineNo">1105</span>  interface LogDelegate {<a name="line.1105"></a>
-<span class="sourceLineNo">1106</span>    void logBatchWarning

<TRUNCATED>

[15/32] hbase-site git commit: Published site at .

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/29b27596/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html
index 269105b..1198d94 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html
@@ -1524,2213 +1524,2214 @@
 <span class="sourceLineNo">1516</span>      // This call sets up an initialized replication and WAL. Later we start it up.<a name="line.1516"></a>
 <span class="sourceLineNo">1517</span>      setupWALAndReplication();<a name="line.1517"></a>
 <span class="sourceLineNo">1518</span>      // Init in here rather than in constructor after thread name has been set<a name="line.1518"></a>
-<span class="sourceLineNo">1519</span>      this.metricsRegionServer = new MetricsRegionServer(new MetricsRegionServerWrapperImpl(this));<a name="line.1519"></a>
-<span class="sourceLineNo">1520</span>      this.metricsTable = new MetricsTable(new MetricsTableWrapperAggregateImpl(this));<a name="line.1520"></a>
-<span class="sourceLineNo">1521</span>      // Now that we have a metrics source, start the pause monitor<a name="line.1521"></a>
-<span class="sourceLineNo">1522</span>      this.pauseMonitor = new JvmPauseMonitor(conf, getMetrics().getMetricsSource());<a name="line.1522"></a>
-<span class="sourceLineNo">1523</span>      pauseMonitor.start();<a name="line.1523"></a>
-<span class="sourceLineNo">1524</span><a name="line.1524"></a>
-<span class="sourceLineNo">1525</span>      // There is a rare case where we do NOT want services to start. Check config.<a name="line.1525"></a>
-<span class="sourceLineNo">1526</span>      if (getConfiguration().getBoolean("hbase.regionserver.workers", true)) {<a name="line.1526"></a>
-<span class="sourceLineNo">1527</span>        startServices();<a name="line.1527"></a>
-<span class="sourceLineNo">1528</span>      }<a name="line.1528"></a>
-<span class="sourceLineNo">1529</span>      // In here we start up the replication Service. Above we initialized it. TODO. Reconcile.<a name="line.1529"></a>
-<span class="sourceLineNo">1530</span>      // or make sense of it.<a name="line.1530"></a>
-<span class="sourceLineNo">1531</span>      startReplicationService();<a name="line.1531"></a>
-<span class="sourceLineNo">1532</span><a name="line.1532"></a>
+<span class="sourceLineNo">1519</span>      this.metricsRegionServer = new MetricsRegionServer(<a name="line.1519"></a>
+<span class="sourceLineNo">1520</span>          new MetricsRegionServerWrapperImpl(this), conf);<a name="line.1520"></a>
+<span class="sourceLineNo">1521</span>      this.metricsTable = new MetricsTable(new MetricsTableWrapperAggregateImpl(this));<a name="line.1521"></a>
+<span class="sourceLineNo">1522</span>      // Now that we have a metrics source, start the pause monitor<a name="line.1522"></a>
+<span class="sourceLineNo">1523</span>      this.pauseMonitor = new JvmPauseMonitor(conf, getMetrics().getMetricsSource());<a name="line.1523"></a>
+<span class="sourceLineNo">1524</span>      pauseMonitor.start();<a name="line.1524"></a>
+<span class="sourceLineNo">1525</span><a name="line.1525"></a>
+<span class="sourceLineNo">1526</span>      // There is a rare case where we do NOT want services to start. Check config.<a name="line.1526"></a>
+<span class="sourceLineNo">1527</span>      if (getConfiguration().getBoolean("hbase.regionserver.workers", true)) {<a name="line.1527"></a>
+<span class="sourceLineNo">1528</span>        startServices();<a name="line.1528"></a>
+<span class="sourceLineNo">1529</span>      }<a name="line.1529"></a>
+<span class="sourceLineNo">1530</span>      // In here we start up the replication Service. Above we initialized it. TODO. Reconcile.<a name="line.1530"></a>
+<span class="sourceLineNo">1531</span>      // or make sense of it.<a name="line.1531"></a>
+<span class="sourceLineNo">1532</span>      startReplicationService();<a name="line.1532"></a>
 <span class="sourceLineNo">1533</span><a name="line.1533"></a>
-<span class="sourceLineNo">1534</span>      // Set up ZK<a name="line.1534"></a>
-<span class="sourceLineNo">1535</span>      LOG.info("Serving as " + this.serverName + ", RpcServer on " + rpcServices.isa +<a name="line.1535"></a>
-<span class="sourceLineNo">1536</span>          ", sessionid=0x" +<a name="line.1536"></a>
-<span class="sourceLineNo">1537</span>          Long.toHexString(this.zooKeeper.getRecoverableZooKeeper().getSessionId()));<a name="line.1537"></a>
-<span class="sourceLineNo">1538</span><a name="line.1538"></a>
-<span class="sourceLineNo">1539</span>      // Wake up anyone waiting for this server to online<a name="line.1539"></a>
-<span class="sourceLineNo">1540</span>      synchronized (online) {<a name="line.1540"></a>
-<span class="sourceLineNo">1541</span>        online.set(true);<a name="line.1541"></a>
-<span class="sourceLineNo">1542</span>        online.notifyAll();<a name="line.1542"></a>
-<span class="sourceLineNo">1543</span>      }<a name="line.1543"></a>
-<span class="sourceLineNo">1544</span>    } catch (Throwable e) {<a name="line.1544"></a>
-<span class="sourceLineNo">1545</span>      stop("Failed initialization");<a name="line.1545"></a>
-<span class="sourceLineNo">1546</span>      throw convertThrowableToIOE(cleanup(e, "Failed init"),<a name="line.1546"></a>
-<span class="sourceLineNo">1547</span>          "Region server startup failed");<a name="line.1547"></a>
-<span class="sourceLineNo">1548</span>    } finally {<a name="line.1548"></a>
-<span class="sourceLineNo">1549</span>      sleeper.skipSleepCycle();<a name="line.1549"></a>
-<span class="sourceLineNo">1550</span>    }<a name="line.1550"></a>
-<span class="sourceLineNo">1551</span>  }<a name="line.1551"></a>
-<span class="sourceLineNo">1552</span><a name="line.1552"></a>
-<span class="sourceLineNo">1553</span>  protected void initializeMemStoreChunkCreator() {<a name="line.1553"></a>
-<span class="sourceLineNo">1554</span>    if (MemStoreLAB.isEnabled(conf)) {<a name="line.1554"></a>
-<span class="sourceLineNo">1555</span>      // MSLAB is enabled. So initialize MemStoreChunkPool<a name="line.1555"></a>
-<span class="sourceLineNo">1556</span>      // By this time, the MemstoreFlusher is already initialized. We can get the global limits from<a name="line.1556"></a>
-<span class="sourceLineNo">1557</span>      // it.<a name="line.1557"></a>
-<span class="sourceLineNo">1558</span>      Pair&lt;Long, MemoryType&gt; pair = MemorySizeUtil.getGlobalMemStoreSize(conf);<a name="line.1558"></a>
-<span class="sourceLineNo">1559</span>      long globalMemStoreSize = pair.getFirst();<a name="line.1559"></a>
-<span class="sourceLineNo">1560</span>      boolean offheap = this.regionServerAccounting.isOffheap();<a name="line.1560"></a>
-<span class="sourceLineNo">1561</span>      // When off heap memstore in use, take full area for chunk pool.<a name="line.1561"></a>
-<span class="sourceLineNo">1562</span>      float poolSizePercentage = offheap? 1.0F:<a name="line.1562"></a>
-<span class="sourceLineNo">1563</span>          conf.getFloat(MemStoreLAB.CHUNK_POOL_MAXSIZE_KEY, MemStoreLAB.POOL_MAX_SIZE_DEFAULT);<a name="line.1563"></a>
-<span class="sourceLineNo">1564</span>      float initialCountPercentage = conf.getFloat(MemStoreLAB.CHUNK_POOL_INITIALSIZE_KEY,<a name="line.1564"></a>
-<span class="sourceLineNo">1565</span>          MemStoreLAB.POOL_INITIAL_SIZE_DEFAULT);<a name="line.1565"></a>
-<span class="sourceLineNo">1566</span>      int chunkSize = conf.getInt(MemStoreLAB.CHUNK_SIZE_KEY, MemStoreLAB.CHUNK_SIZE_DEFAULT);<a name="line.1566"></a>
-<span class="sourceLineNo">1567</span>      // init the chunkCreator<a name="line.1567"></a>
-<span class="sourceLineNo">1568</span>      ChunkCreator chunkCreator =<a name="line.1568"></a>
-<span class="sourceLineNo">1569</span>          ChunkCreator.initialize(chunkSize, offheap, globalMemStoreSize, poolSizePercentage,<a name="line.1569"></a>
-<span class="sourceLineNo">1570</span>      initialCountPercentage, this.hMemManager);<a name="line.1570"></a>
-<span class="sourceLineNo">1571</span>    }<a name="line.1571"></a>
-<span class="sourceLineNo">1572</span>  }<a name="line.1572"></a>
-<span class="sourceLineNo">1573</span><a name="line.1573"></a>
-<span class="sourceLineNo">1574</span>  private void startHeapMemoryManager() {<a name="line.1574"></a>
-<span class="sourceLineNo">1575</span>    this.hMemManager = HeapMemoryManager.create(this.conf, this.cacheFlusher, this,<a name="line.1575"></a>
-<span class="sourceLineNo">1576</span>        this.regionServerAccounting);<a name="line.1576"></a>
-<span class="sourceLineNo">1577</span>    if (this.hMemManager != null) {<a name="line.1577"></a>
-<span class="sourceLineNo">1578</span>      this.hMemManager.start(getChoreService());<a name="line.1578"></a>
-<span class="sourceLineNo">1579</span>    }<a name="line.1579"></a>
-<span class="sourceLineNo">1580</span>  }<a name="line.1580"></a>
-<span class="sourceLineNo">1581</span><a name="line.1581"></a>
-<span class="sourceLineNo">1582</span>  private void createMyEphemeralNode() throws KeeperException, IOException {<a name="line.1582"></a>
-<span class="sourceLineNo">1583</span>    RegionServerInfo.Builder rsInfo = RegionServerInfo.newBuilder();<a name="line.1583"></a>
-<span class="sourceLineNo">1584</span>    rsInfo.setInfoPort(infoServer != null ? infoServer.getPort() : -1);<a name="line.1584"></a>
-<span class="sourceLineNo">1585</span>    rsInfo.setVersionInfo(ProtobufUtil.getVersionInfo());<a name="line.1585"></a>
-<span class="sourceLineNo">1586</span>    byte[] data = ProtobufUtil.prependPBMagic(rsInfo.build().toByteArray());<a name="line.1586"></a>
-<span class="sourceLineNo">1587</span>    ZKUtil.createEphemeralNodeAndWatch(this.zooKeeper, getMyEphemeralNodePath(), data);<a name="line.1587"></a>
-<span class="sourceLineNo">1588</span>  }<a name="line.1588"></a>
-<span class="sourceLineNo">1589</span><a name="line.1589"></a>
-<span class="sourceLineNo">1590</span>  private void deleteMyEphemeralNode() throws KeeperException {<a name="line.1590"></a>
-<span class="sourceLineNo">1591</span>    ZKUtil.deleteNode(this.zooKeeper, getMyEphemeralNodePath());<a name="line.1591"></a>
-<span class="sourceLineNo">1592</span>  }<a name="line.1592"></a>
-<span class="sourceLineNo">1593</span><a name="line.1593"></a>
-<span class="sourceLineNo">1594</span>  @Override<a name="line.1594"></a>
-<span class="sourceLineNo">1595</span>  public RegionServerAccounting getRegionServerAccounting() {<a name="line.1595"></a>
-<span class="sourceLineNo">1596</span>    return regionServerAccounting;<a name="line.1596"></a>
-<span class="sourceLineNo">1597</span>  }<a name="line.1597"></a>
-<span class="sourceLineNo">1598</span><a name="line.1598"></a>
-<span class="sourceLineNo">1599</span>  /*<a name="line.1599"></a>
-<span class="sourceLineNo">1600</span>   * @param r Region to get RegionLoad for.<a name="line.1600"></a>
-<span class="sourceLineNo">1601</span>   * @param regionLoadBldr the RegionLoad.Builder, can be null<a name="line.1601"></a>
-<span class="sourceLineNo">1602</span>   * @param regionSpecifier the RegionSpecifier.Builder, can be null<a name="line.1602"></a>
-<span class="sourceLineNo">1603</span>   * @return RegionLoad instance.<a name="line.1603"></a>
-<span class="sourceLineNo">1604</span>   *<a name="line.1604"></a>
-<span class="sourceLineNo">1605</span>   * @throws IOException<a name="line.1605"></a>
-<span class="sourceLineNo">1606</span>   */<a name="line.1606"></a>
-<span class="sourceLineNo">1607</span>  RegionLoad createRegionLoad(final HRegion r, RegionLoad.Builder regionLoadBldr,<a name="line.1607"></a>
-<span class="sourceLineNo">1608</span>      RegionSpecifier.Builder regionSpecifier) throws IOException {<a name="line.1608"></a>
-<span class="sourceLineNo">1609</span>    byte[] name = r.getRegionInfo().getRegionName();<a name="line.1609"></a>
-<span class="sourceLineNo">1610</span>    int stores = 0;<a name="line.1610"></a>
-<span class="sourceLineNo">1611</span>    int storefiles = 0;<a name="line.1611"></a>
-<span class="sourceLineNo">1612</span>    int storeUncompressedSizeMB = 0;<a name="line.1612"></a>
-<span class="sourceLineNo">1613</span>    int storefileSizeMB = 0;<a name="line.1613"></a>
-<span class="sourceLineNo">1614</span>    int memstoreSizeMB = (int) (r.getMemStoreSize() / 1024 / 1024);<a name="line.1614"></a>
-<span class="sourceLineNo">1615</span>    long storefileIndexSizeKB = 0;<a name="line.1615"></a>
-<span class="sourceLineNo">1616</span>    int rootIndexSizeKB = 0;<a name="line.1616"></a>
-<span class="sourceLineNo">1617</span>    int totalStaticIndexSizeKB = 0;<a name="line.1617"></a>
-<span class="sourceLineNo">1618</span>    int totalStaticBloomSizeKB = 0;<a name="line.1618"></a>
-<span class="sourceLineNo">1619</span>    long totalCompactingKVs = 0;<a name="line.1619"></a>
-<span class="sourceLineNo">1620</span>    long currentCompactedKVs = 0;<a name="line.1620"></a>
-<span class="sourceLineNo">1621</span>    List&lt;HStore&gt; storeList = r.getStores();<a name="line.1621"></a>
-<span class="sourceLineNo">1622</span>    stores += storeList.size();<a name="line.1622"></a>
-<span class="sourceLineNo">1623</span>    for (HStore store : storeList) {<a name="line.1623"></a>
-<span class="sourceLineNo">1624</span>      storefiles += store.getStorefilesCount();<a name="line.1624"></a>
-<span class="sourceLineNo">1625</span>      storeUncompressedSizeMB += (int) (store.getStoreSizeUncompressed() / 1024 / 1024);<a name="line.1625"></a>
-<span class="sourceLineNo">1626</span>      storefileSizeMB += (int) (store.getStorefilesSize() / 1024 / 1024);<a name="line.1626"></a>
-<span class="sourceLineNo">1627</span>      storefileIndexSizeKB += store.getStorefilesIndexSize() / 1024;<a name="line.1627"></a>
-<span class="sourceLineNo">1628</span>      CompactionProgress progress = store.getCompactionProgress();<a name="line.1628"></a>
-<span class="sourceLineNo">1629</span>      if (progress != null) {<a name="line.1629"></a>
-<span class="sourceLineNo">1630</span>        totalCompactingKVs += progress.totalCompactingKVs;<a name="line.1630"></a>
-<span class="sourceLineNo">1631</span>        currentCompactedKVs += progress.currentCompactedKVs;<a name="line.1631"></a>
-<span class="sourceLineNo">1632</span>      }<a name="line.1632"></a>
-<span class="sourceLineNo">1633</span>      rootIndexSizeKB += (int) (store.getStorefilesIndexSize() / 1024);<a name="line.1633"></a>
-<span class="sourceLineNo">1634</span>      totalStaticIndexSizeKB += (int) (store.getTotalStaticIndexSize() / 1024);<a name="line.1634"></a>
-<span class="sourceLineNo">1635</span>      totalStaticBloomSizeKB += (int) (store.getTotalStaticBloomSize() / 1024);<a name="line.1635"></a>
-<span class="sourceLineNo">1636</span>    }<a name="line.1636"></a>
-<span class="sourceLineNo">1637</span><a name="line.1637"></a>
-<span class="sourceLineNo">1638</span>    float dataLocality =<a name="line.1638"></a>
-<span class="sourceLineNo">1639</span>        r.getHDFSBlocksDistribution().getBlockLocalityIndex(serverName.getHostname());<a name="line.1639"></a>
-<span class="sourceLineNo">1640</span>    if (regionLoadBldr == null) {<a name="line.1640"></a>
-<span class="sourceLineNo">1641</span>      regionLoadBldr = RegionLoad.newBuilder();<a name="line.1641"></a>
-<span class="sourceLineNo">1642</span>    }<a name="line.1642"></a>
-<span class="sourceLineNo">1643</span>    if (regionSpecifier == null) {<a name="line.1643"></a>
-<span class="sourceLineNo">1644</span>      regionSpecifier = RegionSpecifier.newBuilder();<a name="line.1644"></a>
-<span class="sourceLineNo">1645</span>    }<a name="line.1645"></a>
-<span class="sourceLineNo">1646</span>    regionSpecifier.setType(RegionSpecifierType.REGION_NAME);<a name="line.1646"></a>
-<span class="sourceLineNo">1647</span>    regionSpecifier.setValue(UnsafeByteOperations.unsafeWrap(name));<a name="line.1647"></a>
-<span class="sourceLineNo">1648</span>    regionLoadBldr.setRegionSpecifier(regionSpecifier.build())<a name="line.1648"></a>
-<span class="sourceLineNo">1649</span>      .setStores(stores)<a name="line.1649"></a>
-<span class="sourceLineNo">1650</span>      .setStorefiles(storefiles)<a name="line.1650"></a>
-<span class="sourceLineNo">1651</span>      .setStoreUncompressedSizeMB(storeUncompressedSizeMB)<a name="line.1651"></a>
-<span class="sourceLineNo">1652</span>      .setStorefileSizeMB(storefileSizeMB)<a name="line.1652"></a>
-<span class="sourceLineNo">1653</span>      .setMemStoreSizeMB(memstoreSizeMB)<a name="line.1653"></a>
-<span class="sourceLineNo">1654</span>      .setStorefileIndexSizeKB(storefileIndexSizeKB)<a name="line.1654"></a>
-<span class="sourceLineNo">1655</span>      .setRootIndexSizeKB(rootIndexSizeKB)<a name="line.1655"></a>
-<span class="sourceLineNo">1656</span>      .setTotalStaticIndexSizeKB(totalStaticIndexSizeKB)<a name="line.1656"></a>
-<span class="sourceLineNo">1657</span>      .setTotalStaticBloomSizeKB(totalStaticBloomSizeKB)<a name="line.1657"></a>
-<span class="sourceLineNo">1658</span>      .setReadRequestsCount(r.getReadRequestsCount())<a name="line.1658"></a>
-<span class="sourceLineNo">1659</span>      .setFilteredReadRequestsCount(r.getFilteredReadRequestsCount())<a name="line.1659"></a>
-<span class="sourceLineNo">1660</span>      .setWriteRequestsCount(r.getWriteRequestsCount())<a name="line.1660"></a>
-<span class="sourceLineNo">1661</span>      .setTotalCompactingKVs(totalCompactingKVs)<a name="line.1661"></a>
-<span class="sourceLineNo">1662</span>      .setCurrentCompactedKVs(currentCompactedKVs)<a name="line.1662"></a>
-<span class="sourceLineNo">1663</span>      .setDataLocality(dataLocality)<a name="line.1663"></a>
-<span class="sourceLineNo">1664</span>      .setLastMajorCompactionTs(r.getOldestHfileTs(true));<a name="line.1664"></a>
-<span class="sourceLineNo">1665</span>    ((HRegion)r).setCompleteSequenceId(regionLoadBldr);<a name="line.1665"></a>
-<span class="sourceLineNo">1666</span><a name="line.1666"></a>
-<span class="sourceLineNo">1667</span>    return regionLoadBldr.build();<a name="line.1667"></a>
-<span class="sourceLineNo">1668</span>  }<a name="line.1668"></a>
-<span class="sourceLineNo">1669</span><a name="line.1669"></a>
-<span class="sourceLineNo">1670</span>  /**<a name="line.1670"></a>
-<span class="sourceLineNo">1671</span>   * @param encodedRegionName<a name="line.1671"></a>
-<span class="sourceLineNo">1672</span>   * @return An instance of RegionLoad.<a name="line.1672"></a>
-<span class="sourceLineNo">1673</span>   */<a name="line.1673"></a>
-<span class="sourceLineNo">1674</span>  public RegionLoad createRegionLoad(final String encodedRegionName) throws IOException {<a name="line.1674"></a>
-<span class="sourceLineNo">1675</span>    HRegion r = onlineRegions.get(encodedRegionName);<a name="line.1675"></a>
-<span class="sourceLineNo">1676</span>    return r != null ? createRegionLoad(r, null, null) : null;<a name="line.1676"></a>
-<span class="sourceLineNo">1677</span>  }<a name="line.1677"></a>
-<span class="sourceLineNo">1678</span><a name="line.1678"></a>
-<span class="sourceLineNo">1679</span>  /*<a name="line.1679"></a>
-<span class="sourceLineNo">1680</span>   * Inner class that runs on a long period checking if regions need compaction.<a name="line.1680"></a>
-<span class="sourceLineNo">1681</span>   */<a name="line.1681"></a>
-<span class="sourceLineNo">1682</span>  private static class CompactionChecker extends ScheduledChore {<a name="line.1682"></a>
-<span class="sourceLineNo">1683</span>    private final HRegionServer instance;<a name="line.1683"></a>
-<span class="sourceLineNo">1684</span>    private final int majorCompactPriority;<a name="line.1684"></a>
-<span class="sourceLineNo">1685</span>    private final static int DEFAULT_PRIORITY = Integer.MAX_VALUE;<a name="line.1685"></a>
-<span class="sourceLineNo">1686</span>    //Iteration is 1-based rather than 0-based so we don't check for compaction<a name="line.1686"></a>
-<span class="sourceLineNo">1687</span>    // immediately upon region server startup<a name="line.1687"></a>
-<span class="sourceLineNo">1688</span>    private long iteration = 1;<a name="line.1688"></a>
-<span class="sourceLineNo">1689</span><a name="line.1689"></a>
-<span class="sourceLineNo">1690</span>    CompactionChecker(final HRegionServer h, final int sleepTime, final Stoppable stopper) {<a name="line.1690"></a>
-<span class="sourceLineNo">1691</span>      super("CompactionChecker", stopper, sleepTime);<a name="line.1691"></a>
-<span class="sourceLineNo">1692</span>      this.instance = h;<a name="line.1692"></a>
-<span class="sourceLineNo">1693</span>      LOG.info(this.getName() + " runs every " + StringUtils.formatTime(sleepTime));<a name="line.1693"></a>
-<span class="sourceLineNo">1694</span><a name="line.1694"></a>
-<span class="sourceLineNo">1695</span>      /* MajorCompactPriority is configurable.<a name="line.1695"></a>
-<span class="sourceLineNo">1696</span>       * If not set, the compaction will use default priority.<a name="line.1696"></a>
-<span class="sourceLineNo">1697</span>       */<a name="line.1697"></a>
-<span class="sourceLineNo">1698</span>      this.majorCompactPriority = this.instance.conf.<a name="line.1698"></a>
-<span class="sourceLineNo">1699</span>          getInt("hbase.regionserver.compactionChecker.majorCompactPriority",<a name="line.1699"></a>
-<span class="sourceLineNo">1700</span>              DEFAULT_PRIORITY);<a name="line.1700"></a>
-<span class="sourceLineNo">1701</span>    }<a name="line.1701"></a>
-<span class="sourceLineNo">1702</span><a name="line.1702"></a>
-<span class="sourceLineNo">1703</span>    @Override<a name="line.1703"></a>
-<span class="sourceLineNo">1704</span>    protected void chore() {<a name="line.1704"></a>
-<span class="sourceLineNo">1705</span>      for (Region r : this.instance.onlineRegions.values()) {<a name="line.1705"></a>
-<span class="sourceLineNo">1706</span>        if (r == null) {<a name="line.1706"></a>
-<span class="sourceLineNo">1707</span>          continue;<a name="line.1707"></a>
-<span class="sourceLineNo">1708</span>        }<a name="line.1708"></a>
-<span class="sourceLineNo">1709</span>        HRegion hr = (HRegion) r;<a name="line.1709"></a>
-<span class="sourceLineNo">1710</span>        for (HStore s : hr.stores.values()) {<a name="line.1710"></a>
-<span class="sourceLineNo">1711</span>          try {<a name="line.1711"></a>
-<span class="sourceLineNo">1712</span>            long multiplier = s.getCompactionCheckMultiplier();<a name="line.1712"></a>
-<span class="sourceLineNo">1713</span>            assert multiplier &gt; 0;<a name="line.1713"></a>
-<span class="sourceLineNo">1714</span>            if (iteration % multiplier != 0) {<a name="line.1714"></a>
-<span class="sourceLineNo">1715</span>              continue;<a name="line.1715"></a>
-<span class="sourceLineNo">1716</span>            }<a name="line.1716"></a>
-<span class="sourceLineNo">1717</span>            if (s.needsCompaction()) {<a name="line.1717"></a>
-<span class="sourceLineNo">1718</span>              // Queue a compaction. Will recognize if major is needed.<a name="line.1718"></a>
-<span class="sourceLineNo">1719</span>              this.instance.compactSplitThread.requestSystemCompaction(hr, s,<a name="line.1719"></a>
-<span class="sourceLineNo">1720</span>                getName() + " requests compaction");<a name="line.1720"></a>
-<span class="sourceLineNo">1721</span>            } else if (s.shouldPerformMajorCompaction()) {<a name="line.1721"></a>
-<span class="sourceLineNo">1722</span>              s.triggerMajorCompaction();<a name="line.1722"></a>
-<span class="sourceLineNo">1723</span>              if (majorCompactPriority == DEFAULT_PRIORITY ||<a name="line.1723"></a>
-<span class="sourceLineNo">1724</span>                  majorCompactPriority &gt; hr.getCompactPriority()) {<a name="line.1724"></a>
-<span class="sourceLineNo">1725</span>                this.instance.compactSplitThread.requestCompaction(hr, s,<a name="line.1725"></a>
-<span class="sourceLineNo">1726</span>                    getName() + " requests major compaction; use default priority",<a name="line.1726"></a>
-<span class="sourceLineNo">1727</span>                    Store.NO_PRIORITY,<a name="line.1727"></a>
-<span class="sourceLineNo">1728</span>                CompactionLifeCycleTracker.DUMMY, null);<a name="line.1728"></a>
-<span class="sourceLineNo">1729</span>              } else {<a name="line.1729"></a>
-<span class="sourceLineNo">1730</span>                this.instance.compactSplitThread.requestCompaction(hr, s,<a name="line.1730"></a>
-<span class="sourceLineNo">1731</span>                    getName() + " requests major compaction; use configured priority",<a name="line.1731"></a>
-<span class="sourceLineNo">1732</span>                    this.majorCompactPriority, CompactionLifeCycleTracker.DUMMY, null);<a name="line.1732"></a>
-<span class="sourceLineNo">1733</span>              }<a name="line.1733"></a>
-<span class="sourceLineNo">1734</span>            }<a name="line.1734"></a>
-<span class="sourceLineNo">1735</span>          } catch (IOException e) {<a name="line.1735"></a>
-<span class="sourceLineNo">1736</span>            LOG.warn("Failed major compaction check on " + r, e);<a name="line.1736"></a>
-<span class="sourceLineNo">1737</span>          }<a name="line.1737"></a>
-<span class="sourceLineNo">1738</span>        }<a name="line.1738"></a>
-<span class="sourceLineNo">1739</span>      }<a name="line.1739"></a>
-<span class="sourceLineNo">1740</span>      iteration = (iteration == Long.MAX_VALUE) ? 0 : (iteration + 1);<a name="line.1740"></a>
-<span class="sourceLineNo">1741</span>    }<a name="line.1741"></a>
-<span class="sourceLineNo">1742</span>  }<a name="line.1742"></a>
-<span class="sourceLineNo">1743</span><a name="line.1743"></a>
-<span class="sourceLineNo">1744</span>  static class PeriodicMemStoreFlusher extends ScheduledChore {<a name="line.1744"></a>
-<span class="sourceLineNo">1745</span>    final HRegionServer server;<a name="line.1745"></a>
-<span class="sourceLineNo">1746</span>    final static int RANGE_OF_DELAY = 5 * 60 * 1000; // 5 min in milliseconds<a name="line.1746"></a>
-<span class="sourceLineNo">1747</span>    final static int MIN_DELAY_TIME = 0; // millisec<a name="line.1747"></a>
-<span class="sourceLineNo">1748</span>    public PeriodicMemStoreFlusher(int cacheFlushInterval, final HRegionServer server) {<a name="line.1748"></a>
-<span class="sourceLineNo">1749</span>      super("MemstoreFlusherChore", server, cacheFlushInterval);<a name="line.1749"></a>
-<span class="sourceLineNo">1750</span>      this.server = server;<a name="line.1750"></a>
-<span class="sourceLineNo">1751</span>    }<a name="line.1751"></a>
-<span class="sourceLineNo">1752</span><a name="line.1752"></a>
-<span class="sourceLineNo">1753</span>    @Override<a name="line.1753"></a>
-<span class="sourceLineNo">1754</span>    protected void chore() {<a name="line.1754"></a>
-<span class="sourceLineNo">1755</span>      final StringBuffer whyFlush = new StringBuffer();<a name="line.1755"></a>
-<span class="sourceLineNo">1756</span>      for (HRegion r : this.server.onlineRegions.values()) {<a name="line.1756"></a>
-<span class="sourceLineNo">1757</span>        if (r == null) continue;<a name="line.1757"></a>
-<span class="sourceLineNo">1758</span>        if (r.shouldFlush(whyFlush)) {<a name="line.1758"></a>
-<span class="sourceLineNo">1759</span>          FlushRequester requester = server.getFlushRequester();<a name="line.1759"></a>
-<span class="sourceLineNo">1760</span>          if (requester != null) {<a name="line.1760"></a>
-<span class="sourceLineNo">1761</span>            long randomDelay = RandomUtils.nextInt(0, RANGE_OF_DELAY) + MIN_DELAY_TIME;<a name="line.1761"></a>
-<span class="sourceLineNo">1762</span>            LOG.info(getName() + " requesting flush of " +<a name="line.1762"></a>
-<span class="sourceLineNo">1763</span>              r.getRegionInfo().getRegionNameAsString() + " because " +<a name="line.1763"></a>
-<span class="sourceLineNo">1764</span>              whyFlush.toString() +<a name="line.1764"></a>
-<span class="sourceLineNo">1765</span>              " after random delay " + randomDelay + "ms");<a name="line.1765"></a>
-<span class="sourceLineNo">1766</span>            //Throttle the flushes by putting a delay. If we don't throttle, and there<a name="line.1766"></a>
-<span class="sourceLineNo">1767</span>            //is a balanced write-load on the regions in a table, we might end up<a name="line.1767"></a>
-<span class="sourceLineNo">1768</span>            //overwhelming the filesystem with too many flushes at once.<a name="line.1768"></a>
-<span class="sourceLineNo">1769</span>            requester.requestDelayedFlush(r, randomDelay, false);<a name="line.1769"></a>
-<span class="sourceLineNo">1770</span>          }<a name="line.1770"></a>
-<span class="sourceLineNo">1771</span>        }<a name="line.1771"></a>
-<span class="sourceLineNo">1772</span>      }<a name="line.1772"></a>
-<span class="sourceLineNo">1773</span>    }<a name="line.1773"></a>
-<span class="sourceLineNo">1774</span>  }<a name="line.1774"></a>
-<span class="sourceLineNo">1775</span><a name="line.1775"></a>
-<span class="sourceLineNo">1776</span>  /**<a name="line.1776"></a>
-<span class="sourceLineNo">1777</span>   * Report the status of the server. A server is online once all the startup is<a name="line.1777"></a>
-<span class="sourceLineNo">1778</span>   * completed (setting up filesystem, starting executorService threads, etc.). This<a name="line.1778"></a>
-<span class="sourceLineNo">1779</span>   * method is designed mostly to be useful in tests.<a name="line.1779"></a>
-<span class="sourceLineNo">1780</span>   *<a name="line.1780"></a>
-<span class="sourceLineNo">1781</span>   * @return true if online, false if not.<a name="line.1781"></a>
-<span class="sourceLineNo">1782</span>   */<a name="line.1782"></a>
-<span class="sourceLineNo">1783</span>  public boolean isOnline() {<a name="line.1783"></a>
-<span class="sourceLineNo">1784</span>    return online.get();<a name="line.1784"></a>
-<span class="sourceLineNo">1785</span>  }<a name="line.1785"></a>
-<span class="sourceLineNo">1786</span><a name="line.1786"></a>
-<span class="sourceLineNo">1787</span>  /**<a name="line.1787"></a>
-<span class="sourceLineNo">1788</span>   * Setup WAL log and replication if enabled.<a name="line.1788"></a>
-<span class="sourceLineNo">1789</span>   * Replication setup is done in here because it wants to be hooked up to WAL.<a name="line.1789"></a>
-<span class="sourceLineNo">1790</span>   *<a name="line.1790"></a>
-<span class="sourceLineNo">1791</span>   * @throws IOException<a name="line.1791"></a>
-<span class="sourceLineNo">1792</span>   */<a name="line.1792"></a>
-<span class="sourceLineNo">1793</span>  private void setupWALAndReplication() throws IOException {<a name="line.1793"></a>
-<span class="sourceLineNo">1794</span>    // TODO Replication make assumptions here based on the default filesystem impl<a name="line.1794"></a>
-<span class="sourceLineNo">1795</span>    Path oldLogDir = new Path(walRootDir, HConstants.HREGION_OLDLOGDIR_NAME);<a name="line.1795"></a>
-<span class="sourceLineNo">1796</span>    String logName = AbstractFSWALProvider.getWALDirectoryName(this.serverName.toString());<a name="line.1796"></a>
-<span class="sourceLineNo">1797</span><a name="line.1797"></a>
-<span class="sourceLineNo">1798</span>    Path logDir = new Path(walRootDir, logName);<a name="line.1798"></a>
-<span class="sourceLineNo">1799</span>    if (LOG.isDebugEnabled()) LOG.debug("logDir=" + logDir);<a name="line.1799"></a>
-<span class="sourceLineNo">1800</span>    if (this.walFs.exists(logDir)) {<a name="line.1800"></a>
-<span class="sourceLineNo">1801</span>      throw new RegionServerRunningException("Region server has already " +<a name="line.1801"></a>
-<span class="sourceLineNo">1802</span>          "created directory at " + this.serverName.toString());<a name="line.1802"></a>
-<span class="sourceLineNo">1803</span>    }<a name="line.1803"></a>
-<span class="sourceLineNo">1804</span><a name="line.1804"></a>
-<span class="sourceLineNo">1805</span>    // Instantiate replication if replication enabled.  Pass it the log directories.<a name="line.1805"></a>
-<span class="sourceLineNo">1806</span>    // In here we create the Replication instances. Later they are initialized and started up.<a name="line.1806"></a>
-<span class="sourceLineNo">1807</span>    createNewReplicationInstance(conf, this, this.walFs, logDir, oldLogDir);<a name="line.1807"></a>
-<span class="sourceLineNo">1808</span><a name="line.1808"></a>
-<span class="sourceLineNo">1809</span>    // listeners the wal factory will add to wals it creates.<a name="line.1809"></a>
-<span class="sourceLineNo">1810</span>    List&lt;WALActionsListener&gt; listeners = new ArrayList&lt;&gt;();<a name="line.1810"></a>
-<span class="sourceLineNo">1811</span>    listeners.add(new MetricsWAL());<a name="line.1811"></a>
-<span class="sourceLineNo">1812</span>    if (this.replicationSourceHandler != null &amp;&amp;<a name="line.1812"></a>
-<span class="sourceLineNo">1813</span>        this.replicationSourceHandler.getWALActionsListener() != null) {<a name="line.1813"></a>
-<span class="sourceLineNo">1814</span>      // Replication handler is an implementation of WALActionsListener.<a name="line.1814"></a>
-<span class="sourceLineNo">1815</span>      listeners.add(this.replicationSourceHandler.getWALActionsListener());<a name="line.1815"></a>
-<span class="sourceLineNo">1816</span>    }<a name="line.1816"></a>
-<span class="sourceLineNo">1817</span><a name="line.1817"></a>
-<span class="sourceLineNo">1818</span>    // There is a cyclic dependency between ReplicationSourceHandler and WALFactory.<a name="line.1818"></a>
-<span class="sourceLineNo">1819</span>    // We use WALActionsListener to get the newly rolled WALs, so we need to get the<a name="line.1819"></a>
-<span class="sourceLineNo">1820</span>    // WALActionsListeners from ReplicationSourceHandler before constructing WALFactory. And then<a name="line.1820"></a>
-<span class="sourceLineNo">1821</span>    // ReplicationSourceHandler need to use WALFactory get the length of the wal file being written.<a name="line.1821"></a>
-<span class="sourceLineNo">1822</span>    // So we here we need to construct WALFactory first, and then pass it to the initialized method<a name="line.1822"></a>
-<span class="sourceLineNo">1823</span>    // of ReplicationSourceHandler.<a name="line.1823"></a>
-<span class="sourceLineNo">1824</span>    // TODO: I can't follow replication; it has initialize and then later on we start it!<a name="line.1824"></a>
-<span class="sourceLineNo">1825</span>    WALFactory factory = new WALFactory(conf, listeners, serverName.toString());<a name="line.1825"></a>
-<span class="sourceLineNo">1826</span>    this.walFactory = factory;<a name="line.1826"></a>
-<span class="sourceLineNo">1827</span>    if (this.replicationSourceHandler != null) {<a name="line.1827"></a>
-<span class="sourceLineNo">1828</span>      this.replicationSourceHandler.initialize(this, walFs, logDir, oldLogDir, factory);<a name="line.1828"></a>
-<span class="sourceLineNo">1829</span>    }<a name="line.1829"></a>
-<span class="sourceLineNo">1830</span>    if (this.replicationSinkHandler != null &amp;&amp;<a name="line.1830"></a>
-<span class="sourceLineNo">1831</span>        this.replicationSinkHandler != this.replicationSourceHandler) {<a name="line.1831"></a>
-<span class="sourceLineNo">1832</span>      this.replicationSinkHandler.initialize(this, walFs, logDir, oldLogDir, factory);<a name="line.1832"></a>
-<span class="sourceLineNo">1833</span>    }<a name="line.1833"></a>
-<span class="sourceLineNo">1834</span>  }<a name="line.1834"></a>
-<span class="sourceLineNo">1835</span><a name="line.1835"></a>
-<span class="sourceLineNo">1836</span>  /**<a name="line.1836"></a>
-<span class="sourceLineNo">1837</span>   * Start up replication source and sink handlers.<a name="line.1837"></a>
-<span class="sourceLineNo">1838</span>   * @throws IOException<a name="line.1838"></a>
-<span class="sourceLineNo">1839</span>   */<a name="line.1839"></a>
-<span class="sourceLineNo">1840</span>  private void startReplicationService() throws IOException {<a name="line.1840"></a>
-<span class="sourceLineNo">1841</span>    if (this.replicationSourceHandler == this.replicationSinkHandler &amp;&amp;<a name="line.1841"></a>
-<span class="sourceLineNo">1842</span>        this.replicationSourceHandler != null) {<a name="line.1842"></a>
-<span class="sourceLineNo">1843</span>      this.replicationSourceHandler.startReplicationService();<a name="line.1843"></a>
-<span class="sourceLineNo">1844</span>    } else {<a name="line.1844"></a>
-<span class="sourceLineNo">1845</span>      if (this.replicationSourceHandler != null) {<a name="line.1845"></a>
-<span class="sourceLineNo">1846</span>        this.replicationSourceHandler.startReplicationService();<a name="line.1846"></a>
-<span class="sourceLineNo">1847</span>      }<a name="line.1847"></a>
-<span class="sourceLineNo">1848</span>      if (this.replicationSinkHandler != null) {<a name="line.1848"></a>
-<span class="sourceLineNo">1849</span>        this.replicationSinkHandler.startReplicationService();<a name="line.1849"></a>
-<span class="sourceLineNo">1850</span>      }<a name="line.1850"></a>
-<span class="sourceLineNo">1851</span>    }<a name="line.1851"></a>
-<span class="sourceLineNo">1852</span>  }<a name="line.1852"></a>
-<span class="sourceLineNo">1853</span><a name="line.1853"></a>
+<span class="sourceLineNo">1534</span><a name="line.1534"></a>
+<span class="sourceLineNo">1535</span>      // Set up ZK<a name="line.1535"></a>
+<span class="sourceLineNo">1536</span>      LOG.info("Serving as " + this.serverName + ", RpcServer on " + rpcServices.isa +<a name="line.1536"></a>
+<span class="sourceLineNo">1537</span>          ", sessionid=0x" +<a name="line.1537"></a>
+<span class="sourceLineNo">1538</span>          Long.toHexString(this.zooKeeper.getRecoverableZooKeeper().getSessionId()));<a name="line.1538"></a>
+<span class="sourceLineNo">1539</span><a name="line.1539"></a>
+<span class="sourceLineNo">1540</span>      // Wake up anyone waiting for this server to online<a name="line.1540"></a>
+<span class="sourceLineNo">1541</span>      synchronized (online) {<a name="line.1541"></a>
+<span class="sourceLineNo">1542</span>        online.set(true);<a name="line.1542"></a>
+<span class="sourceLineNo">1543</span>        online.notifyAll();<a name="line.1543"></a>
+<span class="sourceLineNo">1544</span>      }<a name="line.1544"></a>
+<span class="sourceLineNo">1545</span>    } catch (Throwable e) {<a name="line.1545"></a>
+<span class="sourceLineNo">1546</span>      stop("Failed initialization");<a name="line.1546"></a>
+<span class="sourceLineNo">1547</span>      throw convertThrowableToIOE(cleanup(e, "Failed init"),<a name="line.1547"></a>
+<span class="sourceLineNo">1548</span>          "Region server startup failed");<a name="line.1548"></a>
+<span class="sourceLineNo">1549</span>    } finally {<a name="line.1549"></a>
+<span class="sourceLineNo">1550</span>      sleeper.skipSleepCycle();<a name="line.1550"></a>
+<span class="sourceLineNo">1551</span>    }<a name="line.1551"></a>
+<span class="sourceLineNo">1552</span>  }<a name="line.1552"></a>
+<span class="sourceLineNo">1553</span><a name="line.1553"></a>
+<span class="sourceLineNo">1554</span>  protected void initializeMemStoreChunkCreator() {<a name="line.1554"></a>
+<span class="sourceLineNo">1555</span>    if (MemStoreLAB.isEnabled(conf)) {<a name="line.1555"></a>
+<span class="sourceLineNo">1556</span>      // MSLAB is enabled. So initialize MemStoreChunkPool<a name="line.1556"></a>
+<span class="sourceLineNo">1557</span>      // By this time, the MemstoreFlusher is already initialized. We can get the global limits from<a name="line.1557"></a>
+<span class="sourceLineNo">1558</span>      // it.<a name="line.1558"></a>
+<span class="sourceLineNo">1559</span>      Pair&lt;Long, MemoryType&gt; pair = MemorySizeUtil.getGlobalMemStoreSize(conf);<a name="line.1559"></a>
+<span class="sourceLineNo">1560</span>      long globalMemStoreSize = pair.getFirst();<a name="line.1560"></a>
+<span class="sourceLineNo">1561</span>      boolean offheap = this.regionServerAccounting.isOffheap();<a name="line.1561"></a>
+<span class="sourceLineNo">1562</span>      // When off heap memstore in use, take full area for chunk pool.<a name="line.1562"></a>
+<span class="sourceLineNo">1563</span>      float poolSizePercentage = offheap? 1.0F:<a name="line.1563"></a>
+<span class="sourceLineNo">1564</span>          conf.getFloat(MemStoreLAB.CHUNK_POOL_MAXSIZE_KEY, MemStoreLAB.POOL_MAX_SIZE_DEFAULT);<a name="line.1564"></a>
+<span class="sourceLineNo">1565</span>      float initialCountPercentage = conf.getFloat(MemStoreLAB.CHUNK_POOL_INITIALSIZE_KEY,<a name="line.1565"></a>
+<span class="sourceLineNo">1566</span>          MemStoreLAB.POOL_INITIAL_SIZE_DEFAULT);<a name="line.1566"></a>
+<span class="sourceLineNo">1567</span>      int chunkSize = conf.getInt(MemStoreLAB.CHUNK_SIZE_KEY, MemStoreLAB.CHUNK_SIZE_DEFAULT);<a name="line.1567"></a>
+<span class="sourceLineNo">1568</span>      // init the chunkCreator<a name="line.1568"></a>
+<span class="sourceLineNo">1569</span>      ChunkCreator chunkCreator =<a name="line.1569"></a>
+<span class="sourceLineNo">1570</span>          ChunkCreator.initialize(chunkSize, offheap, globalMemStoreSize, poolSizePercentage,<a name="line.1570"></a>
+<span class="sourceLineNo">1571</span>      initialCountPercentage, this.hMemManager);<a name="line.1571"></a>
+<span class="sourceLineNo">1572</span>    }<a name="line.1572"></a>
+<span class="sourceLineNo">1573</span>  }<a name="line.1573"></a>
+<span class="sourceLineNo">1574</span><a name="line.1574"></a>
+<span class="sourceLineNo">1575</span>  private void startHeapMemoryManager() {<a name="line.1575"></a>
+<span class="sourceLineNo">1576</span>    this.hMemManager = HeapMemoryManager.create(this.conf, this.cacheFlusher, this,<a name="line.1576"></a>
+<span class="sourceLineNo">1577</span>        this.regionServerAccounting);<a name="line.1577"></a>
+<span class="sourceLineNo">1578</span>    if (this.hMemManager != null) {<a name="line.1578"></a>
+<span class="sourceLineNo">1579</span>      this.hMemManager.start(getChoreService());<a name="line.1579"></a>
+<span class="sourceLineNo">1580</span>    }<a name="line.1580"></a>
+<span class="sourceLineNo">1581</span>  }<a name="line.1581"></a>
+<span class="sourceLineNo">1582</span><a name="line.1582"></a>
+<span class="sourceLineNo">1583</span>  private void createMyEphemeralNode() throws KeeperException, IOException {<a name="line.1583"></a>
+<span class="sourceLineNo">1584</span>    RegionServerInfo.Builder rsInfo = RegionServerInfo.newBuilder();<a name="line.1584"></a>
+<span class="sourceLineNo">1585</span>    rsInfo.setInfoPort(infoServer != null ? infoServer.getPort() : -1);<a name="line.1585"></a>
+<span class="sourceLineNo">1586</span>    rsInfo.setVersionInfo(ProtobufUtil.getVersionInfo());<a name="line.1586"></a>
+<span class="sourceLineNo">1587</span>    byte[] data = ProtobufUtil.prependPBMagic(rsInfo.build().toByteArray());<a name="line.1587"></a>
+<span class="sourceLineNo">1588</span>    ZKUtil.createEphemeralNodeAndWatch(this.zooKeeper, getMyEphemeralNodePath(), data);<a name="line.1588"></a>
+<span class="sourceLineNo">1589</span>  }<a name="line.1589"></a>
+<span class="sourceLineNo">1590</span><a name="line.1590"></a>
+<span class="sourceLineNo">1591</span>  private void deleteMyEphemeralNode() throws KeeperException {<a name="line.1591"></a>
+<span class="sourceLineNo">1592</span>    ZKUtil.deleteNode(this.zooKeeper, getMyEphemeralNodePath());<a name="line.1592"></a>
+<span class="sourceLineNo">1593</span>  }<a name="line.1593"></a>
+<span class="sourceLineNo">1594</span><a name="line.1594"></a>
+<span class="sourceLineNo">1595</span>  @Override<a name="line.1595"></a>
+<span class="sourceLineNo">1596</span>  public RegionServerAccounting getRegionServerAccounting() {<a name="line.1596"></a>
+<span class="sourceLineNo">1597</span>    return regionServerAccounting;<a name="line.1597"></a>
+<span class="sourceLineNo">1598</span>  }<a name="line.1598"></a>
+<span class="sourceLineNo">1599</span><a name="line.1599"></a>
+<span class="sourceLineNo">1600</span>  /*<a name="line.1600"></a>
+<span class="sourceLineNo">1601</span>   * @param r Region to get RegionLoad for.<a name="line.1601"></a>
+<span class="sourceLineNo">1602</span>   * @param regionLoadBldr the RegionLoad.Builder, can be null<a name="line.1602"></a>
+<span class="sourceLineNo">1603</span>   * @param regionSpecifier the RegionSpecifier.Builder, can be null<a name="line.1603"></a>
+<span class="sourceLineNo">1604</span>   * @return RegionLoad instance.<a name="line.1604"></a>
+<span class="sourceLineNo">1605</span>   *<a name="line.1605"></a>
+<span class="sourceLineNo">1606</span>   * @throws IOException<a name="line.1606"></a>
+<span class="sourceLineNo">1607</span>   */<a name="line.1607"></a>
+<span class="sourceLineNo">1608</span>  RegionLoad createRegionLoad(final HRegion r, RegionLoad.Builder regionLoadBldr,<a name="line.1608"></a>
+<span class="sourceLineNo">1609</span>      RegionSpecifier.Builder regionSpecifier) throws IOException {<a name="line.1609"></a>
+<span class="sourceLineNo">1610</span>    byte[] name = r.getRegionInfo().getRegionName();<a name="line.1610"></a>
+<span class="sourceLineNo">1611</span>    int stores = 0;<a name="line.1611"></a>
+<span class="sourceLineNo">1612</span>    int storefiles = 0;<a name="line.1612"></a>
+<span class="sourceLineNo">1613</span>    int storeUncompressedSizeMB = 0;<a name="line.1613"></a>
+<span class="sourceLineNo">1614</span>    int storefileSizeMB = 0;<a name="line.1614"></a>
+<span class="sourceLineNo">1615</span>    int memstoreSizeMB = (int) (r.getMemStoreSize() / 1024 / 1024);<a name="line.1615"></a>
+<span class="sourceLineNo">1616</span>    long storefileIndexSizeKB = 0;<a name="line.1616"></a>
+<span class="sourceLineNo">1617</span>    int rootIndexSizeKB = 0;<a name="line.1617"></a>
+<span class="sourceLineNo">1618</span>    int totalStaticIndexSizeKB = 0;<a name="line.1618"></a>
+<span class="sourceLineNo">1619</span>    int totalStaticBloomSizeKB = 0;<a name="line.1619"></a>
+<span class="sourceLineNo">1620</span>    long totalCompactingKVs = 0;<a name="line.1620"></a>
+<span class="sourceLineNo">1621</span>    long currentCompactedKVs = 0;<a name="line.1621"></a>
+<span class="sourceLineNo">1622</span>    List&lt;HStore&gt; storeList = r.getStores();<a name="line.1622"></a>
+<span class="sourceLineNo">1623</span>    stores += storeList.size();<a name="line.1623"></a>
+<span class="sourceLineNo">1624</span>    for (HStore store : storeList) {<a name="line.1624"></a>
+<span class="sourceLineNo">1625</span>      storefiles += store.getStorefilesCount();<a name="line.1625"></a>
+<span class="sourceLineNo">1626</span>      storeUncompressedSizeMB += (int) (store.getStoreSizeUncompressed() / 1024 / 1024);<a name="line.1626"></a>
+<span class="sourceLineNo">1627</span>      storefileSizeMB += (int) (store.getStorefilesSize() / 1024 / 1024);<a name="line.1627"></a>
+<span class="sourceLineNo">1628</span>      storefileIndexSizeKB += store.getStorefilesIndexSize() / 1024;<a name="line.1628"></a>
+<span class="sourceLineNo">1629</span>      CompactionProgress progress = store.getCompactionProgress();<a name="line.1629"></a>
+<span class="sourceLineNo">1630</span>      if (progress != null) {<a name="line.1630"></a>
+<span class="sourceLineNo">1631</span>        totalCompactingKVs += progress.totalCompactingKVs;<a name="line.1631"></a>
+<span class="sourceLineNo">1632</span>        currentCompactedKVs += progress.currentCompactedKVs;<a name="line.1632"></a>
+<span class="sourceLineNo">1633</span>      }<a name="line.1633"></a>
+<span class="sourceLineNo">1634</span>      rootIndexSizeKB += (int) (store.getStorefilesIndexSize() / 1024);<a name="line.1634"></a>
+<span class="sourceLineNo">1635</span>      totalStaticIndexSizeKB += (int) (store.getTotalStaticIndexSize() / 1024);<a name="line.1635"></a>
+<span class="sourceLineNo">1636</span>      totalStaticBloomSizeKB += (int) (store.getTotalStaticBloomSize() / 1024);<a name="line.1636"></a>
+<span class="sourceLineNo">1637</span>    }<a name="line.1637"></a>
+<span class="sourceLineNo">1638</span><a name="line.1638"></a>
+<span class="sourceLineNo">1639</span>    float dataLocality =<a name="line.1639"></a>
+<span class="sourceLineNo">1640</span>        r.getHDFSBlocksDistribution().getBlockLocalityIndex(serverName.getHostname());<a name="line.1640"></a>
+<span class="sourceLineNo">1641</span>    if (regionLoadBldr == null) {<a name="line.1641"></a>
+<span class="sourceLineNo">1642</span>      regionLoadBldr = RegionLoad.newBuilder();<a name="line.1642"></a>
+<span class="sourceLineNo">1643</span>    }<a name="line.1643"></a>
+<span class="sourceLineNo">1644</span>    if (regionSpecifier == null) {<a name="line.1644"></a>
+<span class="sourceLineNo">1645</span>      regionSpecifier = RegionSpecifier.newBuilder();<a name="line.1645"></a>
+<span class="sourceLineNo">1646</span>    }<a name="line.1646"></a>
+<span class="sourceLineNo">1647</span>    regionSpecifier.setType(RegionSpecifierType.REGION_NAME);<a name="line.1647"></a>
+<span class="sourceLineNo">1648</span>    regionSpecifier.setValue(UnsafeByteOperations.unsafeWrap(name));<a name="line.1648"></a>
+<span class="sourceLineNo">1649</span>    regionLoadBldr.setRegionSpecifier(regionSpecifier.build())<a name="line.1649"></a>
+<span class="sourceLineNo">1650</span>      .setStores(stores)<a name="line.1650"></a>
+<span class="sourceLineNo">1651</span>      .setStorefiles(storefiles)<a name="line.1651"></a>
+<span class="sourceLineNo">1652</span>      .setStoreUncompressedSizeMB(storeUncompressedSizeMB)<a name="line.1652"></a>
+<span class="sourceLineNo">1653</span>      .setStorefileSizeMB(storefileSizeMB)<a name="line.1653"></a>
+<span class="sourceLineNo">1654</span>      .setMemStoreSizeMB(memstoreSizeMB)<a name="line.1654"></a>
+<span class="sourceLineNo">1655</span>      .setStorefileIndexSizeKB(storefileIndexSizeKB)<a name="line.1655"></a>
+<span class="sourceLineNo">1656</span>      .setRootIndexSizeKB(rootIndexSizeKB)<a name="line.1656"></a>
+<span class="sourceLineNo">1657</span>      .setTotalStaticIndexSizeKB(totalStaticIndexSizeKB)<a name="line.1657"></a>
+<span class="sourceLineNo">1658</span>      .setTotalStaticBloomSizeKB(totalStaticBloomSizeKB)<a name="line.1658"></a>
+<span class="sourceLineNo">1659</span>      .setReadRequestsCount(r.getReadRequestsCount())<a name="line.1659"></a>
+<span class="sourceLineNo">1660</span>      .setFilteredReadRequestsCount(r.getFilteredReadRequestsCount())<a name="line.1660"></a>
+<span class="sourceLineNo">1661</span>      .setWriteRequestsCount(r.getWriteRequestsCount())<a name="line.1661"></a>
+<span class="sourceLineNo">1662</span>      .setTotalCompactingKVs(totalCompactingKVs)<a name="line.1662"></a>
+<span class="sourceLineNo">1663</span>      .setCurrentCompactedKVs(currentCompactedKVs)<a name="line.1663"></a>
+<span class="sourceLineNo">1664</span>      .setDataLocality(dataLocality)<a name="line.1664"></a>
+<span class="sourceLineNo">1665</span>      .setLastMajorCompactionTs(r.getOldestHfileTs(true));<a name="line.1665"></a>
+<span class="sourceLineNo">1666</span>    ((HRegion)r).setCompleteSequenceId(regionLoadBldr);<a name="line.1666"></a>
+<span class="sourceLineNo">1667</span><a name="line.1667"></a>
+<span class="sourceLineNo">1668</span>    return regionLoadBldr.build();<a name="line.1668"></a>
+<span class="sourceLineNo">1669</span>  }<a name="line.1669"></a>
+<span class="sourceLineNo">1670</span><a name="line.1670"></a>
+<span class="sourceLineNo">1671</span>  /**<a name="line.1671"></a>
+<span class="sourceLineNo">1672</span>   * @param encodedRegionName<a name="line.1672"></a>
+<span class="sourceLineNo">1673</span>   * @return An instance of RegionLoad.<a name="line.1673"></a>
+<span class="sourceLineNo">1674</span>   */<a name="line.1674"></a>
+<span class="sourceLineNo">1675</span>  public RegionLoad createRegionLoad(final String encodedRegionName) throws IOException {<a name="line.1675"></a>
+<span class="sourceLineNo">1676</span>    HRegion r = onlineRegions.get(encodedRegionName);<a name="line.1676"></a>
+<span class="sourceLineNo">1677</span>    return r != null ? createRegionLoad(r, null, null) : null;<a name="line.1677"></a>
+<span class="sourceLineNo">1678</span>  }<a name="line.1678"></a>
+<span class="sourceLineNo">1679</span><a name="line.1679"></a>
+<span class="sourceLineNo">1680</span>  /*<a name="line.1680"></a>
+<span class="sourceLineNo">1681</span>   * Inner class that runs on a long period checking if regions need compaction.<a name="line.1681"></a>
+<span class="sourceLineNo">1682</span>   */<a name="line.1682"></a>
+<span class="sourceLineNo">1683</span>  private static class CompactionChecker extends ScheduledChore {<a name="line.1683"></a>
+<span class="sourceLineNo">1684</span>    private final HRegionServer instance;<a name="line.1684"></a>
+<span class="sourceLineNo">1685</span>    private final int majorCompactPriority;<a name="line.1685"></a>
+<span class="sourceLineNo">1686</span>    private final static int DEFAULT_PRIORITY = Integer.MAX_VALUE;<a name="line.1686"></a>
+<span class="sourceLineNo">1687</span>    //Iteration is 1-based rather than 0-based so we don't check for compaction<a name="line.1687"></a>
+<span class="sourceLineNo">1688</span>    // immediately upon region server startup<a name="line.1688"></a>
+<span class="sourceLineNo">1689</span>    private long iteration = 1;<a name="line.1689"></a>
+<span class="sourceLineNo">1690</span><a name="line.1690"></a>
+<span class="sourceLineNo">1691</span>    CompactionChecker(final HRegionServer h, final int sleepTime, final Stoppable stopper) {<a name="line.1691"></a>
+<span class="sourceLineNo">1692</span>      super("CompactionChecker", stopper, sleepTime);<a name="line.1692"></a>
+<span class="sourceLineNo">1693</span>      this.instance = h;<a name="line.1693"></a>
+<span class="sourceLineNo">1694</span>      LOG.info(this.getName() + " runs every " + StringUtils.formatTime(sleepTime));<a name="line.1694"></a>
+<span class="sourceLineNo">1695</span><a name="line.1695"></a>
+<span class="sourceLineNo">1696</span>      /* MajorCompactPriority is configurable.<a name="line.1696"></a>
+<span class="sourceLineNo">1697</span>       * If not set, the compaction will use default priority.<a name="line.1697"></a>
+<span class="sourceLineNo">1698</span>       */<a name="line.1698"></a>
+<span class="sourceLineNo">1699</span>      this.majorCompactPriority = this.instance.conf.<a name="line.1699"></a>
+<span class="sourceLineNo">1700</span>          getInt("hbase.regionserver.compactionChecker.majorCompactPriority",<a name="line.1700"></a>
+<span class="sourceLineNo">1701</span>              DEFAULT_PRIORITY);<a name="line.1701"></a>
+<span class="sourceLineNo">1702</span>    }<a name="line.1702"></a>
+<span class="sourceLineNo">1703</span><a name="line.1703"></a>
+<span class="sourceLineNo">1704</span>    @Override<a name="line.1704"></a>
+<span class="sourceLineNo">1705</span>    protected void chore() {<a name="line.1705"></a>
+<span class="sourceLineNo">1706</span>      for (Region r : this.instance.onlineRegions.values()) {<a name="line.1706"></a>
+<span class="sourceLineNo">1707</span>        if (r == null) {<a name="line.1707"></a>
+<span class="sourceLineNo">1708</span>          continue;<a name="line.1708"></a>
+<span class="sourceLineNo">1709</span>        }<a name="line.1709"></a>
+<span class="sourceLineNo">1710</span>        HRegion hr = (HRegion) r;<a name="line.1710"></a>
+<span class="sourceLineNo">1711</span>        for (HStore s : hr.stores.values()) {<a name="line.1711"></a>
+<span class="sourceLineNo">1712</span>          try {<a name="line.1712"></a>
+<span class="sourceLineNo">1713</span>            long multiplier = s.getCompactionCheckMultiplier();<a name="line.1713"></a>
+<span class="sourceLineNo">1714</span>            assert multiplier &gt; 0;<a name="line.1714"></a>
+<span class="sourceLineNo">1715</span>            if (iteration % multiplier != 0) {<a name="line.1715"></a>
+<span class="sourceLineNo">1716</span>              continue;<a name="line.1716"></a>
+<span class="sourceLineNo">1717</span>            }<a name="line.1717"></a>
+<span class="sourceLineNo">1718</span>            if (s.needsCompaction()) {<a name="line.1718"></a>
+<span class="sourceLineNo">1719</span>              // Queue a compaction. Will recognize if major is needed.<a name="line.1719"></a>
+<span class="sourceLineNo">1720</span>              this.instance.compactSplitThread.requestSystemCompaction(hr, s,<a name="line.1720"></a>
+<span class="sourceLineNo">1721</span>                getName() + " requests compaction");<a name="line.1721"></a>
+<span class="sourceLineNo">1722</span>            } else if (s.shouldPerformMajorCompaction()) {<a name="line.1722"></a>
+<span class="sourceLineNo">1723</span>              s.triggerMajorCompaction();<a name="line.1723"></a>
+<span class="sourceLineNo">1724</span>              if (majorCompactPriority == DEFAULT_PRIORITY ||<a name="line.1724"></a>
+<span class="sourceLineNo">1725</span>                  majorCompactPriority &gt; hr.getCompactPriority()) {<a name="line.1725"></a>
+<span class="sourceLineNo">1726</span>                this.instance.compactSplitThread.requestCompaction(hr, s,<a name="line.1726"></a>
+<span class="sourceLineNo">1727</span>                    getName() + " requests major compaction; use default priority",<a name="line.1727"></a>
+<span class="sourceLineNo">1728</span>                    Store.NO_PRIORITY,<a name="line.1728"></a>
+<span class="sourceLineNo">1729</span>                CompactionLifeCycleTracker.DUMMY, null);<a name="line.1729"></a>
+<span class="sourceLineNo">1730</span>              } else {<a name="line.1730"></a>
+<span class="sourceLineNo">1731</span>                this.instance.compactSplitThread.requestCompaction(hr, s,<a name="line.1731"></a>
+<span class="sourceLineNo">1732</span>                    getName() + " requests major compaction; use configured priority",<a name="line.1732"></a>
+<span class="sourceLineNo">1733</span>                    this.majorCompactPriority, CompactionLifeCycleTracker.DUMMY, null);<a name="line.1733"></a>
+<span class="sourceLineNo">1734</span>              }<a name="line.1734"></a>
+<span class="sourceLineNo">1735</span>            }<a name="line.1735"></a>
+<span class="sourceLineNo">1736</span>          } catch (IOException e) {<a name="line.1736"></a>
+<span class="sourceLineNo">1737</span>            LOG.warn("Failed major compaction check on " + r, e);<a name="line.1737"></a>
+<span class="sourceLineNo">1738</span>          }<a name="line.1738"></a>
+<span class="sourceLineNo">1739</span>        }<a name="line.1739"></a>
+<span class="sourceLineNo">1740</span>      }<a name="line.1740"></a>
+<span class="sourceLineNo">1741</span>      iteration = (iteration == Long.MAX_VALUE) ? 0 : (iteration + 1);<a name="line.1741"></a>
+<span class="sourceLineNo">1742</span>    }<a name="line.1742"></a>
+<span class="sourceLineNo">1743</span>  }<a name="line.1743"></a>
+<span class="sourceLineNo">1744</span><a name="line.1744"></a>
+<span class="sourceLineNo">1745</span>  static class PeriodicMemStoreFlusher extends ScheduledChore {<a name="line.1745"></a>
+<span class="sourceLineNo">1746</span>    final HRegionServer server;<a name="line.1746"></a>
+<span class="sourceLineNo">1747</span>    final static int RANGE_OF_DELAY = 5 * 60 * 1000; // 5 min in milliseconds<a name="line.1747"></a>
+<span class="sourceLineNo">1748</span>    final static int MIN_DELAY_TIME = 0; // millisec<a name="line.1748"></a>
+<span class="sourceLineNo">1749</span>    public PeriodicMemStoreFlusher(int cacheFlushInterval, final HRegionServer server) {<a name="line.1749"></a>
+<span class="sourceLineNo">1750</span>      super("MemstoreFlusherChore", server, cacheFlushInterval);<a name="line.1750"></a>
+<span class="sourceLineNo">1751</span>      this.server = server;<a name="line.1751"></a>
+<span class="sourceLineNo">1752</span>    }<a name="line.1752"></a>
+<span class="sourceLineNo">1753</span><a name="line.1753"></a>
+<span class="sourceLineNo">1754</span>    @Override<a name="line.1754"></a>
+<span class="sourceLineNo">1755</span>    protected void chore() {<a name="line.1755"></a>
+<span class="sourceLineNo">1756</span>      final StringBuffer whyFlush = new StringBuffer();<a name="line.1756"></a>
+<span class="sourceLineNo">1757</span>      for (HRegion r : this.server.onlineRegions.values()) {<a name="line.1757"></a>
+<span class="sourceLineNo">1758</span>        if (r == null) continue;<a name="line.1758"></a>
+<span class="sourceLineNo">1759</span>        if (r.shouldFlush(whyFlush)) {<a name="line.1759"></a>
+<span class="sourceLineNo">1760</span>          FlushRequester requester = server.getFlushRequester();<a name="line.1760"></a>
+<span class="sourceLineNo">1761</span>          if (requester != null) {<a name="line.1761"></a>
+<span class="sourceLineNo">1762</span>            long randomDelay = RandomUtils.nextInt(0, RANGE_OF_DELAY) + MIN_DELAY_TIME;<a name="line.1762"></a>
+<span class="sourceLineNo">1763</span>            LOG.info(getName() + " requesting flush of " +<a name="line.1763"></a>
+<span class="sourceLineNo">1764</span>              r.getRegionInfo().getRegionNameAsString() + " because " +<a name="line.1764"></a>
+<span class="sourceLineNo">1765</span>              whyFlush.toString() +<a name="line.1765"></a>
+<span class="sourceLineNo">1766</span>              " after random delay " + randomDelay + "ms");<a name="line.1766"></a>
+<span class="sourceLineNo">1767</span>            //Throttle the flushes by putting a delay. If we don't throttle, and there<a name="line.1767"></a>
+<span class="sourceLineNo">1768</span>            //is a balanced write-load on the regions in a table, we might end up<a name="line.1768"></a>
+<span class="sourceLineNo">1769</span>            //overwhelming the filesystem with too many flushes at once.<a name="line.1769"></a>
+<span class="sourceLineNo">1770</span>            requester.requestDelayedFlush(r, randomDelay, false);<a name="line.1770"></a>
+<span class="sourceLineNo">1771</span>          }<a name="line.1771"></a>
+<span class="sourceLineNo">1772</span>        }<a name="line.1772"></a>
+<span class="sourceLineNo">1773</span>      }<a name="line.1773"></a>
+<span class="sourceLineNo">1774</span>    }<a name="line.1774"></a>
+<span class="sourceLineNo">1775</span>  }<a name="line.1775"></a>
+<span class="sourceLineNo">1776</span><a name="line.1776"></a>
+<span class="sourceLineNo">1777</span>  /**<a name="line.1777"></a>
+<span class="sourceLineNo">1778</span>   * Report the status of the server. A server is online once all the startup is<a name="line.1778"></a>
+<span class="sourceLineNo">1779</span>   * completed (setting up filesystem, starting executorService threads, etc.). This<a name="line.1779"></a>
+<span class="sourceLineNo">1780</span>   * method is designed mostly to be useful in tests.<a name="line.1780"></a>
+<span class="sourceLineNo">1781</span>   *<a name="line.1781"></a>
+<span class="sourceLineNo">1782</span>   * @return true if online, false if not.<a name="line.1782"></a>
+<span class="sourceLineNo">1783</span>   */<a name="line.1783"></a>
+<span class="sourceLineNo">1784</span>  public boolean isOnline() {<a name="line.1784"></a>
+<span class="sourceLineNo">1785</span>    return online.get();<a name="line.1785"></a>
+<span class="sourceLineNo">1786</span>  }<a name="line.1786"></a>
+<span class="sourceLineNo">1787</span><a name="line.1787"></a>
+<span class="sourceLineNo">1788</span>  /**<a name="line.1788"></a>
+<span class="sourceLineNo">1789</span>   * Setup WAL log and replication if enabled.<a name="line.1789"></a>
+<span class="sourceLineNo">1790</span>   * Replication setup is done in here because it wants to be hooked up to WAL.<a name="line.1790"></a>
+<span class="sourceLineNo">1791</span>   *<a name="line.1791"></a>
+<span class="sourceLineNo">1792</span>   * @throws IOException<a name="line.1792"></a>
+<span class="sourceLineNo">1793</span>   */<a name="line.1793"></a>
+<span class="sourceLineNo">1794</span>  private void setupWALAndReplication() throws IOException {<a name="line.1794"></a>
+<span class="sourceLineNo">1795</span>    // TODO Replication make assumptions here based on the default filesystem impl<a name="line.1795"></a>
+<span class="sourceLineNo">1796</span>    Path oldLogDir = new Path(walRootDir, HConstants.HREGION_OLDLOGDIR_NAME);<a name="line.1796"></a>
+<span class="sourceLineNo">1797</span>    String logName = AbstractFSWALProvider.getWALDirectoryName(this.serverName.toString());<a name="line.1797"></a>
+<span class="sourceLineNo">1798</span><a name="line.1798"></a>
+<span class="sourceLineNo">1799</span>    Path logDir = new Path(walRootDir, logName);<a name="line.1799"></a>
+<span class="sourceLineNo">1800</span>    if (LOG.isDebugEnabled()) LOG.debug("logDir=" + logDir);<a name="line.1800"></a>
+<span class="sourceLineNo">1801</span>    if (this.walFs.exists(logDir)) {<a name="line.1801"></a>
+<span class="sourceLineNo">1802</span>      throw new RegionServerRunningException("Region server has already " +<a name="line.1802"></a>
+<span class="sourceLineNo">1803</span>          "created directory at " + this.serverName.toString());<a name="line.1803"></a>
+<span class="sourceLineNo">1804</span>    }<a name="line.1804"></a>
+<span class="sourceLineNo">1805</span><a name="line.1805"></a>
+<span class="sourceLineNo">1806</span>    // Instantiate replication if replication enabled.  Pass it the log directories.<a name="line.1806"></a>
+<span class="sourceLineNo">1807</span>    // In here we create the Replication instances. Later they are initialized and started up.<a name="line.1807"></a>
+<span class="sourceLineNo">1808</span>    createNewReplicationInstance(conf, this, this.walFs, logDir, oldLogDir);<a name="line.1808"></a>
+<span class="sourceLineNo">1809</span><a name="line.1809"></a>
+<span class="sourceLineNo">1810</span>    // listeners the wal factory will add to wals it creates.<a name="line.1810"></a>
+<span class="sourceLineNo">1811</span>    List&lt;WALActionsListener&gt; listeners = new ArrayList&lt;&gt;();<a name="line.1811"></a>
+<span class="sourceLineNo">1812</span>    listeners.add(new MetricsWAL());<a name="line.1812"></a>
+<span class="sourceLineNo">1813</span>    if (this.replicationSourceHandler != null &amp;&amp;<a name="line.1813"></a>
+<span class="sourceLineNo">1814</span>        this.replicationSourceHandler.getWALActionsListener() != null) {<a name="line.1814"></a>
+<span class="sourceLineNo">1815</span>      // Replication handler is an implementation of WALActionsListener.<a name="line.1815"></a>
+<span class="sourceLineNo">1816</span>      listeners.add(this.replicationSourceHandler.getWALActionsListener());<a name="line.1816"></a>
+<span class="sourceLineNo">1817</span>    }<a name="line.1817"></a>
+<span class="sourceLineNo">1818</span><a name="line.1818"></a>
+<span class="sourceLineNo">1819</span>    // There is a cyclic dependency between ReplicationSourceHandler and WALFactory.<a name="line.1819"></a>
+<span class="sourceLineNo">1820</span>    // We use WALActionsListener to get the newly rolled WALs, so we need to get the<a name="line.1820"></a>
+<span class="sourceLineNo">1821</span>    // WALActionsListeners from ReplicationSourceHandler before constructing WALFactory. And then<a name="line.1821"></a>
+<span class="sourceLineNo">1822</span>    // ReplicationSourceHandler need to use WALFactory get the length of the wal file being written.<a name="line.1822"></a>
+<span class="sourceLineNo">1823</span>    // So we here we need to construct WALFactory first, and then pass it to the initialized method<a name="line.1823"></a>
+<span class="sourceLineNo">1824</span>    // of ReplicationSourceHandler.<a name="line.1824"></a>
+<span class="sourceLineNo">1825</span>    // TODO: I can't follow replication; it has initialize and then later on we start it!<a name="line.1825"></a>
+<span class="sourceLineNo">1826</span>    WALFactory factory = new WALFactory(conf, listeners, serverName.toString());<a name="line.1826"></a>
+<span class="sourceLineNo">1827</span>    this.walFactory = factory;<a name="line.1827"></a>
+<span class="sourceLineNo">1828</span>    if (this.replicationSourceHandler != null) {<a name="line.1828"></a>
+<span class="sourceLineNo">1829</span>      this.replicationSourceHandler.initialize(this, walFs, logDir, oldLogDir, factory);<a name="line.1829"></a>
+<span class="sourceLineNo">1830</span>    }<a name="line.1830"></a>
+<span class="sourceLineNo">1831</span>    if (this.replicationSinkHandler != null &amp;&amp;<a name="line.1831"></a>
+<span class="sourceLineNo">1832</span>        this.replicationSinkHandler != this.replicationSourceHandler) {<a name="line.1832"></a>
+<span class="sourceLineNo">1833</span>      this.replicationSinkHandler.initialize(this, walFs, logDir, oldLogDir, factory);<a name="line.1833"></a>
+<span class="sourceLineNo">1834</span>    }<a name="line.1834"></a>
+<span class="sourceLineNo">1835</span>  }<a name="line.1835"></a>
+<span class="sourceLineNo">1836</span><a name="line.1836"></a>
+<span class="sourceLineNo">1837</span>  /**<a name="line.1837"></a>
+<span class="sourceLineNo">1838</span>   * Start up replication source and sink handlers.<a name="line.1838"></a>
+<span class="sourceLineNo">1839</span>   * @throws IOException<a name="line.1839"></a>
+<span class="sourceLineNo">1840</span>   */<a name="line.1840"></a>
+<span class="sourceLineNo">1841</span>  private void startReplicationService() throws IOException {<a name="line.1841"></a>
+<span class="sourceLineNo">1842</span>    if (this.replicationSourceHandler == this.replicationSinkHandler &amp;&amp;<a name="line.1842"></a>
+<span class="sourceLineNo">1843</span>        this.replicationSourceHandler != null) {<a name="line.1843"></a>
+<span class="sourceLineNo">1844</span>      this.replicationSourceHandler.startReplicationService();<a name="line.1844"></a>
+<span class="sourceLineNo">1845</span>    } else {<a name="line.1845"></a>
+<span class="sourceLineNo">1846</span>      if (this.replicationSourceHandler != null) {<a name="line.1846"></a>
+<span class="sourceLineNo">1847</span>        this.replicationSourceHandler.startReplicationService();<a name="line.1847"></a>
+<span class="sourceLineNo">1848</span>      }<a name="line.1848"></a>
+<span class="sourceLineNo">1849</span>      if (this.replicationSinkHandler != null) {<a name="line.1849"></a>
+<span class="sourceLineNo">1850</span>        this.replicationSinkHandler.startReplicationService();<a name="line.1850"></a>
+<span class="sourceLineNo">1851</span>      }<a name="line.1851"></a>
+<span class="sourceLineNo">1852</span>    }<a name="line.1852"></a>
+<span class="sourceLineNo">1853</span>  }<a name="line.1853"></a>
 <span class="sourceLineNo">1854</span><a name="line.1854"></a>
-<span class="sourceLineNo">1855</span>  public MetricsRegionServer getRegionServerMetrics() {<a name="line.1855"></a>
-<span class="sourceLineNo">1856</span>    return this.metricsRegionServer;<a name="line.1856"></a>
-<span class="sourceLineNo">1857</span>  }<a name="line.1857"></a>
-<span class="sourceLineNo">1858</span><a name="line.1858"></a>
-<span class="sourceLineNo">1859</span>  /**<a name="line.1859"></a>
-<span class="sourceLineNo">1860</span>   * @return Master address tracker instance.<a name="line.1860"></a>
-<span class="sourceLineNo">1861</span>   */<a name="line.1861"></a>
-<span class="sourceLineNo">1862</span>  public MasterAddressTracker getMasterAddressTracker() {<a name="line.1862"></a>
-<span class="sourceLineNo">1863</span>    return this.masterAddressTracker;<a name="line.1863"></a>
-<span class="sourceLineNo">1864</span>  }<a name="line.1864"></a>
-<span class="sourceLineNo">1865</span><a name="line.1865"></a>
-<span class="sourceLineNo">1866</span>  /*<a name="line.1866"></a>
-<span class="sourceLineNo">1867</span>   * Start maintenance Threads, Server, Worker and lease checker threads.<a name="line.1867"></a>
-<span class="sourceLineNo">1868</span>   * Start all threads we need to run. This is called after we've successfully<a name="line.1868"></a>
-<span class="sourceLineNo">1869</span>   * registered with the Master.<a name="line.1869"></a>
-<span class="sourceLineNo">1870</span>   * Install an UncaughtExceptionHandler that calls abort of RegionServer if we<a name="line.1870"></a>
-<span class="sourceLineNo">1871</span>   * get an unhandled exception. We cannot set the handler on all threads.<a name="line.1871"></a>
-<span class="sourceLineNo">1872</span>   * Server's internal Listener thread is off limits. For Server, if an OOME, it<a name="line.1872"></a>
-<span class="sourceLineNo">1873</span>   * waits a while then retries. Meantime, a flush or a compaction that tries to<a name="line.1873"></a>
-<span class="sourceLineNo">1874</span>   * run should trigger same critical condition and the shutdown will run. On<a name="line.1874"></a>
-<span class="sourceLineNo">1875</span>   * its way out, this server will shut down Server. Leases are sort of<a name="line.1875"></a>
-<span class="sourceLineNo">1876</span>   * inbetween. It has an internal thread that while it inherits from Chore, it<a name="line.1876"></a>
-<span class="sourceLineNo">1877</span>   * keeps its own internal stop mechanism so needs to be stopped by this<a name="line.1877"></a>
-<span class="sourceLineNo">1878</span>   * hosting server. Worker logs the exception and exits.<a name="line.1878"></a>
-<span class="sourceLineNo">1879</span>   */<a name="line.1879"></a>
-<span class="sourceLineNo">1880</span>  private void startServices() throws IOException {<a name="line.1880"></a>
-<span class="sourceLineNo">1881</span>    if (!isStopped() &amp;&amp; !isAborted()) {<a name="line.1881"></a>
-<span class="sourceLineNo">1882</span>      initializeThreads();<a name="line.1882"></a>
-<span class="sourceLineNo">1883</span>    }<a name="line.1883"></a>
-<span class="sourceLineNo">1884</span>    this.secureBulkLoadManager = new SecureBulkLoadManager(this.conf, clusterConnection);<a name="line.1884"></a>
-<span class="sourceLineNo">1885</span>    this.secureBulkLoadManager.start();<a name="line.1885"></a>
-<span class="sourceLineNo">1886</span><a name="line.1886"></a>
-<span class="sourceLineNo">1887</span>    // Health checker thread.<a name="line.1887"></a>
-<span class="sourceLineNo">1888</span>    if (isHealthCheckerConfigured()) {<a name="line.1888"></a>
-<span class="sourceLineNo">1889</span>      int sleepTime = this.conf.getInt(HConstants.HEALTH_CHORE_WAKE_FREQ,<a name="line.1889"></a>
-<span class="sourceLineNo">1890</span>      HConstants.DEFAULT_THREAD_WAKE_FREQUENCY);<a name="line.1890"></a>
-<span class="sourceLineNo">1891</span>      healthCheckChore = new HealthCheckChore(sleepTime, this, getConfiguration());<a name="line.1891"></a>
-<span class="sourceLineNo">1892</span>    }<a name="line.1892"></a>
-<span class="sourceLineNo">1893</span><a name="line.1893"></a>
-<span class="sourceLineNo">1894</span>    this.walRoller = new LogRoller(this, this);<a name="line.1894"></a>
-<span class="sourceLineNo">1895</span>    this.flushThroughputController = FlushThroughputControllerFactory.create(this, conf);<a name="line.1895"></a>
-<span class="sourceLineNo">1896</span><a name="line.1896"></a>
-<span class="sourceLineNo">1897</span>    // Create the CompactedFileDischarger chore executorService. This chore helps to<a name="line.1897"></a>
-<span class="sourceLineNo">1898</span>    // remove the compacted files<a name="line.1898"></a>
-<span class="sourceLineNo">1899</span>    // that will no longer be used in reads.<a name="line.1899"></a>
-<span class="sourceLineNo">1900</span>    // Default is 2 mins. The default value for TTLCleaner is 5 mins so we set this to<a name="line.1900"></a>
-<span class="sourceLineNo">1901</span>    // 2 mins so that compacted files can be archived before the TTLCleaner runs<a name="line.1901"></a>
-<span class="sourceLineNo">1902</span>    int cleanerInterval =<a name="line.1902"></a>
-<span class="sourceLineNo">1903</span>    conf.getInt("hbase.hfile.compaction.discharger.interval", 2 * 60 * 1000);<a name="line.1903"></a>
-<span class="sourceLineNo">1904</span>    this.compactedFileDischarger =<a name="line.1904"></a>
-<span class="sourceLineNo">1905</span>    new CompactedHFilesDischarger(cleanerInterval, this, this);<a name="line.1905"></a>
-<span class="sourceLineNo">1906</span>    choreService.scheduleChore(compactedFileDischarger);<a name="line.1906"></a>
-<span class="sourceLineNo">1907</span><a name="line.1907"></a>
-<span class="sourceLineNo">1908</span>    // Start executor services<a name="line.1908"></a>
-<span class="sourceLineNo">1909</span>    this.executorService.startExecutorService(ExecutorType.RS_OPEN_REGION,<a name="line.1909"></a>
-<span class="sourceLineNo">1910</span>        conf.getInt("hbase.regionserver.executor.openregion.threads", 3));<a name="line.1910"></a>
-<span class="sourceLineNo">1911</span>    this.executorService.startExecutorService(ExecutorType.RS_OPEN_META,<a name="line.1911"></a>
-<span class="sourceLineNo">1912</span>        conf.getInt("hbase.regionserver.executor.openmeta.threads", 1));<a name="line.1912"></a>
-<span class="sourceLineNo">1913</span>    this.executorService.startExecutorService(ExecutorType.RS_OPEN_PRIORITY_REGION,<a name="line.1913"></a>
-<span class="sourceLineNo">1914</span>        conf.getInt("hbase.regionserver.executor.openpriorityregion.threads", 3));<a name="line.1914"></a>
-<span class="sourceLineNo">1915</span>    this.executorService.startExecutorService(ExecutorType.RS_CLOSE_REGION,<a name="line.1915"></a>
-<span class="sourceLineNo">1916</span>        conf.getInt("hbase.regionserver.executor.closeregion.threads", 3));<a name="line.1916"></a>
-<span class="sourceLineNo">1917</span>    this.executorService.startExecutorService(ExecutorType.RS_CLOSE_META,<a name="line.1917"></a>
-<span class="sourceLineNo">1918</span>        conf.getInt("hbase.regionserver.executor.closemeta.threads", 1));<a name="line.1918"></a>
-<span class="sourceLineNo">1919</span>    if (conf.getBoolean(StoreScanner.STORESCANNER_PARALLEL_SEEK_ENABLE, false)) {<a name="line.1919"></a>
-<span class="sourceLineNo">1920</span>      this.executorService.startExecutorService(ExecutorType.RS_PARALLEL_SEEK,<a name="line.1920"></a>
-<span class="sourceLineNo">1921</span>          conf.getInt("hbase.storescanner.parallel.seek.threads", 10));<a name="line.1921"></a>
-<span class="sourceLineNo">1922</span>    }<a name="line.1922"></a>
-<span class="sourceLineNo">1923</span>    this.executorService.startExecutorService(ExecutorType.RS_LOG_REPLAY_OPS, conf.getInt(<a name="line.1923"></a>
-<span class="sourceLineNo">1924</span>    "hbase.regionserver.wal.max.splitters", SplitLogWorkerCoordination.DEFAULT_MAX_SPLITTERS));<a name="line.1924"></a>
-<span class="sourceLineNo">1925</span>    // Start the threads for compacted files discharger<a name="line.1925"></a>
-<span class="sourceLineNo">1926</span>    this.executorService.startExecutorService(ExecutorType.RS_COMPACTED_FILES_DISCHARGER,<a name="line.1926"></a>
-<span class="sourceLineNo">1927</span>        conf.getInt(CompactionConfiguration.HBASE_HFILE_COMPACTION_DISCHARGER_THREAD_COUNT, 10));<a name="line.1927"></a>
-<span class="sourceLineNo">1928</span>    if (ServerRegionReplicaUtil.isRegionReplicaWaitForPrimaryFlushEnabled(conf)) {<a name="line.1928"></a>
-<span class="sourceLineNo">1929</span>      this.executorService.startExecutorService(ExecutorType.RS_REGION_REPLICA_FLUSH_OPS,<a name="line.1929"></a>
-<span class="sourceLineNo">1930</span>          conf.getInt("hbase.regionserver.region.replica.flusher.threads",<a name="line.1930"></a>
-<span class="sourceLineNo">1931</span>              conf.getInt("hbase.regionserver.executor.openregion.threads", 3)));<a name="line.1931"></a>
-<span class="sourceLineNo">1932</span>    }<a name="line.1932"></a>
-<span class="sourceLineNo">1933</span><a name="line.1933"></a>
-<span class="sourceLineNo">1934</span>    Threads.setDaemonThreadRunning(this.walRoller.getThread(), getName() + ".logRoller",<a name="line.1934"></a>
-<span class="sourceLineNo">1935</span>    uncaughtExceptionHandler);<a name="line.1935"></a>
-<span class="sourceLineNo">1936</span>    this.cacheFlusher.start(uncaughtExceptionHandler);<a name="line.1936"></a>
-<span class="sourceLineNo">1937</span><a name="line.1937"></a>
-<span class="sourceLineNo">1938</span>    if (this.compactionChecker != null) choreService.scheduleChore(compactionChecker);<a name="line.1938"></a>
-<span class="sourceLineNo">1939</span>    if (this.periodicFlusher != null) choreService.scheduleChore(periodicFlusher);<a name="line.1939"></a>
-<span class="sourceLineNo">1940</span>    if (this.healthCheckChore != null) choreService.scheduleChore(healthCheckChore);<a name="line.1940"></a>
-<span class="sourceLineNo">1941</span>    if (this.nonceManagerChore != null) choreService.scheduleChore(nonceManagerChore);<a name="line.1941"></a>
-<span class="sourceLineNo">1942</span>    if (this.storefileRefresher != null) choreService.scheduleChore(storefileRefresher);<a name="line.1942"></a>
-<span class="sourceLineNo">1943</span>    if (this.movedRegionsCleaner != null) choreService.scheduleChore(movedRegionsCleaner);<a name="line.1943"></a>
-<span class="sourceLineNo">1944</span>    if (this.fsUtilizationChore != null) choreService.scheduleChore(fsUtilizationChore);<a name="line.1944"></a>
-<span class="sourceLineNo">1945</span><a name="line.1945"></a>
-<span class="sourceLineNo">1946</span>    // Leases is not a Thread. Internally it runs a daemon thread. If it gets<a name="line.1946"></a>
-<span class="sourceLineNo">1947</span>    // an unhandled exception, it will just exit.<a name="line.1947"></a>
-<span class="sourceLineNo">1948</span>    Threads.setDaemonThreadRunning(this.leases.getThread(), getName() + ".leaseChecker",<a name="line.1948"></a>
-<span class="sourceLineNo">1949</span>    uncaughtExceptionHandler);<a name="line.1949"></a>
-<span class="sourceLineNo">1950</span><a name="line.1950"></a>
-<span class="sourceLineNo">1951</span>    // Create the log splitting worker and start it<a name="line.1951"></a>
-<span class="sourceLineNo">1952</span>    // set a smaller retries to fast fail otherwise splitlogworker could be blocked for<a name="line.1952"></a>
-<span class="sourceLineNo">1953</span>    // quite a while inside Connection layer. The worker won't be available for other<a name="line.1953"></a>
-<span class="sourceLineNo">1954</span>    // tasks even after current task is preempted after a split task times out.<a name="line.1954"></a>
-<span class="sourceLineNo">1955</span>    Configuration sinkConf = HBaseConfiguration.create(conf);<a name="line.1955"></a>
-<span class="sourceLineNo">1956</span>    sinkConf.setInt(HConstants.HBASE_CLIENT_RETRIES_NUMBER,<a name="line.1956"></a>
-<span class="sourceLineNo">1957</span>        conf.getInt("hbase.log.replay.retries.number", 8)); // 8 retries take about 23 seconds<a name="line.1957"></a>
-<span class="sourceLineNo">1958</span>    sinkConf.setInt(HConstants.HBASE_RPC_TIMEOUT_KEY,<a name="line.1958"></a>
-<span class="sourceLineNo">1959</span>        conf.getInt("hbase.log.replay.rpc.timeout", 30000)); // default 30 seconds<a name="line.1959"></a>
-<span class="sourceLineNo">1960</span>    sinkConf.setInt(HConstants.HBASE_CLIENT_SERVERSIDE_RETRIES_MULTIPLIER, 1);<a name="line.1960"></a>
-<span class="sourceLineNo">1961</span>    if (this.csm != null) {<a name="line.1961"></a>
-<span class="sourceLineNo">1962</span>      // SplitLogWorker needs csm. If none, don't start this.<a name="line.1962"></a>
-<span class="sourceLineNo">1963</span>      this.splitLogWorker = new SplitLogWorker(this, sinkConf, this,<a name="line.1963"></a>
-<span class="sourceLineNo">1964</span>          this, walFactory);<a name="line.1964"></a>
-<span class="sourceLineNo">1965</span>      splitLogWorker.start();<a name="line.1965"></a>
-<span class="sourceLineNo">1966</span>    } else {<a name="line.1966"></a>
-<span class="sourceLineNo">1967</span>      LOG.warn("SplitLogWorker Service NOT started; CoordinatedStateManager is null");<a name="line.1967"></a>
-<span class="sourceLineNo">1968</span>    }<a name="line.1968"></a>
-<span class="sourceLineNo">1969</span><a name="line.1969"></a>
-<span class="sourceLineNo">1970</span>    // Memstore services.<a name="line.1970"></a>
-<span class="sourceLineNo">1971</span>    startHeapMemoryManager();<a name="line.1971"></a>
-<span class="sourceLineNo">1972</span>    // Call it after starting HeapMemoryManager.<a name="line.1972"></a>
-<span class="sourceLineNo">1973</span>    initializeMemStoreChunkCreator();<a name="line.1973"></a>
-<span class="sourceLineNo">1974</span>  }<a name="line.1974"></a>
-<span class="sourceLineNo">1975</span><a name="line.1975"></a>
-<span class="sourceLineNo">1976</span>  private void initializeThreads() throws IOException {<a name="line.1976"></a>
-<span class="sourceLineNo">1977</span>    // Cache flushing thread.<a name="line.1977"></a>
-<span class="sourceLineNo">1978</span>    this.cacheFlusher = new MemStoreFlusher(conf, this);<a name="line.1978"></a>
-<span class="sourceLineNo">1979</span><a name="line.1979"></a>
-<span class="sourceLineNo">1980</span>    // Compaction thread<a name="line.1980"></a>
-<span class="sourceLineNo">1981</span>    this.compactSplitThread = new CompactSplit(this);<a name="line.1981"></a>
-<span class="sourceLineNo">1982</span><a name="line.1982"></a>
-<span class="sourceLineNo">1983</span>    // Background thread to check for compactions; needed if region has not gotten updates<a name="line.1983"></a>
-<span class="sourceLineNo">1984</span>    // in a while. It will take care of not checking too frequently on store-by-store basis.<a name="line.1984"></a>
-<span class="sourceLineNo">1985</span>    this.compactionChecker = new CompactionChecker(this, this.threadWakeFrequency, this);<a name="line.1985"></a>
-<span class="sourceLineNo">1986</span>    this.periodicFlusher = new PeriodicMemStoreFlusher(this.threadWakeFrequency, this);<a name="line.1986"></a>
-<span class="sourceLineNo">1987</span>    this.leases = new Leases(this.threadWakeFrequency);<a name="line.1987"></a>
-<span class="sourceLineNo">1988</span><a name="line.1988"></a>
-<span class="sourceLineNo">1989</span>    // Create the thread to clean the moved regions list<a name="line.1989"></a>
-<span class="sourceLineNo">1990</span>    movedRegionsCleaner = MovedRegionsCleaner.create(this);<a name="line.1990"></a>
-<span class="sourceLineNo">1991</span><a name="line.1991"></a>
-<span class="sourceLineNo">1992</span>    if (this.nonceManager != null) {<a name="line.1992"></a>
-<span class="sourceLineNo">1993</span>      // Create the scheduled chore that cleans up nonces.<a name="line.1993"></a>
-<span class="sourceLineNo">1994</span>      nonceManagerChore = this.nonceManager.createCleanupScheduledChore(this);<a name="line.1994"></a>
-<span class="sourceLineNo">1995</span>    }<a name="line.1995"></a>
-<span class="sourceLineNo">1996</span><a name="line.1996"></a>
-<span class="sourceLineNo">1997</span>    // Setup the Quota Manager<a name="line.1997"></a>
-<span class="sourceLineNo">1998</span>    rsQuotaManager = new RegionServerRpcQuotaManager(this);<a name="line.1998"></a>
-<span class="sourceLineNo">1999</span>    rsSpaceQuotaManager = new RegionServerSpaceQuotaManager(this);<a name="line.1999"></a>
-<span class="sourceLineNo">2000</span><a name="line.2000"></a>
-<span class="sourceLineNo">2001</span>    if (QuotaUtil.isQuotaEnabled(conf)) {<a name="line.2001"></a>
-<span class="sourceLineNo">2002</span>      this.fsUtilizationChore = new FileSystemUtilizationChore(this);<a name="line.2002"></a>
-<span class="sourceLineNo">2003</span>    }<a name="line.2003"></a>
-<span class="sourceLineNo">2004</span><a name="line.2004"></a>
+<span class="sourceLineNo">1855</span><a name="line.1855"></a>
+<span class="sourceLineNo">1856</span>  public MetricsRegionServer getRegionServerMetrics() {<a name="line.1856"></a>
+<span class="sourceLineNo">1857</span>    return this.metricsRegionServer;<a name="line.1857"></a>
+<span class="

<TRUNCATED>

[29/32] hbase-site git commit: Published site at .

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/29b27596/devapidocs/index-all.html
----------------------------------------------------------------------
diff --git a/devapidocs/index-all.html b/devapidocs/index-all.html
index 1e43123..6ec5fff 100644
--- a/devapidocs/index-all.html
+++ b/devapidocs/index-all.html
@@ -3081,6 +3081,8 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/wal/MetricsWALSource.html#APPEND_SIZE_DESC">APPEND_SIZE_DESC</a></span> - Static variable in interface org.apache.hadoop.hbase.regionserver.wal.<a href="org/apache/hadoop/hbase/regionserver/wal/MetricsWALSource.html" title="interface in org.apache.hadoop.hbase.regionserver.wal">MetricsWALSource</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/MetricsTableLatencies.html#APPEND_TIME">APPEND_TIME</a></span> - Static variable in interface org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MetricsTableLatencies.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsTableLatencies</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/wal/MetricsWALSource.html#APPEND_TIME">APPEND_TIME</a></span> - Static variable in interface org.apache.hadoop.hbase.regionserver.wal.<a href="org/apache/hadoop/hbase/regionserver/wal/MetricsWALSource.html" title="interface in org.apache.hadoop.hbase.regionserver.wal">MetricsWALSource</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/wal/MetricsWALSource.html#APPEND_TIME_DESC">APPEND_TIME_DESC</a></span> - Static variable in interface org.apache.hadoop.hbase.regionserver.wal.<a href="org/apache/hadoop/hbase/regionserver/wal/MetricsWALSource.html" title="interface in org.apache.hadoop.hbase.regionserver.wal">MetricsWALSource</a></dt>
@@ -3192,6 +3194,8 @@
 <dd>
 <div class="block">Print all of the thread's information and stack traces.</div>
 </dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/MetricsTableLatenciesImpl.TableHistograms.html#appendTimeHisto">appendTimeHisto</a></span> - Variable in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MetricsTableLatenciesImpl.TableHistograms.html" title="class in org.apache.hadoop.hbase.regionserver">MetricsTableLatenciesImpl.TableHistograms</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/wal/MetricsWALSourceImpl.html#appendTimeHisto">appendTimeHisto</a></span> - Variable in class org.apache.hadoop.hbase.regionserver.wal.<a href="org/apache/hadoop/hbase/regionserver/wal/MetricsWALSourceImpl.html" title="class in org.apache.hadoop.hbase.regionserver.wal">MetricsWALSourceImpl</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/KeyValueUtil.html#appendTo-org.apache.hadoop.hbase.Cell-java.nio.ByteBuffer-int-boolean-">appendTo(Cell, ByteBuffer, int, boolean)</a></span> - Static method in class org.apache.hadoop.hbase.<a href="org/apache/hadoop/hbase/KeyValueUtil.html" title="class in org.apache.hadoop.hbase">KeyValueUtil</a></dt>
@@ -20236,6 +20240,10 @@
 </dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/HBaseAdmin.CreateTableFuture.html#CreateTableFuture-org.apache.hadoop.hbase.client.HBaseAdmin-org.apache.hadoop.hbase.client.TableDescriptor-byte:A:A-org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos.CreateTableResponse-">CreateTableFuture(HBaseAdmin, TableDescriptor, byte[][], MasterProtos.CreateTableResponse)</a></span> - Constructor for class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/HBaseAdmin.CreateTableFuture.html" title="class in org.apache.hadoop.hbase.client">HBaseAdmin.CreateTableFuture</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html#createTableMetrics-org.apache.hadoop.conf.Configuration-">createTableMetrics(Configuration)</a></span> - Static method in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html" title="class in org.apache.hadoop.hbase.regionserver">MetricsRegionServer</a></dt>
+<dd>
+<div class="block">Creates an instance of <a href="org/apache/hadoop/hbase/regionserver/RegionServerTableMetrics.html" title="class in org.apache.hadoop.hbase.regionserver"><code>RegionServerTableMetrics</code></a> only if the feature is enabled.</div>
+</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/TableName.html#createTableNameIfNecessary-java.nio.ByteBuffer-java.nio.ByteBuffer-">createTableNameIfNecessary(ByteBuffer, ByteBuffer)</a></span> - Static method in class org.apache.hadoop.hbase.<a href="org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a></dt>
 <dd>
 <div class="block">Check that the object does not exist already.</div>
@@ -23436,6 +23444,8 @@
 </dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/MetricsRegionServerSource.html#DELETE_BATCH_KEY">DELETE_BATCH_KEY</a></span> - Static variable in interface org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MetricsRegionServerSource.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsRegionServerSource</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/MetricsTableLatencies.html#DELETE_BATCH_TIME">DELETE_BATCH_TIME</a></span> - Static variable in interface org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MetricsTableLatencies.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsTableLatencies</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/backup/impl/BackupCommands.html#DELETE_CMD_USAGE">DELETE_CMD_USAGE</a></span> - Static variable in class org.apache.hadoop.hbase.backup.impl.<a href="org/apache/hadoop/hbase/backup/impl/BackupCommands.html" title="class in org.apache.hadoop.hbase.backup.impl">BackupCommands</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/HStoreFile.html#DELETE_FAMILY_COUNT">DELETE_FAMILY_COUNT</a></span> - Static variable in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/HStoreFile.html" title="class in org.apache.hadoop.hbase.regionserver">HStoreFile</a></dt>
@@ -23446,6 +23456,8 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/backup/impl/BackupSystemTable.html#DELETE_OP_ROW">DELETE_OP_ROW</a></span> - Static variable in class org.apache.hadoop.hbase.backup.impl.<a href="org/apache/hadoop/hbase/backup/impl/BackupSystemTable.html" title="class in org.apache.hadoop.hbase.backup.impl">BackupSystemTable</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/MetricsTableLatencies.html#DELETE_TIME">DELETE_TIME</a></span> - Static variable in interface org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MetricsTableLatencies.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsTableLatencies</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/cleaner/CleanerChore.CleanerTask.html#deleteAction-org.apache.hadoop.hbase.master.cleaner.CleanerChore.Action-java.lang.String-">deleteAction(CleanerChore.Action&lt;Boolean&gt;, String)</a></span> - Method in class org.apache.hadoop.hbase.master.cleaner.<a href="org/apache/hadoop/hbase/master/cleaner/CleanerChore.CleanerTask.html" title="class in org.apache.hadoop.hbase.master.cleaner">CleanerChore.CleanerTask</a></dt>
 <dd>
 <div class="block">Perform a delete on a specified type.</div>
@@ -23506,6 +23518,8 @@
 </dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.html#deleteBatchHisto">deleteBatchHisto</a></span> - Variable in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.html" title="class in org.apache.hadoop.hbase.regionserver">MetricsRegionServerSourceImpl</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/MetricsTableLatenciesImpl.TableHistograms.html#deleteBatchTimeHisto">deleteBatchTimeHisto</a></span> - Variable in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MetricsTableLatenciesImpl.TableHistograms.html" title="class in org.apache.hadoop.hbase.regionserver">MetricsTableLatenciesImpl.TableHistograms</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/querymatcher/ScanDeleteTracker.html#deleteBuffer">deleteBuffer</a></span> - Variable in class org.apache.hadoop.hbase.regionserver.querymatcher.<a href="org/apache/hadoop/hbase/regionserver/querymatcher/ScanDeleteTracker.html" title="class in org.apache.hadoop.hbase.regionserver.querymatcher">ScanDeleteTracker</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/backup/impl/IncrementalTableBackupClient.html#deleteBulkLoadDirectory--">deleteBulkLoadDirectory()</a></span> - Method in class org.apache.hadoop.hbase.backup.impl.<a href="org/apache/hadoop/hbase/backup/impl/IncrementalTableBackupClient.html" title="class in org.apache.hadoop.hbase.backup.impl">IncrementalTableBackupClient</a></dt>
@@ -24130,6 +24144,8 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/coordination/ZKSplitLogManagerCoordination.html#deleteTask-java.lang.String-">deleteTask(String)</a></span> - Method in class org.apache.hadoop.hbase.coordination.<a href="org/apache/hadoop/hbase/coordination/ZKSplitLogManagerCoordination.html" title="class in org.apache.hadoop.hbase.coordination">ZKSplitLogManagerCoordination</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/MetricsTableLatenciesImpl.TableHistograms.html#deleteTimeHisto">deleteTimeHisto</a></span> - Variable in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MetricsTableLatenciesImpl.TableHistograms.html" title="class in org.apache.hadoop.hbase.regionserver">MetricsTableLatenciesImpl.TableHistograms</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/querymatcher/ScanDeleteTracker.html#deleteTimestamp">deleteTimestamp</a></span> - Variable in class org.apache.hadoop.hbase.regionserver.querymatcher.<a href="org/apache/hadoop/hbase/regionserver/querymatcher/ScanDeleteTracker.html" title="class in org.apache.hadoop.hbase.regionserver.querymatcher">ScanDeleteTracker</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/MetricsConnection.html#deleteTracker">deleteTracker</a></span> - Variable in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/MetricsConnection.html" title="class in org.apache.hadoop.hbase.client">MetricsConnection</a></dt>
@@ -27368,6 +27384,8 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/quotas/SpaceQuotaSnapshot.SpaceQuotaStatus.html#equals-java.lang.Object-">equals(Object)</a></span> - Method in class org.apache.hadoop.hbase.quotas.<a href="org/apache/hadoop/hbase/quotas/SpaceQuotaSnapshot.SpaceQuotaStatus.html" title="class in org.apache.hadoop.hbase.quotas">SpaceQuotaSnapshot.SpaceQuotaStatus</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/compactions/CompactionRequestImpl.html#equals-java.lang.Object-">equals(Object)</a></span> - Method in class org.apache.hadoop.hbase.regionserver.compactions.<a href="org/apache/hadoop/hbase/regionserver/compactions/CompactionRequestImpl.html" title="class in org.apache.hadoop.hbase.regionserver.compactions">CompactionRequestImpl</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/HRegion.html#equals-java.lang.Object-">equals(Object)</a></span> - Method in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/HRegion.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/Leases.Lease.html#equals-java.lang.Object-">equals(Object)</a></span> - Method in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/Leases.Lease.html" title="class in org.apache.hadoop.hbase.regionserver">Leases.Lease</a></dt>
@@ -32913,6 +32931,8 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/MetricsRegionServerSource.html#GET_SIZE_KEY">GET_SIZE_KEY</a></span> - Static variable in interface org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MetricsRegionServerSource.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsRegionServerSource</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/MetricsTableLatencies.html#GET_TIME">GET_TIME</a></span> - Static variable in interface org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MetricsTableLatencies.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsTableLatencies</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/replication/ReplicationEndpoint.Context.html#getAbortable--">getAbortable()</a></span> - Method in class org.apache.hadoop.hbase.replication.<a href="org/apache/hadoop/hbase/replication/ReplicationEndpoint.Context.html" title="class in org.apache.hadoop.hbase.replication">ReplicationEndpoint.Context</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/replication/ReplicationQueuesArguments.html#getAbortable--">getAbortable()</a></span> - Method in class org.apache.hadoop.hbase.replication.<a href="org/apache/hadoop/hbase/replication/ReplicationQueuesArguments.html" title="class in org.apache.hadoop.hbase.replication">ReplicationQueuesArguments</a></dt>
@@ -42682,6 +42702,8 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/assignment/RegionStates.html#getOrCreateServer-org.apache.hadoop.hbase.ServerName-">getOrCreateServer(ServerName)</a></span> - Method in class org.apache.hadoop.hbase.master.assignment.<a href="org/apache/hadoop/hbase/master/assignment/RegionStates.html" title="class in org.apache.hadoop.hbase.master.assignment">RegionStates</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/MetricsTableLatenciesImpl.html#getOrCreateTableHistogram-java.lang.String-">getOrCreateTableHistogram(String)</a></span> - Method in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MetricsTableLatenciesImpl.html" title="class in org.apache.hadoop.hbase.regionserver">MetricsTableLatenciesImpl</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/ColumnFamilyDescriptorBuilder.ModifyableColumnFamilyDescriptor.html#getOrDefault-org.apache.hadoop.hbase.util.Bytes-java.util.function.Function-T-">getOrDefault(Bytes, Function&lt;byte[], T&gt;, T)</a></span> - Method in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/ColumnFamilyDescriptorBuilder.ModifyableColumnFamilyDescriptor.html" title="class in org.apache.hadoop.hbase.client">ColumnFamilyDescriptorBuilder.ModifyableColumnFamilyDescriptor</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/TableDescriptorBuilder.ModifyableTableDescriptor.html#getOrDefault-org.apache.hadoop.hbase.util.Bytes-java.util.function.Function-T-">getOrDefault(Bytes, Function&lt;String, T&gt;, T)</a></span> - Method in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/TableDescriptorBuilder.ModifyableTableDescriptor.html" title="class in org.apache.hadoop.hbase.client">TableDescriptorBuilder.ModifyableTableDescriptor</a></dt>
@@ -49583,6 +49605,8 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/procedure2/ProcedureMetrics.html#getTimeHisto--">getTimeHisto()</a></span> - Method in interface org.apache.hadoop.hbase.procedure2.<a href="org/apache/hadoop/hbase/procedure2/ProcedureMetrics.html" title="interface in org.apache.hadoop.hbase.procedure2">ProcedureMetrics</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/MetricsTableLatenciesImpl.TableHistograms.html#getTimeHisto">getTimeHisto</a></span> - Variable in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MetricsTableLatenciesImpl.TableHistograms.html" title="class in org.apache.hadoop.hbase.regionserver">MetricsTableLatenciesImpl.TableHistograms</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/RSRpcServices.html#getTimeLimit-org.apache.hadoop.hbase.ipc.HBaseRpcController-boolean-">getTimeLimit(HBaseRpcController, boolean)</a></span> - Method in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/RSRpcServices.html" title="class in org.apache.hadoop.hbase.regionserver">RSRpcServices</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/ScannerContext.html#getTimeLimit--">getTimeLimit()</a></span> - Method in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/ScannerContext.html" title="class in org.apache.hadoop.hbase.regionserver">ScannerContext</a></dt>
@@ -52316,6 +52340,8 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/quotas/SpaceQuotaSnapshot.SpaceQuotaStatus.html#hashCode--">hashCode()</a></span> - Method in class org.apache.hadoop.hbase.quotas.<a href="org/apache/hadoop/hbase/quotas/SpaceQuotaSnapshot.SpaceQuotaStatus.html" title="class in org.apache.hadoop.hbase.quotas">SpaceQuotaSnapshot.SpaceQuotaStatus</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/compactions/CompactionRequestImpl.html#hashCode--">hashCode()</a></span> - Method in class org.apache.hadoop.hbase.regionserver.compactions.<a href="org/apache/hadoop/hbase/regionserver/compactions/CompactionRequestImpl.html" title="class in org.apache.hadoop.hbase.regionserver.compactions">CompactionRequestImpl</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/HRegion.html#hashCode--">hashCode()</a></span> - Method in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/HRegion.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/Leases.Lease.html#hashCode--">hashCode()</a></span> - Method in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/Leases.Lease.html" title="class in org.apache.hadoop.hbase.regionserver">Leases.Lease</a></dt>
@@ -54532,6 +54558,8 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/metrics/impl/HistogramImpl.html#HistogramImpl-org.apache.hadoop.hbase.metrics.impl.CounterImpl-org.apache.hadoop.hbase.metrics.impl.FastLongHistogram-">HistogramImpl(CounterImpl, FastLongHistogram)</a></span> - Constructor for class org.apache.hadoop.hbase.metrics.impl.<a href="org/apache/hadoop/hbase/metrics/impl/HistogramImpl.html" title="class in org.apache.hadoop.hbase.metrics.impl">HistogramImpl</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/MetricsTableLatenciesImpl.html#histogramsByTable">histogramsByTable</a></span> - Variable in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MetricsTableLatenciesImpl.html" title="class in org.apache.hadoop.hbase.regionserver">MetricsTableLatenciesImpl</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/metrics2/lib/DynamicMetricsRegistry.html#histogramSuffixes">histogramSuffixes</a></span> - Static variable in class org.apache.hadoop.metrics2.lib.<a href="org/apache/hadoop/metrics2/lib/DynamicMetricsRegistry.html" title="class in org.apache.hadoop.metrics2.lib">DynamicMetricsRegistry</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/backup/impl/BackupCommands.html#HISTORY_CMD_USAGE">HISTORY_CMD_USAGE</a></span> - Static variable in class org.apache.hadoop.hbase.backup.impl.<a href="org/apache/hadoop/hbase/backup/impl/BackupCommands.html" title="class in org.apache.hadoop.hbase.backup.impl">BackupCommands</a></dt>
@@ -56019,6 +56047,8 @@
 &nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/MetricsRegionServerSource.html#INCREMENT_KEY">INCREMENT_KEY</a></span> - Static variable in interface org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MetricsRegionServerSource.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsRegionServerSource</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/MetricsTableLatencies.html#INCREMENT_TIME">INCREMENT_TIME</a></span> - Static variable in interface org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MetricsTableLatencies.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsTableLatencies</a></dt>
+<dd>&nbsp;</dd>
 <dt><a href="org/apache/hadoop/hbase/backup/impl/IncrementalBackupManager.html" title="class in org.apache.hadoop.hbase.backup.impl"><span class="typeNameLink">IncrementalBackupManager</span></a> - Class in <a href="org/apache/hadoop/hbase/backup/impl/package-summary.html">org.apache.hadoop.hbase.backup.impl</a></dt>
 <dd>
 <div class="block">After a full backup was created, the incremental backup will only store the changes made after
@@ -56440,6 +56470,8 @@
 <dd>
 <div class="block">Increment the time by the given amount</div>
 </dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/MetricsTableLatenciesImpl.TableHistograms.html#incrementTimeHisto">incrementTimeHisto</a></span> - Variable in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MetricsTableLatenciesImpl.TableHistograms.html" title="class in org.apache.hadoop.hbase.regionserver">MetricsTableLatenciesImpl.TableHistograms</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/zookeeper/MetricsZooKeeperSource.html#incrementTotalFailedZKCalls--">incrementTotalFailedZKCalls()</a></span> - Method in interface org.apache.hadoop.hbase.zookeeper.<a href="org/apache/hadoop/hbase/zookeeper/MetricsZooKeeperSource.html" title="interface in org.apache.hadoop.hbase.zookeeper">MetricsZooKeeperSource</a></dt>
 <dd>
 <div class="block">Record the total number of failed ZooKeeper API calls.</div>
@@ -62830,6 +62862,8 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/handler/ParallelSeekHandler.html#latch">latch</a></span> - Variable in class org.apache.hadoop.hbase.regionserver.handler.<a href="org/apache/hadoop/hbase/regionserver/handler/ParallelSeekHandler.html" title="class in org.apache.hadoop.hbase.regionserver.handler">ParallelSeekHandler</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/RegionServerTableMetrics.html#latencies">latencies</a></span> - Variable in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/RegionServerTableMetrics.html" title="class in org.apache.hadoop.hbase.regionserver">RegionServerTableMetrics</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/HConstants.html#LATEST_TIMESTAMP">LATEST_TIMESTAMP</a></span> - Static variable in class org.apache.hadoop.hbase.<a href="org/apache/hadoop/hbase/HConstants.html" title="class in org.apache.hadoop.hbase">HConstants</a></dt>
 <dd>
 <div class="block">Timestamp to use when we want to refer to the latest cell.</div>
@@ -69798,6 +69832,10 @@
 <dd>
 <div class="block">The name of the metrics context that metrics will be under.</div>
 </dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/MetricsTableLatencies.html#METRICS_CONTEXT">METRICS_CONTEXT</a></span> - Static variable in interface org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MetricsTableLatencies.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsTableLatencies</a></dt>
+<dd>
+<div class="block">The name of the metrics context that metrics will be under.</div>
+</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/wal/MetricsWALSource.html#METRICS_CONTEXT">METRICS_CONTEXT</a></span> - Static variable in interface org.apache.hadoop.hbase.regionserver.wal.<a href="org/apache/hadoop/hbase/regionserver/wal/MetricsWALSource.html" title="interface in org.apache.hadoop.hbase.regionserver.wal">MetricsWALSource</a></dt>
 <dd>
 <div class="block">The name of the metrics context that metrics will be under.</div>
@@ -69862,6 +69900,10 @@
 <dd>
 <div class="block">Description</div>
 </dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/MetricsTableLatencies.html#METRICS_DESCRIPTION">METRICS_DESCRIPTION</a></span> - Static variable in interface org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MetricsTableLatencies.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsTableLatencies</a></dt>
+<dd>
+<div class="block">Description</div>
+</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/wal/MetricsWALSource.html#METRICS_DESCRIPTION">METRICS_DESCRIPTION</a></span> - Static variable in interface org.apache.hadoop.hbase.regionserver.wal.<a href="org/apache/hadoop/hbase/regionserver/wal/MetricsWALSource.html" title="interface in org.apache.hadoop.hbase.regionserver.wal">MetricsWALSource</a></dt>
 <dd>
 <div class="block">Description</div>
@@ -69926,6 +69968,10 @@
 <dd>
 <div class="block">The name of the metrics context that metrics will be under in jmx</div>
 </dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/MetricsTableLatencies.html#METRICS_JMX_CONTEXT">METRICS_JMX_CONTEXT</a></span> - Static variable in interface org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MetricsTableLatencies.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsTableLatencies</a></dt>
+<dd>
+<div class="block">The name of the metrics context that metrics will be under in jmx</div>
+</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/wal/MetricsWALSource.html#METRICS_JMX_CONTEXT">METRICS_JMX_CONTEXT</a></span> - Static variable in interface org.apache.hadoop.hbase.regionserver.wal.<a href="org/apache/hadoop/hbase/regionserver/wal/MetricsWALSource.html" title="interface in org.apache.hadoop.hbase.regionserver.wal">MetricsWALSource</a></dt>
 <dd>
 <div class="block">The name of the metrics context that metrics will be under in jmx</div>
@@ -69994,6 +70040,10 @@
 <dd>
 <div class="block">The name of the metrics</div>
 </dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/MetricsTableLatencies.html#METRICS_NAME">METRICS_NAME</a></span> - Static variable in interface org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MetricsTableLatencies.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsTableLatencies</a></dt>
+<dd>
+<div class="block">The name of the metrics</div>
+</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/wal/MetricsWALSource.html#METRICS_NAME">METRICS_NAME</a></span> - Static variable in interface org.apache.hadoop.hbase.regionserver.wal.<a href="org/apache/hadoop/hbase/regionserver/wal/MetricsWALSource.html" title="interface in org.apache.hadoop.hbase.regionserver.wal">MetricsWALSource</a></dt>
 <dd>
 <div class="block">The name of the metrics</div>
@@ -70341,9 +70391,9 @@
  This class is for maintaining the various regionserver statistics
  and publishing them through the metrics interfaces.</div>
 </dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html#MetricsRegionServer-org.apache.hadoop.hbase.regionserver.MetricsRegionServerWrapper-">MetricsRegionServer(MetricsRegionServerWrapper)</a></span> - Constructor for class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html" title="class in org.apache.hadoop.hbase.regionserver">MetricsRegionServer</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html#MetricsRegionServer-org.apache.hadoop.hbase.regionserver.MetricsRegionServerWrapper-org.apache.hadoop.conf.Configuration-">MetricsRegionServer(MetricsRegionServerWrapper, Configuration)</a></span> - Constructor for class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html" title="class in org.apache.hadoop.hbase.regionserver">MetricsRegionServer</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html#MetricsRegionServer-org.apache.hadoop.hbase.regionserver.MetricsRegionServerWrapper-org.apache.hadoop.hbase.regionserver.MetricsRegionServerSource-">MetricsRegionServer(MetricsRegionServerWrapper, MetricsRegionServerSource)</a></span> - Constructor for class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html" title="class in org.apache.hadoop.hbase.regionserver">MetricsRegionServer</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html#MetricsRegionServer-org.apache.hadoop.hbase.regionserver.MetricsRegionServerWrapper-org.apache.hadoop.hbase.regionserver.MetricsRegionServerSource-org.apache.hadoop.hbase.regionserver.RegionServerTableMetrics-">MetricsRegionServer(MetricsRegionServerWrapper, MetricsRegionServerSource, RegionServerTableMetrics)</a></span> - Constructor for class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html" title="class in org.apache.hadoop.hbase.regionserver">MetricsRegionServer</a></dt>
 <dd>&nbsp;</dd>
 <dt><a href="org/apache/hadoop/hbase/regionserver/MetricsRegionServerQuotaSource.html" title="interface in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">MetricsRegionServerQuotaSource</span></a> - Interface in <a href="org/apache/hadoop/hbase/regionserver/package-summary.html">org.apache.hadoop.hbase.regionserver</a></dt>
 <dd>
@@ -70549,6 +70599,21 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/MetricsTableAggregateSourceImpl.html#MetricsTableAggregateSourceImpl-java.lang.String-java.lang.String-java.lang.String-java.lang.String-">MetricsTableAggregateSourceImpl(String, String, String, String)</a></span> - Constructor for class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MetricsTableAggregateSourceImpl.html" title="class in org.apache.hadoop.hbase.regionserver">MetricsTableAggregateSourceImpl</a></dt>
 <dd>&nbsp;</dd>
+<dt><a href="org/apache/hadoop/hbase/regionserver/MetricsTableLatencies.html" title="interface in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">MetricsTableLatencies</span></a> - Interface in <a href="org/apache/hadoop/hbase/regionserver/package-summary.html">org.apache.hadoop.hbase.regionserver</a></dt>
+<dd>
+<div class="block">Latency metrics for a specific table in a RegionServer.</div>
+</dd>
+<dt><a href="org/apache/hadoop/hbase/regionserver/MetricsTableLatenciesImpl.html" title="class in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">MetricsTableLatenciesImpl</span></a> - Class in <a href="org/apache/hadoop/hbase/regionserver/package-summary.html">org.apache.hadoop.hbase.regionserver</a></dt>
+<dd>
+<div class="block">Implementation of <a href="org/apache/hadoop/hbase/regionserver/MetricsTableLatencies.html" title="interface in org.apache.hadoop.hbase.regionserver"><code>MetricsTableLatencies</code></a> to track latencies for one table in a
+ RegionServer.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/MetricsTableLatenciesImpl.html#MetricsTableLatenciesImpl--">MetricsTableLatenciesImpl()</a></span> - Constructor for class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MetricsTableLatenciesImpl.html" title="class in org.apache.hadoop.hbase.regionserver">MetricsTableLatenciesImpl</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/MetricsTableLatenciesImpl.html#MetricsTableLatenciesImpl-java.lang.String-java.lang.String-java.lang.String-java.lang.String-">MetricsTableLatenciesImpl(String, String, String, String)</a></span> - Constructor for class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MetricsTableLatenciesImpl.html" title="class in org.apache.hadoop.hbase.regionserver">MetricsTableLatenciesImpl</a></dt>
+<dd>&nbsp;</dd>
+<dt><a href="org/apache/hadoop/hbase/regionserver/MetricsTableLatenciesImpl.TableHistograms.html" title="class in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">MetricsTableLatenciesImpl.TableHistograms</span></a> - Class in <a href="org/apache/hadoop/hbase/regionserver/package-summary.html">org.apache.hadoop.hbase.regionserver</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregateImpl.html#metricsTableMap">metricsTableMap</a></span> - Variable in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregateImpl.html" title="class in org.apache.hadoop.hbase.regionserver">MetricsTableWrapperAggregateImpl</a></dt>
 <dd>&nbsp;</dd>
 <dt><a href="org/apache/hadoop/hbase/regionserver/MetricsTableSource.html" title="interface in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">MetricsTableSource</span></a> - Interface in <a href="org/apache/hadoop/hbase/regionserver/package-summary.html">org.apache.hadoop.hbase.regionserver</a></dt>
@@ -82243,10 +82308,14 @@ service.</div>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/MetricsRegionServerSource.html#PUT_BATCH_KEY">PUT_BATCH_KEY</a></span> - Static variable in interface org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MetricsRegionServerSource.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsRegionServerSource</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/MetricsTableLatencies.html#PUT_BATCH_TIME">PUT_BATCH_TIME</a></span> - Static variable in interface org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MetricsTableLatencies.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsTableLatencies</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/MetricsRegionServerSource.html#PUT_KEY">PUT_KEY</a></span> - Static variable in interface org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MetricsRegionServerSource.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsRegionServerSource</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/util/ByteBufferArray.html#PUT_MULTIPLE_VISITOR">PUT_MULTIPLE_VISITOR</a></span> - Static variable in class org.apache.hadoop.hbase.util.<a href="org/apache/hadoop/hbase/util/ByteBufferArray.html" title="class in org.apache.hadoop.hbase.util">ByteBufferArray</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/MetricsTableLatencies.html#PUT_TIME">PUT_TIME</a></span> - Static variable in interface org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MetricsTableLatencies.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsTableLatencies</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/AsyncTable.html#putAll-java.util.List-">putAll(List&lt;Put&gt;)</a></span> - Method in interface org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/AsyncTable.html" title="interface in org.apache.hadoop.hbase.client">AsyncTable</a></dt>
 <dd>
 <div class="block">A simple version of batch put.</div>
@@ -82282,6 +82351,8 @@ service.</div>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.html#putBatchHisto">putBatchHisto</a></span> - Variable in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.html" title="class in org.apache.hadoop.hbase.regionserver">MetricsRegionServerSourceImpl</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/MetricsTableLatenciesImpl.TableHistograms.html#putBatchTimeHisto">putBatchTimeHisto</a></span> - Variable in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MetricsTableLatenciesImpl.TableHistograms.html" title="class in org.apache.hadoop.hbase.regionserver">MetricsTableLatenciesImpl.TableHistograms</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/util/Bytes.html#putBigDecimal-byte:A-int-java.math.BigDecimal-">putBigDecimal(byte[], int, BigDecimal)</a></span> - Static method in class org.apache.hadoop.hbase.util.<a href="org/apache/hadoop/hbase/util/Bytes.html" title="class in org.apache.hadoop.hbase.util">Bytes</a></dt>
 <dd>
 <div class="block">Put a BigDecimal value out to the specified byte array position.</div>
@@ -82562,6 +82633,8 @@ service.</div>
 <dd>
 <div class="block">Put the passed <code>ps</code> to the <code>hbase:meta</code> table.</div>
 </dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/MetricsTableLatenciesImpl.TableHistograms.html#putTimeHisto">putTimeHisto</a></span> - Variable in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MetricsTableLatenciesImpl.TableHistograms.html" title="class in org.apache.hadoop.hbase.regionserver">MetricsTableLatenciesImpl.TableHistograms</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/MetaTableAccessor.html#putToMetaTable-org.apache.hadoop.hbase.client.Connection-org.apache.hadoop.hbase.client.Put...-">putToMetaTable(Connection, Put...)</a></span> - Static method in class org.apache.hadoop.hbase.<a href="org/apache/hadoop/hbase/MetaTableAccessor.html" title="class in org.apache.hadoop.hbase">MetaTableAccessor</a></dt>
 <dd>
 <div class="block">Put the passed <code>puts</code> to the <code>hbase:meta</code> table.</div>
@@ -82758,6 +82831,8 @@ service.</div>
 &nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/mapreduce/ImportTsv.TsvParser.html#qualifiers">qualifiers</a></span> - Variable in class org.apache.hadoop.hbase.mapreduce.<a href="org/apache/hadoop/hbase/mapreduce/ImportTsv.TsvParser.html" title="class in org.apache.hadoop.hbase.mapreduce">ImportTsv.TsvParser</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/MetricsTableLatenciesImpl.html#qualifyMetricsName-org.apache.hadoop.hbase.TableName-java.lang.String-">qualifyMetricsName(TableName, String)</a></span> - Static method in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MetricsTableLatenciesImpl.html" title="class in org.apache.hadoop.hbase.regionserver">MetricsTableLatenciesImpl</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/security/SaslUtil.QualityOfProtection.html#QualityOfProtection-java.lang.String-">QualityOfProtection(String)</a></span> - Constructor for enum org.apache.hadoop.hbase.security.<a href="org/apache/hadoop/hbase/security/SaslUtil.QualityOfProtection.html" title="enum in org.apache.hadoop.hbase.security">SaslUtil.QualityOfProtection</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/util/RowColBloomHashKey.html#qualLength">qualLength</a></span> - Variable in class org.apache.hadoop.hbase.util.<a href="org/apache/hadoop/hbase/util/RowColBloomHashKey.html" title="class in org.apache.hadoop.hbase.util">RowColBloomHashKey</a></dt>
@@ -86139,6 +86214,12 @@ service.</div>
 </dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/RegionServerStoppedException.html#RegionServerStoppedException-java.lang.String-">RegionServerStoppedException(String)</a></span> - Constructor for exception org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/RegionServerStoppedException.html" title="class in org.apache.hadoop.hbase.regionserver">RegionServerStoppedException</a></dt>
 <dd>&nbsp;</dd>
+<dt><a href="org/apache/hadoop/hbase/regionserver/RegionServerTableMetrics.html" title="class in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">RegionServerTableMetrics</span></a> - Class in <a href="org/apache/hadoop/hbase/regionserver/package-summary.html">org.apache.hadoop.hbase.regionserver</a></dt>
+<dd>
+<div class="block">Captures operation metrics by table.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/RegionServerTableMetrics.html#RegionServerTableMetrics--">RegionServerTableMetrics()</a></span> - Constructor for class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/RegionServerTableMetrics.html" title="class in org.apache.hadoop.hbase.regionserver">RegionServerTableMetrics</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/tool/Canary.RegionServerTask.html#RegionServerTask-org.apache.hadoop.hbase.client.Connection-java.lang.String-org.apache.hadoop.hbase.client.RegionInfo-org.apache.hadoop.hbase.tool.Canary.RegionServerStdOutSink-java.util.concurrent.atomic.AtomicLong-">RegionServerTask(Connection, String, RegionInfo, Canary.RegionServerStdOutSink, AtomicLong)</a></span> - Constructor for class org.apache.hadoop.hbase.tool.<a href="org/apache/hadoop/hbase/tool/Canary.RegionServerTask.html" title="class in org.apache.hadoop.hbase.tool">Canary.RegionServerTask</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/util/JVMClusterUtil.RegionServerThread.html#RegionServerThread-org.apache.hadoop.hbase.regionserver.HRegionServer-int-">RegionServerThread(HRegionServer, int)</a></span> - Constructor for class org.apache.hadoop.hbase.util.<a href="org/apache/hadoop/hbase/util/JVMClusterUtil.RegionServerThread.html" title="class in org.apache.hadoop.hbase.util">JVMClusterUtil.RegionServerThread</a></dt>
@@ -91907,6 +91988,10 @@ service.</div>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/coprocessor/MetricsCoprocessor.html#RS_COPROC_METRICS_NAME">RS_COPROC_METRICS_NAME</a></span> - Static variable in class org.apache.hadoop.hbase.coprocessor.<a href="org/apache/hadoop/hbase/coprocessor/MetricsCoprocessor.html" title="class in org.apache.hadoop.hbase.coprocessor">MetricsCoprocessor</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html#RS_ENABLE_TABLE_METRICS_DEFAULT">RS_ENABLE_TABLE_METRICS_DEFAULT</a></span> - Static variable in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html" title="class in org.apache.hadoop.hbase.regionserver">MetricsRegionServer</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html#RS_ENABLE_TABLE_METRICS_KEY">RS_ENABLE_TABLE_METRICS_KEY</a></span> - Static variable in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html" title="class in org.apache.hadoop.hbase.regionserver">MetricsRegionServer</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/HRegionServer.html#RS_HOSTNAME_DISABLE_MASTER_REVERSEDNS_KEY">RS_HOSTNAME_DISABLE_MASTER_REVERSEDNS_KEY</a></span> - Static variable in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/HRegionServer.html" title="class in org.apache.hadoop.hbase.regionserver">HRegionServer</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/HRegionServer.html#RS_HOSTNAME_KEY">RS_HOSTNAME_KEY</a></span> - Static variable in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/HRegionServer.html" title="class in org.apache.hadoop.hbase.regionserver">HRegionServer</a></dt>
@@ -93063,12 +93148,16 @@ service.</div>
 <dd>
 <div class="block">Scan stop row</div>
 </dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/MetricsTableLatencies.html#SCAN_SIZE">SCAN_SIZE</a></span> - Static variable in interface org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MetricsTableLatencies.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsTableLatencies</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/MetricsRegionServerSource.html#SCAN_SIZE_KEY">SCAN_SIZE_KEY</a></span> - Static variable in interface org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MetricsRegionServerSource.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsRegionServerSource</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/rest/Constants.html#SCAN_START_ROW">SCAN_START_ROW</a></span> - Static variable in interface org.apache.hadoop.hbase.rest.<a href="org/apache/hadoop/hbase/rest/Constants.html" title="interface in org.apache.hadoop.hbase.rest">Constants</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/rest/Constants.html#SCAN_START_TIME">SCAN_START_TIME</a></span> - Static variable in interface org.apache.hadoop.hbase.rest.<a href="org/apache/hadoop/hbase/rest/Constants.html" title="interface in org.apache.hadoop.hbase.rest">Constants</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/MetricsTableLatencies.html#SCAN_TIME">SCAN_TIME</a></span> - Static variable in interface org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MetricsTableLatencies.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsTableLatencies</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/MetricsRegionServerSource.html#SCAN_TIME_KEY">SCAN_TIME_KEY</a></span> - Static variable in interface org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MetricsRegionServerSource.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsRegionServerSource</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/mapreduce/TableInputFormat.html#SCAN_TIMERANGE_END">SCAN_TIMERANGE_END</a></span> - Static variable in class org.apache.hadoop.hbase.mapreduce.<a href="org/apache/hadoop/hbase/mapreduce/TableInputFormat.html" title="class in org.apache.hadoop.hbase.mapreduce">TableInputFormat</a></dt>
@@ -93488,8 +93577,12 @@ service.</div>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.html#scanSizeHisto">scanSizeHisto</a></span> - Variable in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.html" title="class in org.apache.hadoop.hbase.regionserver">MetricsRegionServerSourceImpl</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/MetricsTableLatenciesImpl.TableHistograms.html#scanSizeHisto">scanSizeHisto</a></span> - Variable in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MetricsTableLatenciesImpl.TableHistograms.html" title="class in org.apache.hadoop.hbase.regionserver">MetricsTableLatenciesImpl.TableHistograms</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.html#scanTimeHisto">scanTimeHisto</a></span> - Variable in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.html" title="class in org.apache.hadoop.hbase.regionserver">MetricsRegionServerSourceImpl</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/MetricsTableLatenciesImpl.TableHistograms.html#scanTimeHisto">scanTimeHisto</a></span> - Variable in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MetricsTableLatenciesImpl.TableHistograms.html" title="class in org.apache.hadoop.hbase.regionserver">MetricsTableLatenciesImpl.TableHistograms</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/AsyncRpcRetryingCallerFactory.ScanSingleRegionCallerBuilder.html#scanTimeout-long-java.util.concurrent.TimeUnit-">scanTimeout(long, TimeUnit)</a></span> - Method in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/AsyncRpcRetryingCallerFactory.ScanSingleRegionCallerBuilder.html" title="class in org.apache.hadoop.hbase.client">AsyncRpcRetryingCallerFactory.ScanSingleRegionCallerBuilder</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/client/AsyncClientScanner.html#scanTimeoutNs">scanTimeoutNs</a></span> - Variable in class org.apache.hadoop.hbase.client.<a href="org/apache/hadoop/hbase/client/AsyncClientScanner.html" title="class in org.apache.hadoop.hbase.client">AsyncClientScanner</a></dt>
@@ -105934,6 +106027,8 @@ service.</div>
 </dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/backup/example/TableHFileArchiveTracker.html#TableHFileArchiveTracker-org.apache.hadoop.hbase.zookeeper.ZKWatcher-org.apache.hadoop.hbase.backup.example.HFileArchiveTableMonitor-">TableHFileArchiveTracker(ZKWatcher, HFileArchiveTableMonitor)</a></span> - Constructor for class org.apache.hadoop.hbase.backup.example.<a href="org/apache/hadoop/hbase/backup/example/TableHFileArchiveTracker.html" title="class in org.apache.hadoop.hbase.backup.example">TableHFileArchiveTracker</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/MetricsTableLatenciesImpl.TableHistograms.html#TableHistograms-org.apache.hadoop.metrics2.lib.DynamicMetricsRegistry-org.apache.hadoop.hbase.TableName-">TableHistograms(DynamicMetricsRegistry, TableName)</a></span> - Constructor for class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MetricsTableLatenciesImpl.TableHistograms.html" title="class in org.apache.hadoop.hbase.regionserver">MetricsTableLatenciesImpl.TableHistograms</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/mapreduce/HFileOutputFormat2.TableInfo.html#TableInfo-org.apache.hadoop.hbase.client.TableDescriptor-org.apache.hadoop.hbase.client.RegionLocator-">TableInfo(TableDescriptor, RegionLocator)</a></span> - Constructor for class org.apache.hadoop.hbase.mapreduce.<a href="org/apache/hadoop/hbase/mapreduce/HFileOutputFormat2.TableInfo.html" title="class in org.apache.hadoop.hbase.mapreduce">HFileOutputFormat2.TableInfo</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/util/HBaseFsck.TableInfo.html#TableInfo-org.apache.hadoop.hbase.TableName-">TableInfo(TableName)</a></span> - Constructor for class org.apache.hadoop.hbase.util.<a href="org/apache/hadoop/hbase/util/HBaseFsck.TableInfo.html" title="class in org.apache.hadoop.hbase.util">HBaseFsck.TableInfo</a></dt>
@@ -106070,6 +106165,8 @@ service.</div>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/ScanInfo.html#tableMaxRowSize">tableMaxRowSize</a></span> - Variable in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/ScanInfo.html" title="class in org.apache.hadoop.hbase.regionserver">ScanInfo</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html#tableMetrics">tableMetrics</a></span> - Variable in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html" title="class in org.apache.hadoop.hbase.regionserver">MetricsRegionServer</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregateImpl.html#tableMetricsUpdateTask">tableMetricsUpdateTask</a></span> - Variable in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregateImpl.html" title="class in org.apache.hadoop.hbase.regionserver">MetricsTableWrapperAggregateImpl</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregateImpl.TableMetricsWrapperRunnable.html#TableMetricsWrapperRunnable--">TableMetricsWrapperRunnable()</a></span> - Constructor for class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregateImpl.TableMetricsWrapperRunnable.html" title="class in org.apache.hadoop.hbase.regionserver">MetricsTableWrapperAggregateImpl.TableMetricsWrapperRunnable</a></dt>
@@ -111264,7 +111361,7 @@ service.</div>
 </dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/MetricsRegion.html#updateAppend--">updateAppend()</a></span> - Method in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MetricsRegion.html" title="class in org.apache.hadoop.hbase.regionserver">MetricsRegion</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html#updateAppend-long-">updateAppend(long)</a></span> - Method in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html" title="class in org.apache.hadoop.hbase.regionserver">MetricsRegionServer</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html#updateAppend-org.apache.hadoop.hbase.TableName-long-">updateAppend(TableName, long)</a></span> - Method in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html" title="class in org.apache.hadoop.hbase.regionserver">MetricsRegionServer</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/MetricsRegionServerSource.html#updateAppend-long-">updateAppend(long)</a></span> - Method in interface org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MetricsRegionServerSource.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsRegionServerSource</a></dt>
 <dd>
@@ -111278,6 +111375,16 @@ service.</div>
 </dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/MetricsRegionSourceImpl.html#updateAppend--">updateAppend()</a></span> - Method in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MetricsRegionSourceImpl.html" title="class in org.apache.hadoop.hbase.regionserver">MetricsRegionSourceImpl</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/MetricsTableLatencies.html#updateAppend-java.lang.String-long-">updateAppend(String, long)</a></span> - Method in interface org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MetricsTableLatencies.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsTableLatencies</a></dt>
+<dd>
+<div class="block">Update the Append time histogram.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/MetricsTableLatenciesImpl.TableHistograms.html#updateAppend-long-">updateAppend(long)</a></span> - Method in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MetricsTableLatenciesImpl.TableHistograms.html" title="class in org.apache.hadoop.hbase.regionserver">MetricsTableLatenciesImpl.TableHistograms</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/MetricsTableLatenciesImpl.html#updateAppend-java.lang.String-long-">updateAppend(String, long)</a></span> - Method in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MetricsTableLatenciesImpl.html" title="class in org.apache.hadoop.hbase.regionserver">MetricsTableLatenciesImpl</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/RegionServerTableMetrics.html#updateAppend-org.apache.hadoop.hbase.TableName-long-">updateAppend(TableName, long)</a></span> - Method in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/RegionServerTableMetrics.html" title="class in org.apache.hadoop.hbase.regionserver">RegionServerTableMetrics</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/RegionPlacementMaintainer.html#updateAssignmentPlan-org.apache.hadoop.hbase.favored.FavoredNodesPlan-">updateAssignmentPlan(FavoredNodesPlan)</a></span> - Method in class org.apache.hadoop.hbase.master.<a href="org/apache/hadoop/hbase/master/RegionPlacementMaintainer.html" title="class in org.apache.hadoop.hbase.master">RegionPlacementMaintainer</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/RegionPlacementMaintainer.html#updateAssignmentPlanToMeta-org.apache.hadoop.hbase.favored.FavoredNodesPlan-">updateAssignmentPlanToMeta(FavoredNodesPlan)</a></span> - Method in class org.apache.hadoop.hbase.master.<a href="org/apache/hadoop/hbase/master/RegionPlacementMaintainer.html" title="class in org.apache.hadoop.hbase.master">RegionPlacementMaintainer</a></dt>
@@ -111512,7 +111619,7 @@ service.</div>
 </dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/MetricsRegion.html#updateDelete--">updateDelete()</a></span> - Method in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MetricsRegion.html" title="class in org.apache.hadoop.hbase.regionserver">MetricsRegion</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html#updateDelete-long-">updateDelete(long)</a></span> - Method in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html" title="class in org.apache.hadoop.hbase.regionserver">MetricsRegionServer</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html#updateDelete-org.apache.hadoop.hbase.TableName-long-">updateDelete(TableName, long)</a></span> - Method in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html" title="class in org.apache.hadoop.hbase.regionserver">MetricsRegionServer</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/MetricsRegionServerSource.html#updateDelete-long-">updateDelete(long)</a></span> - Method in interface org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MetricsRegionServerSource.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsRegionServerSource</a></dt>
 <dd>
@@ -111526,7 +111633,17 @@ service.</div>
 </dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/MetricsRegionSourceImpl.html#updateDelete--">updateDelete()</a></span> - Method in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MetricsRegionSourceImpl.html" title="class in org.apache.hadoop.hbase.regionserver">MetricsRegionSourceImpl</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html#updateDeleteBatch-long-">updateDeleteBatch(long)</a></span> - Method in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html" title="class in org.apache.hadoop.hbase.regionserver">MetricsRegionServer</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/MetricsTableLatencies.html#updateDelete-java.lang.String-long-">updateDelete(String, long)</a></span> - Method in interface org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MetricsTableLatencies.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsTableLatencies</a></dt>
+<dd>
+<div class="block">Update the Delete time histogram</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/MetricsTableLatenciesImpl.TableHistograms.html#updateDelete-long-">updateDelete(long)</a></span> - Method in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MetricsTableLatenciesImpl.TableHistograms.html" title="class in org.apache.hadoop.hbase.regionserver">MetricsTableLatenciesImpl.TableHistograms</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/MetricsTableLatenciesImpl.html#updateDelete-java.lang.String-long-">updateDelete(String, long)</a></span> - Method in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MetricsTableLatenciesImpl.html" title="class in org.apache.hadoop.hbase.regionserver">MetricsTableLatenciesImpl</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/RegionServerTableMetrics.html#updateDelete-org.apache.hadoop.hbase.TableName-long-">updateDelete(TableName, long)</a></span> - Method in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/RegionServerTableMetrics.html" title="class in org.apache.hadoop.hbase.regionserver">RegionServerTableMetrics</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html#updateDeleteBatch-org.apache.hadoop.hbase.TableName-long-">updateDeleteBatch(TableName, long)</a></span> - Method in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html" title="class in org.apache.hadoop.hbase.regionserver">MetricsRegionServer</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/MetricsRegionServerSource.html#updateDeleteBatch-long-">updateDeleteBatch(long)</a></span> - Method in interface org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MetricsRegionServerSource.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsRegionServerSource</a></dt>
 <dd>
@@ -111534,6 +111651,16 @@ service.</div>
 </dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.html#updateDeleteBatch-long-">updateDeleteBatch(long)</a></span> - Method in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.html" title="class in org.apache.hadoop.hbase.regionserver">MetricsRegionServerSourceImpl</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/MetricsTableLatencies.html#updateDeleteBatch-java.lang.String-long-">updateDeleteBatch(String, long)</a></span> - Method in interface org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MetricsTableLatencies.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsTableLatencies</a></dt>
+<dd>
+<div class="block">Update the batch Delete time histogram</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/MetricsTableLatenciesImpl.TableHistograms.html#updateDeleteBatch-long-">updateDeleteBatch(long)</a></span> - Method in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MetricsTableLatenciesImpl.TableHistograms.html" title="class in org.apache.hadoop.hbase.regionserver">MetricsTableLatenciesImpl.TableHistograms</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/MetricsTableLatenciesImpl.html#updateDeleteBatch-java.lang.String-long-">updateDeleteBatch(String, long)</a></span> - Method in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MetricsTableLatenciesImpl.html" title="class in org.apache.hadoop.hbase.regionserver">MetricsTableLatenciesImpl</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/RegionServerTableMetrics.html#updateDeleteBatch-org.apache.hadoop.hbase.TableName-long-">updateDeleteBatch(TableName, long)</a></span> - Method in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/RegionServerTableMetrics.html" title="class in org.apache.hadoop.hbase.regionserver">RegionServerTableMetrics</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/HRegion.html#updateDeleteLatestVersionTimeStamp-org.apache.hadoop.hbase.Cell-org.apache.hadoop.hbase.client.Get-int-byte:A-">updateDeleteLatestVersionTimeStamp(Cell, Get, int, byte[])</a></span> - Method in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/HRegion.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/zookeeper/ZKUtil.html#updateExistingNodeData-org.apache.hadoop.hbase.zookeeper.ZKWatcher-java.lang.String-byte:A-int-">updateExistingNodeData(ZKWatcher, String, byte[], int)</a></span> - Static method in class org.apache.hadoop.hbase.zookeeper.<a href="org/apache/hadoop/hbase/zookeeper/ZKUtil.html" title="class in org.apache.hadoop.hbase.zookeeper">ZKUtil</a></dt>
@@ -111617,7 +111744,7 @@ service.</div>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/MetricsRegion.html#updateGet-long-">updateGet(long)</a></span> - Method in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MetricsRegion.html" title="class in org.apache.hadoop.hbase.regionserver">MetricsRegion</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html#updateGet-long-">updateGet(long)</a></span> - Method in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html" title="class in org.apache.hadoop.hbase.regionserver">MetricsRegionServer</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html#updateGet-org.apache.hadoop.hbase.TableName-long-">updateGet(TableName, long)</a></span> - Method in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html" title="class in org.apache.hadoop.hbase.regionserver">MetricsRegionServer</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/MetricsRegionServerSource.html#updateGet-long-">updateGet(long)</a></span> - Method in interface org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MetricsRegionServerSource.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsRegionServerSource</a></dt>
 <dd>
@@ -111631,6 +111758,16 @@ service.</div>
 </dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/MetricsRegionSourceImpl.html#updateGet-long-">updateGet(long)</a></span> - Method in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MetricsRegionSourceImpl.html" title="class in org.apache.hadoop.hbase.regionserver">MetricsRegionSourceImpl</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/MetricsTableLatencies.html#updateGet-java.lang.String-long-">updateGet(String, long)</a></span> - Method in interface org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MetricsTableLatencies.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsTableLatencies</a></dt>
+<dd>
+<div class="block">Update the Get time histogram .</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/MetricsTableLatenciesImpl.TableHistograms.html#updateGet-long-">updateGet(long)</a></span> - Method in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MetricsTableLatenciesImpl.TableHistograms.html" title="class in org.apache.hadoop.hbase.regionserver">MetricsTableLatenciesImpl.TableHistograms</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/MetricsTableLatenciesImpl.html#updateGet-java.lang.String-long-">updateGet(String, long)</a></span> - Method in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MetricsTableLatenciesImpl.html" title="class in org.apache.hadoop.hbase.regionserver">MetricsTableLatenciesImpl</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/RegionServerTableMetrics.html#updateGet-org.apache.hadoop.hbase.TableName-long-">updateGet(TableName, long)</a></span> - Method in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/RegionServerTableMetrics.html" title="class in org.apache.hadoop.hbase.regionserver">RegionServerTableMetrics</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/security/access/TableAuthManager.html#updateGlobalCache-org.apache.hadoop.hbase.shaded.com.google.common.collect.ListMultimap-">updateGlobalCache(ListMultimap&lt;String, TablePermission&gt;)</a></span> - Method in class org.apache.hadoop.hbase.security.access.<a href="org/apache/hadoop/hbase/security/access/TableAuthManager.html" title="class in org.apache.hadoop.hbase.security.access">TableAuthManager</a></dt>
 <dd>
 <div class="block">Updates the internal global permissions cache</div>
@@ -111655,7 +111792,7 @@ service.</div>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/MetricsRegion.html#updateIncrement--">updateIncrement()</a></span> - Method in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MetricsRegion.html" title="class in org.apache.hadoop.hbase.regionserver">MetricsRegion</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html#updateIncrement-long-">updateIncrement(long)</a></span> - Method in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html" title="class in org.apache.hadoop.hbase.regionserver">MetricsRegionServer</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html#updateIncrement-org.apache.hadoop.hbase.TableName-long-">updateIncrement(TableName, long)</a></span> - Method in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html" title="class in org.apache.hadoop.hbase.regionserver">MetricsRegionServer</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/MetricsRegionServerSource.html#updateIncrement-long-">updateIncrement(long)</a></span> - Method in interface org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MetricsRegionServerSource.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsRegionServerSource</a></dt>
 <dd>
@@ -111669,6 +111806,16 @@ service.</div>
 </dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/MetricsRegionSourceImpl.html#updateIncrement--">updateIncrement()</a></span> - Method in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MetricsRegionSourceImpl.html" title="class in org.apache.hadoop.hbase.regionserver">MetricsRegionSourceImpl</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/MetricsTableLatencies.html#updateIncrement-java.lang.String-long-">updateIncrement(String, long)</a></span> - Method in interface org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MetricsTableLatencies.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsTableLatencies</a></dt>
+<dd>
+<div class="block">Update the Increment time histogram.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/MetricsTableLatenciesImpl.TableHistograms.html#updateIncrement-long-">updateIncrement(long)</a></span> - Method in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MetricsTableLatenciesImpl.TableHistograms.html" title="class in org.apache.hadoop.hbase.regionserver">MetricsTableLatenciesImpl.TableHistograms</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/MetricsTableLatenciesImpl.html#updateIncrement-java.lang.String-long-">updateIncrement(String, long)</a></span> - Method in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MetricsTableLatenciesImpl.html" title="class in org.apache.hadoop.hbase.regionserver">MetricsTableLatenciesImpl</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/RegionServerTableMetrics.html#updateIncrement-org.apache.hadoop.hbase.TableName-long-">updateIncrement(TableName, long)</a></span> - Method in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/RegionServerTableMetrics.html" title="class in org.apache.hadoop.hbase.regionserver">RegionServerTableMetrics</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/security/token/ZKSecretWatcher.html#updateKeyInZK-org.apache.hadoop.hbase.security.token.AuthenticationKey-">updateKeyInZK(AuthenticationKey)</a></span> - Method in class org.apache.hadoop.hbase.security.token.<a href="org/apache/hadoop/hbase/security/token/ZKSecretWatcher.html" title="class in org.apache.hadoop.hbase.security.token">ZKSecretWatcher</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/master/ServerManager.html#updateLastFlushedSequenceIds-org.apache.hadoop.hbase.ServerName-org.apache.hadoop.hbase.ServerLoad-">updateLastFlushedSequenceIds(ServerName, ServerLoad)</a></span> - Method in class org.apache.hadoop.hbase.master.<a href="org/apache/hadoop/hbase/master/ServerManager.html" title="class in org.apache.hadoop.hbase.master">ServerManager</a></dt>
@@ -111948,7 +112095,7 @@ service.</div>
 </dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/MetricsRegion.html#updatePut--">updatePut()</a></span> - Method in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MetricsRegion.html" title="class in org.apache.hadoop.hbase.regionserver">MetricsRegion</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html#updatePut-long-">updatePut(long)</a></span> - Method in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html" title="class in org.apache.hadoop.hbase.regionserver">MetricsRegionServer</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html#updatePut-org.apache.hadoop.hbase.TableName-long-">updatePut(TableName, long)</a></span> - Method in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html" title="class in org.apache.hadoop.hbase.regionserver">MetricsRegionServer</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/MetricsRegionServerSource.html#updatePut-long-">updatePut(long)</a></span> - Method in interface org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MetricsRegionServerSource.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsRegionServerSource</a></dt>
 <dd>
@@ -111962,7 +112109,17 @@ service.</div>
 </dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/MetricsRegionSourceImpl.html#updatePut--">updatePut()</a></span> - Method in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MetricsRegionSourceImpl.html" title="class in org.apache.hadoop.hbase.regionserver">MetricsRegionSourceImpl</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html#updatePutBatch-long-">updatePutBatch(long)</a></span> - Method in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html" title="class in org.apache.hadoop.hbase.regionserver">MetricsRegionServer</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/MetricsTableLatencies.html#updatePut-java.lang.String-long-">updatePut(String, long)</a></span> - Method in interface org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MetricsTableLatencies.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsTableLatencies</a></dt>
+<dd>
+<div class="block">Update the Put time histogram</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/MetricsTableLatenciesImpl.TableHistograms.html#updatePut-long-">updatePut(long)</a></span> - Method in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MetricsTableLatenciesImpl.TableHistograms.html" title="class in org.apache.hadoop.hbase.regionserver">MetricsTableLatenciesImpl.TableHistograms</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/MetricsTableLatenciesImpl.html#updatePut-java.lang.String-long-">updatePut(String, long)</a></span> - Method in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MetricsTableLatenciesImpl.html" title="class in org.apache.hadoop.hbase.regionserver">MetricsTableLatenciesImpl</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/RegionServerTableMetrics.html#updatePut-org.apache.hadoop.hbase.TableName-long-">updatePut(TableName, long)</a></span> - Method in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/RegionServerTableMetrics.html" title="class in org.apache.hadoop.hbase.regionserver">RegionServerTableMetrics</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html#updatePutBatch-org.apache.hadoop.hbase.TableName-long-">updatePutBatch(TableName, long)</a></span> - Method in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html" title="class in org.apache.hadoop.hbase.regionserver">MetricsRegionServer</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/MetricsRegionServerSource.html#updatePutBatch-long-">updatePutBatch(long)</a></span> - Method in interface org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MetricsRegionServerSource.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsRegionServerSource</a></dt>
 <dd>
@@ -111970,6 +112127,16 @@ service.</div>
 </dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.html#updatePutBatch-long-">updatePutBatch(long)</a></span> - Method in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.html" title="class in org.apache.hadoop.hbase.regionserver">MetricsRegionServerSourceImpl</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/MetricsTableLatencies.html#updatePutBatch-java.lang.String-long-">updatePutBatch(String, long)</a></span> - Method in interface org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MetricsTableLatencies.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsTableLatencies</a></dt>
+<dd>
+<div class="block">Update the batch Put time histogram</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/MetricsTableLatenciesImpl.TableHistograms.html#updatePutBatch-long-">updatePutBatch(long)</a></span> - Method in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MetricsTableLatenciesImpl.TableHistograms.html" title="class in org.apache.hadoop.hbase.regionserver">MetricsTableLatenciesImpl.TableHistograms</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/MetricsTableLatenciesImpl.html#updatePutBatch-java.lang.String-long-">updatePutBatch(String, long)</a></span> - Method in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MetricsTableLatenciesImpl.html" title="class in org.apache.hadoop.hbase.regionserver">MetricsTableLatenciesImpl</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/RegionServerTableMetrics.html#updatePutBatch-org.apache.hadoop.hbase.TableName-long-">updatePutBatch(TableName, long)</a></span> - Method in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/RegionServerTableMetrics.html" title="class in org.apache.hadoop.hbase.regionserver">RegionServerTableMetrics</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/namespace/NamespaceAuditor.html#updateQuotaForRegionMerge-org.apache.hadoop.hbase.client.RegionInfo-">updateQuotaForRegionMerge(RegionInfo)</a></span> - Method in class org.apache.hadoop.hbase.namespace.<a href="org/apache/hadoop/hbase/namespace/NamespaceAuditor.html" title="class in org.apache.hadoop.hbase.namespace">NamespaceAuditor</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/quotas/RegionServerSpaceQuotaManager.html#updateQuotaSnapshot-java.util.Map-">updateQuotaSnapshot(Map&lt;TableName, SpaceQuotaSnapshot&gt;)</a></span> - Method in class org.apache.hadoop.hbase.quotas.<a href="org/apache/hadoop/hbase/quotas/RegionServerSpaceQuotaManager.html" title="class in org.apache.hadoop.hbase.quotas">RegionServerSpaceQuotaManager</a></dt>
@@ -112117,7 +112284,7 @@ service.</div>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/MemStoreFlusher.html#updatesBlockedMsHighWater">updatesBlockedMsHighWater</a></span> - Variable in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MemStoreFlusher.html" title="class in org.apache.hadoop.hbase.regionserver">MemStoreFlusher</a></dt>
 <dd>&nbsp;</dd>
-<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html#updateScanSize-long-">updateScanSize(long)</a></span> - Method in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html" title="class in org.apache.hadoop.hbase.regionserver">MetricsRegionServer</a></dt>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html#updateScanSize-org.apache.hadoop.hbase.TableName-long-">updateScanSize(TableName, long)</a></span> - Method in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html" title="class in org.apache.hadoop.hbase.regionserver">MetricsRegionServer</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/MetricsRegionServerSource.html#updateScanSize-long-">updateScanSize(long)</a></span> - Method in interface org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MetricsRegionServerSource.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsRegionServerSource</a></dt>
 <dd>
@@ -112125,9 +112292,19 @@ service.</div>
 </dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.html#updateScanSize-long-">updateScanSize(long)</a></span> - Method in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.html" title="class in org.apache.hadoop.hbase.regionserver">MetricsRegionServerSourceImpl</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/MetricsTableLatencies.html#updateScanSize-java.lang.String-long-">updateScanSize(String, long)</a></span> - Method in interface org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MetricsTableLatencies.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsTableLatencies</a></dt>
+<dd>
+<div class="block">Update the scan size.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/MetricsTableLatenciesImpl.TableHistograms.html#updateScanSize-long-">updateScanSize(long)</a></span> - Method in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MetricsTableLatenciesImpl.TableHistograms.html" title="class in org.apache.hadoop.hbase.regionserver">MetricsTableLatenciesImpl.TableHistograms</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/MetricsTableLatenciesImpl.html#updateScanSize-java.lang.String-long-">updateScanSize(String, long)</a></span> - Method in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/MetricsTableLatenciesImpl.html" title="class in org.apache.hadoop.hbase.regionserver">MetricsTableLatenciesImpl</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/RegionServerTableMetrics.html#updateScanSize-org.apache.hadoop.hbase.TableName-long-">updateScanSize(TableName, long)</a></span> - Method in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/RegionServerTableMetrics.html" title="class in org.apache.hadoop.hbase.regionserver">RegionServerTableMetrics</a></dt>
+<dd>&nbsp;</dd>
 <d

<TRUNCATED>

[10/32] hbase-site git commit: Published site at .

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/29b27596/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.RegionScannerShippedCallBack.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.RegionScannerShippedCallBack.html b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.RegionScannerShippedCallBack.html
index b7f041a..c0ea82b 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.RegionScannerShippedCallBack.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.RegionScannerShippedCallBack.html
@@ -668,2792 +668,2806 @@
 <span class="sourceLineNo">660</span>    }<a name="line.660"></a>
 <span class="sourceLineNo">661</span>    if (regionServer.metricsRegionServer != null) {<a name="line.661"></a>
 <span class="sourceLineNo">662</span>      regionServer.metricsRegionServer.updateAppend(<a name="line.662"></a>
-<span class="sourceLineNo">663</span>        EnvironmentEdgeManager.currentTime() - before);<a name="line.663"></a>
-<span class="sourceLineNo">664</span>    }<a name="line.664"></a>
-<span class="sourceLineNo">665</span>    return r;<a name="line.665"></a>
-<span class="sourceLineNo">666</span>  }<a name="line.666"></a>
-<span class="sourceLineNo">667</span><a name="line.667"></a>
-<span class="sourceLineNo">668</span>  /**<a name="line.668"></a>
-<span class="sourceLineNo">669</span>   * Execute an increment mutation.<a name="line.669"></a>
-<span class="sourceLineNo">670</span>   *<a name="line.670"></a>
-<span class="sourceLineNo">671</span>   * @param region<a name="line.671"></a>
-<span class="sourceLineNo">672</span>   * @param mutation<a name="line.672"></a>
-<span class="sourceLineNo">673</span>   * @return the Result<a name="line.673"></a>
-<span class="sourceLineNo">674</span>   * @throws IOException<a name="line.674"></a>
-<span class="sourceLineNo">675</span>   */<a name="line.675"></a>
-<span class="sourceLineNo">676</span>  private Result increment(final HRegion region, final OperationQuota quota,<a name="line.676"></a>
-<span class="sourceLineNo">677</span>      final MutationProto mutation, final CellScanner cells, long nonceGroup,<a name="line.677"></a>
-<span class="sourceLineNo">678</span>      ActivePolicyEnforcement spaceQuota)<a name="line.678"></a>
-<span class="sourceLineNo">679</span>      throws IOException {<a name="line.679"></a>
-<span class="sourceLineNo">680</span>    long before = EnvironmentEdgeManager.currentTime();<a name="line.680"></a>
-<span class="sourceLineNo">681</span>    Increment increment = ProtobufUtil.toIncrement(mutation, cells);<a name="line.681"></a>
-<span class="sourceLineNo">682</span>    checkCellSizeLimit(region, increment);<a name="line.682"></a>
-<span class="sourceLineNo">683</span>    spaceQuota.getPolicyEnforcement(region).check(increment);<a name="line.683"></a>
-<span class="sourceLineNo">684</span>    quota.addMutation(increment);<a name="line.684"></a>
-<span class="sourceLineNo">685</span>    Result r = null;<a name="line.685"></a>
-<span class="sourceLineNo">686</span>    if (region.getCoprocessorHost() != null) {<a name="line.686"></a>
-<span class="sourceLineNo">687</span>      r = region.getCoprocessorHost().preIncrement(increment);<a name="line.687"></a>
-<span class="sourceLineNo">688</span>    }<a name="line.688"></a>
-<span class="sourceLineNo">689</span>    if (r == null) {<a name="line.689"></a>
-<span class="sourceLineNo">690</span>      boolean canProceed = startNonceOperation(mutation, nonceGroup);<a name="line.690"></a>
-<span class="sourceLineNo">691</span>      boolean success = false;<a name="line.691"></a>
-<span class="sourceLineNo">692</span>      try {<a name="line.692"></a>
-<span class="sourceLineNo">693</span>        long nonce = mutation.hasNonce() ? mutation.getNonce() : HConstants.NO_NONCE;<a name="line.693"></a>
-<span class="sourceLineNo">694</span>        if (canProceed) {<a name="line.694"></a>
-<span class="sourceLineNo">695</span>          r = region.increment(increment, nonceGroup, nonce);<a name="line.695"></a>
-<span class="sourceLineNo">696</span>        } else {<a name="line.696"></a>
-<span class="sourceLineNo">697</span>          // convert duplicate increment to get<a name="line.697"></a>
-<span class="sourceLineNo">698</span>          List&lt;Cell&gt; results = region.get(ProtobufUtil.toGet(mutation, cells), false, nonceGroup,<a name="line.698"></a>
-<span class="sourceLineNo">699</span>              nonce);<a name="line.699"></a>
-<span class="sourceLineNo">700</span>          r = Result.create(results);<a name="line.700"></a>
-<span class="sourceLineNo">701</span>        }<a name="line.701"></a>
-<span class="sourceLineNo">702</span>        success = true;<a name="line.702"></a>
-<span class="sourceLineNo">703</span>      } finally {<a name="line.703"></a>
-<span class="sourceLineNo">704</span>        if (canProceed) {<a name="line.704"></a>
-<span class="sourceLineNo">705</span>          endNonceOperation(mutation, nonceGroup, success);<a name="line.705"></a>
-<span class="sourceLineNo">706</span>        }<a name="line.706"></a>
-<span class="sourceLineNo">707</span>      }<a name="line.707"></a>
-<span class="sourceLineNo">708</span>      if (region.getCoprocessorHost() != null) {<a name="line.708"></a>
-<span class="sourceLineNo">709</span>        r = region.getCoprocessorHost().postIncrement(increment, r);<a name="line.709"></a>
-<span class="sourceLineNo">710</span>      }<a name="line.710"></a>
-<span class="sourceLineNo">711</span>    }<a name="line.711"></a>
-<span class="sourceLineNo">712</span>    if (regionServer.metricsRegionServer != null) {<a name="line.712"></a>
-<span class="sourceLineNo">713</span>      regionServer.metricsRegionServer.updateIncrement(<a name="line.713"></a>
-<span class="sourceLineNo">714</span>        EnvironmentEdgeManager.currentTime() - before);<a name="line.714"></a>
-<span class="sourceLineNo">715</span>    }<a name="line.715"></a>
-<span class="sourceLineNo">716</span>    return r;<a name="line.716"></a>
-<span class="sourceLineNo">717</span>  }<a name="line.717"></a>
-<span class="sourceLineNo">718</span><a name="line.718"></a>
-<span class="sourceLineNo">719</span>  /**<a name="line.719"></a>
-<span class="sourceLineNo">720</span>   * Run through the regionMutation &lt;code&gt;rm&lt;/code&gt; and per Mutation, do the work, and then when<a name="line.720"></a>
-<span class="sourceLineNo">721</span>   * done, add an instance of a {@link ResultOrException} that corresponds to each Mutation.<a name="line.721"></a>
-<span class="sourceLineNo">722</span>   * @param cellsToReturn  Could be null. May be allocated in this method.  This is what this<a name="line.722"></a>
-<span class="sourceLineNo">723</span>   * method returns as a 'result'.<a name="line.723"></a>
-<span class="sourceLineNo">724</span>   * @param closeCallBack the callback to be used with multigets<a name="line.724"></a>
-<span class="sourceLineNo">725</span>   * @param context the current RpcCallContext<a name="line.725"></a>
-<span class="sourceLineNo">726</span>   * @return Return the &lt;code&gt;cellScanner&lt;/code&gt; passed<a name="line.726"></a>
-<span class="sourceLineNo">727</span>   */<a name="line.727"></a>
-<span class="sourceLineNo">728</span>  private List&lt;CellScannable&gt; doNonAtomicRegionMutation(final HRegion region,<a name="line.728"></a>
-<span class="sourceLineNo">729</span>      final OperationQuota quota, final RegionAction actions, final CellScanner cellScanner,<a name="line.729"></a>
-<span class="sourceLineNo">730</span>      final RegionActionResult.Builder builder, List&lt;CellScannable&gt; cellsToReturn, long nonceGroup,<a name="line.730"></a>
-<span class="sourceLineNo">731</span>      final RegionScannersCloseCallBack closeCallBack, RpcCallContext context,<a name="line.731"></a>
-<span class="sourceLineNo">732</span>      ActivePolicyEnforcement spaceQuotaEnforcement) {<a name="line.732"></a>
-<span class="sourceLineNo">733</span>    // Gather up CONTIGUOUS Puts and Deletes in this mutations List.  Idea is that rather than do<a name="line.733"></a>
-<span class="sourceLineNo">734</span>    // one at a time, we instead pass them in batch.  Be aware that the corresponding<a name="line.734"></a>
-<span class="sourceLineNo">735</span>    // ResultOrException instance that matches each Put or Delete is then added down in the<a name="line.735"></a>
-<span class="sourceLineNo">736</span>    // doBatchOp call.  We should be staying aligned though the Put and Delete are deferred/batched<a name="line.736"></a>
-<span class="sourceLineNo">737</span>    List&lt;ClientProtos.Action&gt; mutations = null;<a name="line.737"></a>
-<span class="sourceLineNo">738</span>    long maxQuotaResultSize = Math.min(maxScannerResultSize, quota.getReadAvailable());<a name="line.738"></a>
-<span class="sourceLineNo">739</span>    IOException sizeIOE = null;<a name="line.739"></a>
-<span class="sourceLineNo">740</span>    Object lastBlock = null;<a name="line.740"></a>
-<span class="sourceLineNo">741</span>    ClientProtos.ResultOrException.Builder resultOrExceptionBuilder = ResultOrException.newBuilder();<a name="line.741"></a>
-<span class="sourceLineNo">742</span>    boolean hasResultOrException = false;<a name="line.742"></a>
-<span class="sourceLineNo">743</span>    for (ClientProtos.Action action : actions.getActionList()) {<a name="line.743"></a>
-<span class="sourceLineNo">744</span>      hasResultOrException = false;<a name="line.744"></a>
-<span class="sourceLineNo">745</span>      resultOrExceptionBuilder.clear();<a name="line.745"></a>
-<span class="sourceLineNo">746</span>      try {<a name="line.746"></a>
-<span class="sourceLineNo">747</span>        Result r = null;<a name="line.747"></a>
-<span class="sourceLineNo">748</span><a name="line.748"></a>
-<span class="sourceLineNo">749</span>        if (context != null<a name="line.749"></a>
-<span class="sourceLineNo">750</span>            &amp;&amp; context.isRetryImmediatelySupported()<a name="line.750"></a>
-<span class="sourceLineNo">751</span>            &amp;&amp; (context.getResponseCellSize() &gt; maxQuotaResultSize<a name="line.751"></a>
-<span class="sourceLineNo">752</span>              || context.getResponseBlockSize() + context.getResponseExceptionSize()<a name="line.752"></a>
-<span class="sourceLineNo">753</span>              &gt; maxQuotaResultSize)) {<a name="line.753"></a>
-<span class="sourceLineNo">754</span><a name="line.754"></a>
-<span class="sourceLineNo">755</span>          // We're storing the exception since the exception and reason string won't<a name="line.755"></a>
-<span class="sourceLineNo">756</span>          // change after the response size limit is reached.<a name="line.756"></a>
-<span class="sourceLineNo">757</span>          if (sizeIOE == null ) {<a name="line.757"></a>
-<span class="sourceLineNo">758</span>            // We don't need the stack un-winding do don't throw the exception.<a name="line.758"></a>
-<span class="sourceLineNo">759</span>            // Throwing will kill the JVM's JIT.<a name="line.759"></a>
-<span class="sourceLineNo">760</span>            //<a name="line.760"></a>
-<span class="sourceLineNo">761</span>            // Instead just create the exception and then store it.<a name="line.761"></a>
-<span class="sourceLineNo">762</span>            sizeIOE = new MultiActionResultTooLarge("Max size exceeded"<a name="line.762"></a>
-<span class="sourceLineNo">763</span>                + " CellSize: " + context.getResponseCellSize()<a name="line.763"></a>
-<span class="sourceLineNo">764</span>                + " BlockSize: " + context.getResponseBlockSize());<a name="line.764"></a>
-<span class="sourceLineNo">765</span><a name="line.765"></a>
-<span class="sourceLineNo">766</span>            // Only report the exception once since there's only one request that<a name="line.766"></a>
-<span class="sourceLineNo">767</span>            // caused the exception. Otherwise this number will dominate the exceptions count.<a name="line.767"></a>
-<span class="sourceLineNo">768</span>            rpcServer.getMetrics().exception(sizeIOE);<a name="line.768"></a>
-<span class="sourceLineNo">769</span>          }<a name="line.769"></a>
-<span class="sourceLineNo">770</span><a name="line.770"></a>
-<span class="sourceLineNo">771</span>          // Now that there's an exception is known to be created<a name="line.771"></a>
-<span class="sourceLineNo">772</span>          // use it for the response.<a name="line.772"></a>
-<span class="sourceLineNo">773</span>          //<a name="line.773"></a>
-<span class="sourceLineNo">774</span>          // This will create a copy in the builder.<a name="line.774"></a>
-<span class="sourceLineNo">775</span>          hasResultOrException = true;<a name="line.775"></a>
-<span class="sourceLineNo">776</span>          NameBytesPair pair = ResponseConverter.buildException(sizeIOE);<a name="line.776"></a>
-<span class="sourceLineNo">777</span>          resultOrExceptionBuilder.setException(pair);<a name="line.777"></a>
-<span class="sourceLineNo">778</span>          context.incrementResponseExceptionSize(pair.getSerializedSize());<a name="line.778"></a>
-<span class="sourceLineNo">779</span>          resultOrExceptionBuilder.setIndex(action.getIndex());<a name="line.779"></a>
-<span class="sourceLineNo">780</span>          builder.addResultOrException(resultOrExceptionBuilder.build());<a name="line.780"></a>
-<span class="sourceLineNo">781</span>          if (cellScanner != null) {<a name="line.781"></a>
-<span class="sourceLineNo">782</span>            skipCellsForMutation(action, cellScanner);<a name="line.782"></a>
-<span class="sourceLineNo">783</span>          }<a name="line.783"></a>
-<span class="sourceLineNo">784</span>          continue;<a name="line.784"></a>
-<span class="sourceLineNo">785</span>        }<a name="line.785"></a>
-<span class="sourceLineNo">786</span>        if (action.hasGet()) {<a name="line.786"></a>
-<span class="sourceLineNo">787</span>          long before = EnvironmentEdgeManager.currentTime();<a name="line.787"></a>
-<span class="sourceLineNo">788</span>          try {<a name="line.788"></a>
-<span class="sourceLineNo">789</span>            Get get = ProtobufUtil.toGet(action.getGet());<a name="line.789"></a>
-<span class="sourceLineNo">790</span>            if (context != null) {<a name="line.790"></a>
-<span class="sourceLineNo">791</span>              r = get(get, ((HRegion) region), closeCallBack, context);<a name="line.791"></a>
-<span class="sourceLineNo">792</span>            } else {<a name="line.792"></a>
-<span class="sourceLineNo">793</span>              r = region.get(get);<a name="line.793"></a>
-<span class="sourceLineNo">794</span>            }<a name="line.794"></a>
-<span class="sourceLineNo">795</span>          } finally {<a name="line.795"></a>
-<span class="sourceLineNo">796</span>            if (regionServer.metricsRegionServer != null) {<a name="line.796"></a>
-<span class="sourceLineNo">797</span>              regionServer.metricsRegionServer.updateGet(<a name="line.797"></a>
-<span class="sourceLineNo">798</span>                EnvironmentEdgeManager.currentTime() - before);<a name="line.798"></a>
-<span class="sourceLineNo">799</span>            }<a name="line.799"></a>
-<span class="sourceLineNo">800</span>          }<a name="line.800"></a>
-<span class="sourceLineNo">801</span>        } else if (action.hasServiceCall()) {<a name="line.801"></a>
-<span class="sourceLineNo">802</span>          hasResultOrException = true;<a name="line.802"></a>
-<span class="sourceLineNo">803</span>          try {<a name="line.803"></a>
-<span class="sourceLineNo">804</span>            com.google.protobuf.Message result =<a name="line.804"></a>
-<span class="sourceLineNo">805</span>                execServiceOnRegion(region, action.getServiceCall());<a name="line.805"></a>
-<span class="sourceLineNo">806</span>            ClientProtos.CoprocessorServiceResult.Builder serviceResultBuilder =<a name="line.806"></a>
-<span class="sourceLineNo">807</span>                ClientProtos.CoprocessorServiceResult.newBuilder();<a name="line.807"></a>
-<span class="sourceLineNo">808</span>            resultOrExceptionBuilder.setServiceResult(<a name="line.808"></a>
-<span class="sourceLineNo">809</span>                serviceResultBuilder.setValue(<a name="line.809"></a>
-<span class="sourceLineNo">810</span>                  serviceResultBuilder.getValueBuilder()<a name="line.810"></a>
-<span class="sourceLineNo">811</span>                    .setName(result.getClass().getName())<a name="line.811"></a>
-<span class="sourceLineNo">812</span>                    // TODO: Copy!!!<a name="line.812"></a>
-<span class="sourceLineNo">813</span>                    .setValue(UnsafeByteOperations.unsafeWrap(result.toByteArray()))));<a name="line.813"></a>
-<span class="sourceLineNo">814</span>          } catch (IOException ioe) {<a name="line.814"></a>
-<span class="sourceLineNo">815</span>            rpcServer.getMetrics().exception(ioe);<a name="line.815"></a>
-<span class="sourceLineNo">816</span>            NameBytesPair pair = ResponseConverter.buildException(ioe);<a name="line.816"></a>
-<span class="sourceLineNo">817</span>            resultOrExceptionBuilder.setException(pair);<a name="line.817"></a>
-<span class="sourceLineNo">818</span>            context.incrementResponseExceptionSize(pair.getSerializedSize());<a name="line.818"></a>
-<span class="sourceLineNo">819</span>          }<a name="line.819"></a>
-<span class="sourceLineNo">820</span>        } else if (action.hasMutation()) {<a name="line.820"></a>
-<span class="sourceLineNo">821</span>          MutationType type = action.getMutation().getMutateType();<a name="line.821"></a>
-<span class="sourceLineNo">822</span>          if (type != MutationType.PUT &amp;&amp; type != MutationType.DELETE &amp;&amp; mutations != null &amp;&amp;<a name="line.822"></a>
-<span class="sourceLineNo">823</span>              !mutations.isEmpty()) {<a name="line.823"></a>
-<span class="sourceLineNo">824</span>            // Flush out any Puts or Deletes already collected.<a name="line.824"></a>
-<span class="sourceLineNo">825</span>            doBatchOp(builder, region, quota, mutations, cellScanner, spaceQuotaEnforcement, false);<a name="line.825"></a>
-<span class="sourceLineNo">826</span>            mutations.clear();<a name="line.826"></a>
-<span class="sourceLineNo">827</span>          }<a name="line.827"></a>
-<span class="sourceLineNo">828</span>          switch (type) {<a name="line.828"></a>
-<span class="sourceLineNo">829</span>            case APPEND:<a name="line.829"></a>
-<span class="sourceLineNo">830</span>              r = append(region, quota, action.getMutation(), cellScanner, nonceGroup,<a name="line.830"></a>
-<span class="sourceLineNo">831</span>                  spaceQuotaEnforcement);<a name="line.831"></a>
-<span class="sourceLineNo">832</span>              break;<a name="line.832"></a>
-<span class="sourceLineNo">833</span>            case INCREMENT:<a name="line.833"></a>
-<span class="sourceLineNo">834</span>              r = increment(region, quota, action.getMutation(), cellScanner, nonceGroup,<a name="line.834"></a>
-<span class="sourceLineNo">835</span>                  spaceQuotaEnforcement);<a name="line.835"></a>
-<span class="sourceLineNo">836</span>              break;<a name="line.836"></a>
-<span class="sourceLineNo">837</span>            case PUT:<a name="line.837"></a>
-<span class="sourceLineNo">838</span>            case DELETE:<a name="line.838"></a>
-<span class="sourceLineNo">839</span>              // Collect the individual mutations and apply in a batch<a name="line.839"></a>
-<span class="sourceLineNo">840</span>              if (mutations == null) {<a name="line.840"></a>
-<span class="sourceLineNo">841</span>                mutations = new ArrayList&lt;&gt;(actions.getActionCount());<a name="line.841"></a>
-<span class="sourceLineNo">842</span>              }<a name="line.842"></a>
-<span class="sourceLineNo">843</span>              mutations.add(action);<a name="line.843"></a>
-<span class="sourceLineNo">844</span>              break;<a name="line.844"></a>
-<span class="sourceLineNo">845</span>            default:<a name="line.845"></a>
-<span class="sourceLineNo">846</span>              throw new DoNotRetryIOException("Unsupported mutate type: " + type.name());<a name="line.846"></a>
-<span class="sourceLineNo">847</span>          }<a name="line.847"></a>
-<span class="sourceLineNo">848</span>        } else {<a name="line.848"></a>
-<span class="sourceLineNo">849</span>          throw new HBaseIOException("Unexpected Action type");<a name="line.849"></a>
-<span class="sourceLineNo">850</span>        }<a name="line.850"></a>
-<span class="sourceLineNo">851</span>        if (r != null) {<a name="line.851"></a>
-<span class="sourceLineNo">852</span>          ClientProtos.Result pbResult = null;<a name="line.852"></a>
-<span class="sourceLineNo">853</span>          if (isClientCellBlockSupport(context)) {<a name="line.853"></a>
-<span class="sourceLineNo">854</span>            pbResult = ProtobufUtil.toResultNoData(r);<a name="line.854"></a>
-<span class="sourceLineNo">855</span>            //  Hard to guess the size here.  Just make a rough guess.<a name="line.855"></a>
-<span class="sourceLineNo">856</span>            if (cellsToReturn == null) {<a name="line.856"></a>
-<span class="sourceLineNo">857</span>              cellsToReturn = new ArrayList&lt;&gt;();<a name="line.857"></a>
-<span class="sourceLineNo">858</span>            }<a name="line.858"></a>
-<span class="sourceLineNo">859</span>            cellsToReturn.add(r);<a name="line.859"></a>
-<span class="sourceLineNo">860</span>          } else {<a name="line.860"></a>
-<span class="sourceLineNo">861</span>            pbResult = ProtobufUtil.toResult(r);<a name="line.861"></a>
-<span class="sourceLineNo">862</span>          }<a name="line.862"></a>
-<span class="sourceLineNo">863</span>          lastBlock = addSize(context, r, lastBlock);<a name="line.863"></a>
-<span class="sourceLineNo">864</span>          hasResultOrException = true;<a name="line.864"></a>
-<span class="sourceLineNo">865</span>          resultOrExceptionBuilder.setResult(pbResult);<a name="line.865"></a>
-<span class="sourceLineNo">866</span>        }<a name="line.866"></a>
-<span class="sourceLineNo">867</span>        // Could get to here and there was no result and no exception.  Presumes we added<a name="line.867"></a>
-<span class="sourceLineNo">868</span>        // a Put or Delete to the collecting Mutations List for adding later.  In this<a name="line.868"></a>
-<span class="sourceLineNo">869</span>        // case the corresponding ResultOrException instance for the Put or Delete will be added<a name="line.869"></a>
-<span class="sourceLineNo">870</span>        // down in the doBatchOp method call rather than up here.<a name="line.870"></a>
-<span class="sourceLineNo">871</span>      } catch (IOException ie) {<a name="line.871"></a>
-<span class="sourceLineNo">872</span>        rpcServer.getMetrics().exception(ie);<a name="line.872"></a>
-<span class="sourceLineNo">873</span>        hasResultOrException = true;<a name="line.873"></a>
-<span class="sourceLineNo">874</span>        NameBytesPair pair = ResponseConverter.buildException(ie);<a name="line.874"></a>
-<span class="sourceLineNo">875</span>        resultOrExceptionBuilder.setException(pair);<a name="line.875"></a>
-<span class="sourceLineNo">876</span>        context.incrementResponseExceptionSize(pair.getSerializedSize());<a name="line.876"></a>
-<span class="sourceLineNo">877</span>      }<a name="line.877"></a>
-<span class="sourceLineNo">878</span>      if (hasResultOrException) {<a name="line.878"></a>
-<span class="sourceLineNo">879</span>        // Propagate index.<a name="line.879"></a>
-<span class="sourceLineNo">880</span>        resultOrExceptionBuilder.setIndex(action.getIndex());<a name="line.880"></a>
-<span class="sourceLineNo">881</span>        builder.addResultOrException(resultOrExceptionBuilder.build());<a name="line.881"></a>
-<span class="sourceLineNo">882</span>      }<a name="line.882"></a>
-<span class="sourceLineNo">883</span>    }<a name="line.883"></a>
-<span class="sourceLineNo">884</span>    // Finish up any outstanding mutations<a name="line.884"></a>
-<span class="sourceLineNo">885</span>    if (mutations != null &amp;&amp; !mutations.isEmpty()) {<a name="line.885"></a>
-<span class="sourceLineNo">886</span>      try {<a name="line.886"></a>
-<span class="sourceLineNo">887</span>        doBatchOp(builder, region, quota, mutations, cellScanner, spaceQuotaEnforcement, false);<a name="line.887"></a>
-<span class="sourceLineNo">888</span>      } catch (IOException ioe) {<a name="line.888"></a>
-<span class="sourceLineNo">889</span>        rpcServer.getMetrics().exception(ioe);<a name="line.889"></a>
-<span class="sourceLineNo">890</span>        NameBytesPair pair = ResponseConverter.buildException(ioe);<a name="line.890"></a>
-<span class="sourceLineNo">891</span>        resultOrExceptionBuilder.setException(pair);<a name="line.891"></a>
-<span class="sourceLineNo">892</span>        context.incrementResponseExceptionSize(pair.getSerializedSize());<a name="line.892"></a>
-<span class="sourceLineNo">893</span>        builder.addResultOrException(resultOrExceptionBuilder.build());<a name="line.893"></a>
-<span class="sourceLineNo">894</span>      }<a name="line.894"></a>
-<span class="sourceLineNo">895</span>    }<a name="line.895"></a>
-<span class="sourceLineNo">896</span>    return cellsToReturn;<a name="line.896"></a>
-<span class="sourceLineNo">897</span>  }<a name="line.897"></a>
-<span class="sourceLineNo">898</span><a name="line.898"></a>
-<span class="sourceLineNo">899</span>  private void checkCellSizeLimit(final HRegion r, final Mutation m) throws IOException {<a name="line.899"></a>
-<span class="sourceLineNo">900</span>    if (r.maxCellSize &gt; 0) {<a name="line.900"></a>
-<span class="sourceLineNo">901</span>      CellScanner cells = m.cellScanner();<a name="line.901"></a>
-<span class="sourceLineNo">902</span>      while (cells.advance()) {<a name="line.902"></a>
-<span class="sourceLineNo">903</span>        int size = PrivateCellUtil.estimatedSerializedSizeOf(cells.current());<a name="line.903"></a>
-<span class="sourceLineNo">904</span>        if (size &gt; r.maxCellSize) {<a name="line.904"></a>
-<span class="sourceLineNo">905</span>          String msg = "Cell with size " + size + " exceeds limit of " + r.maxCellSize + " bytes";<a name="line.905"></a>
-<span class="sourceLineNo">906</span>          if (LOG.isDebugEnabled()) {<a name="line.906"></a>
-<span class="sourceLineNo">907</span>            LOG.debug(msg);<a name="line.907"></a>
-<span class="sourceLineNo">908</span>          }<a name="line.908"></a>
-<span class="sourceLineNo">909</span>          throw new DoNotRetryIOException(msg);<a name="line.909"></a>
-<span class="sourceLineNo">910</span>        }<a name="line.910"></a>
-<span class="sourceLineNo">911</span>      }<a name="line.911"></a>
-<span class="sourceLineNo">912</span>    }<a name="line.912"></a>
-<span class="sourceLineNo">913</span>  }<a name="line.913"></a>
-<span class="sourceLineNo">914</span><a name="line.914"></a>
-<span class="sourceLineNo">915</span>  /**<a name="line.915"></a>
-<span class="sourceLineNo">916</span>   * Execute a list of Put/Delete mutations.<a name="line.916"></a>
-<span class="sourceLineNo">917</span>   *<a name="line.917"></a>
-<span class="sourceLineNo">918</span>   * @param builder<a name="line.918"></a>
-<span class="sourceLineNo">919</span>   * @param region<a name="line.919"></a>
-<span class="sourceLineNo">920</span>   * @param mutations<a name="line.920"></a>
-<span class="sourceLineNo">921</span>   */<a name="line.921"></a>
-<span class="sourceLineNo">922</span>  private void doBatchOp(final RegionActionResult.Builder builder, final HRegion region,<a name="line.922"></a>
-<span class="sourceLineNo">923</span>      final OperationQuota quota, final List&lt;ClientProtos.Action&gt; mutations,<a name="line.923"></a>
-<span class="sourceLineNo">924</span>      final CellScanner cells, ActivePolicyEnforcement spaceQuotaEnforcement, boolean atomic)<a name="line.924"></a>
-<span class="sourceLineNo">925</span>      throws IOException {<a name="line.925"></a>
-<span class="sourceLineNo">926</span>    Mutation[] mArray = new Mutation[mutations.size()];<a name="line.926"></a>
-<span class="sourceLineNo">927</span>    long before = EnvironmentEdgeManager.currentTime();<a name="line.927"></a>
-<span class="sourceLineNo">928</span>    boolean batchContainsPuts = false, batchContainsDelete = false;<a name="line.928"></a>
-<span class="sourceLineNo">929</span>    try {<a name="line.929"></a>
-<span class="sourceLineNo">930</span>      /** HBASE-17924<a name="line.930"></a>
-<span class="sourceLineNo">931</span>       * mutationActionMap is a map to map the relation between mutations and actions<a name="line.931"></a>
-<span class="sourceLineNo">932</span>       * since mutation array may have been reoredered.In order to return the right<a name="line.932"></a>
-<span class="sourceLineNo">933</span>       * result or exception to the corresponding actions, We need to know which action<a name="line.933"></a>
-<span class="sourceLineNo">934</span>       * is the mutation belong to. We can't sort ClientProtos.Action array, since they<a name="line.934"></a>
-<span class="sourceLineNo">935</span>       * are bonded to cellscanners.<a name="line.935"></a>
-<span class="sourceLineNo">936</span>       */<a name="line.936"></a>
-<span class="sourceLineNo">937</span>      Map&lt;Mutation, ClientProtos.Action&gt; mutationActionMap = new HashMap&lt;&gt;();<a name="line.937"></a>
-<span class="sourceLineNo">938</span>      int i = 0;<a name="line.938"></a>
-<span class="sourceLineNo">939</span>      for (ClientProtos.Action action: mutations) {<a name="line.939"></a>
-<span class="sourceLineNo">940</span>        MutationProto m = action.getMutation();<a name="line.940"></a>
-<span class="sourceLineNo">941</span>        Mutation mutation;<a name="line.941"></a>
-<span class="sourceLineNo">942</span>        if (m.getMutateType() == MutationType.PUT) {<a name="line.942"></a>
-<span class="sourceLineNo">943</span>          mutation = ProtobufUtil.toPut(m, cells);<a name="line.943"></a>
-<span class="sourceLineNo">944</span>          batchContainsPuts = true;<a name="line.944"></a>
-<span class="sourceLineNo">945</span>        } else {<a name="line.945"></a>
-<span class="sourceLineNo">946</span>          mutation = ProtobufUtil.toDelete(m, cells);<a name="line.946"></a>
-<span class="sourceLineNo">947</span>          batchContainsDelete = true;<a name="line.947"></a>
-<span class="sourceLineNo">948</span>        }<a name="line.948"></a>
-<span class="sourceLineNo">949</span>        mutationActionMap.put(mutation, action);<a name="line.949"></a>
-<span class="sourceLineNo">950</span>        mArray[i++] = mutation;<a name="line.950"></a>
-<span class="sourceLineNo">951</span>        checkCellSizeLimit(region, mutation);<a name="line.951"></a>
-<span class="sourceLineNo">952</span>        // Check if a space quota disallows this mutation<a name="line.952"></a>
-<span class="sourceLineNo">953</span>        spaceQuotaEnforcement.getPolicyEnforcement(region).check(mutation);<a name="line.953"></a>
-<span class="sourceLineNo">954</span>        quota.addMutation(mutation);<a name="line.954"></a>
-<span class="sourceLineNo">955</span>      }<a name="line.955"></a>
-<span class="sourceLineNo">956</span><a name="line.956"></a>
-<span class="sourceLineNo">957</span>      if (!region.getRegionInfo().isMetaRegion()) {<a name="line.957"></a>
-<span class="sourceLineNo">958</span>        regionServer.cacheFlusher.reclaimMemStoreMemory();<a name="line.958"></a>
-<span class="sourceLineNo">959</span>      }<a name="line.959"></a>
-<span class="sourceLineNo">960</span><a name="line.960"></a>
-<span class="sourceLineNo">961</span>      // HBASE-17924<a name="line.961"></a>
-<span class="sourceLineNo">962</span>      // Sort to improve lock efficiency for non-atomic batch of operations. If atomic (mostly<a name="line.962"></a>
-<span class="sourceLineNo">963</span>      // called from mutateRows()), order is preserved as its expected from the client<a name="line.963"></a>
-<span class="sourceLineNo">964</span>      if (!atomic) {<a name="line.964"></a>
-<span class="sourceLineNo">965</span>        Arrays.sort(mArray);<a name="line.965"></a>
-<span class="sourceLineNo">966</span>      }<a name="line.966"></a>
-<span class="sourceLineNo">967</span><a name="line.967"></a>
-<span class="sourceLineNo">968</span>      OperationStatus[] codes = region.batchMutate(mArray, atomic, HConstants.NO_NONCE,<a name="line.968"></a>
-<span class="sourceLineNo">969</span>        HConstants.NO_NONCE);<a name="line.969"></a>
-<span class="sourceLineNo">970</span>      for (i = 0; i &lt; codes.length; i++) {<a name="line.970"></a>
-<span class="sourceLineNo">971</span>        Mutation currentMutation = mArray[i];<a name="line.971"></a>
-<span class="sourceLineNo">972</span>        ClientProtos.Action currentAction = mutationActionMap.get(currentMutation);<a name="line.972"></a>
-<span class="sourceLineNo">973</span>        int index = currentAction.hasIndex() || !atomic ? currentAction.getIndex() : i;<a name="line.973"></a>
-<span class="sourceLineNo">974</span>        Exception e = null;<a name="line.974"></a>
-<span class="sourceLineNo">975</span>        switch (codes[i].getOperationStatusCode()) {<a name="line.975"></a>
-<span class="sourceLineNo">976</span>          case BAD_FAMILY:<a name="line.976"></a>
-<span class="sourceLineNo">977</span>            e = new NoSuchColumnFamilyException(codes[i].getExceptionMsg());<a name="line.977"></a>
-<span class="sourceLineNo">978</span>            builder.addResultOrException(getResultOrException(e, index));<a name="line.978"></a>
-<span class="sourceLineNo">979</span>            break;<a name="line.979"></a>
-<span class="sourceLineNo">980</span><a name="line.980"></a>
-<span class="sourceLineNo">981</span>          case SANITY_CHECK_FAILURE:<a name="line.981"></a>
-<span class="sourceLineNo">982</span>            e = new FailedSanityCheckException(codes[i].getExceptionMsg());<a name="line.982"></a>
-<span class="sourceLineNo">983</span>            builder.addResultOrException(getResultOrException(e, index));<a name="line.983"></a>
-<span class="sourceLineNo">984</span>            break;<a name="line.984"></a>
-<span class="sourceLineNo">985</span><a name="line.985"></a>
-<span class="sourceLineNo">986</span>          default:<a name="line.986"></a>
-<span class="sourceLineNo">987</span>            e = new DoNotRetryIOException(codes[i].getExceptionMsg());<a name="line.987"></a>
-<span class="sourceLineNo">988</span>            builder.addResultOrException(getResultOrException(e, index));<a name="line.988"></a>
-<span class="sourceLineNo">989</span>            break;<a name="line.989"></a>
-<span class="sourceLineNo">990</span><a name="line.990"></a>
-<span class="sourceLineNo">991</span>          case SUCCESS:<a name="line.991"></a>
-<span class="sourceLineNo">992</span>            builder.addResultOrException(getResultOrException(<a name="line.992"></a>
-<span class="sourceLineNo">993</span>              ClientProtos.Result.getDefaultInstance(), index));<a name="line.993"></a>
-<span class="sourceLineNo">994</span>            break;<a name="line.994"></a>
-<span class="sourceLineNo">995</span>        }<a name="line.995"></a>
-<span class="sourceLineNo">996</span>      }<a name="line.996"></a>
-<span class="sourceLineNo">997</span>    } catch (IOException ie) {<a name="line.997"></a>
-<span class="sourceLineNo">998</span>      if (atomic) {<a name="line.998"></a>
-<span class="sourceLineNo">999</span>        throw ie;<a name="line.999"></a>
-<span class="sourceLineNo">1000</span>      }<a name="line.1000"></a>
-<span class="sourceLineNo">1001</span>      for (Action mutation : mutations) {<a name="line.1001"></a>
-<span class="sourceLineNo">1002</span>        builder.addResultOrException(getResultOrException(ie, mutation.getIndex()));<a name="line.1002"></a>
+<span class="sourceLineNo">663</span>          region.getTableDescriptor().getTableName(),<a name="line.663"></a>
+<span class="sourceLineNo">664</span>        EnvironmentEdgeManager.currentTime() - before);<a name="line.664"></a>
+<span class="sourceLineNo">665</span>    }<a name="line.665"></a>
+<span class="sourceLineNo">666</span>    return r;<a name="line.666"></a>
+<span class="sourceLineNo">667</span>  }<a name="line.667"></a>
+<span class="sourceLineNo">668</span><a name="line.668"></a>
+<span class="sourceLineNo">669</span>  /**<a name="line.669"></a>
+<span class="sourceLineNo">670</span>   * Execute an increment mutation.<a name="line.670"></a>
+<span class="sourceLineNo">671</span>   *<a name="line.671"></a>
+<span class="sourceLineNo">672</span>   * @param region<a name="line.672"></a>
+<span class="sourceLineNo">673</span>   * @param mutation<a name="line.673"></a>
+<span class="sourceLineNo">674</span>   * @return the Result<a name="line.674"></a>
+<span class="sourceLineNo">675</span>   * @throws IOException<a name="line.675"></a>
+<span class="sourceLineNo">676</span>   */<a name="line.676"></a>
+<span class="sourceLineNo">677</span>  private Result increment(final HRegion region, final OperationQuota quota,<a name="line.677"></a>
+<span class="sourceLineNo">678</span>      final MutationProto mutation, final CellScanner cells, long nonceGroup,<a name="line.678"></a>
+<span class="sourceLineNo">679</span>      ActivePolicyEnforcement spaceQuota)<a name="line.679"></a>
+<span class="sourceLineNo">680</span>      throws IOException {<a name="line.680"></a>
+<span class="sourceLineNo">681</span>    long before = EnvironmentEdgeManager.currentTime();<a name="line.681"></a>
+<span class="sourceLineNo">682</span>    Increment increment = ProtobufUtil.toIncrement(mutation, cells);<a name="line.682"></a>
+<span class="sourceLineNo">683</span>    checkCellSizeLimit(region, increment);<a name="line.683"></a>
+<span class="sourceLineNo">684</span>    spaceQuota.getPolicyEnforcement(region).check(increment);<a name="line.684"></a>
+<span class="sourceLineNo">685</span>    quota.addMutation(increment);<a name="line.685"></a>
+<span class="sourceLineNo">686</span>    Result r = null;<a name="line.686"></a>
+<span class="sourceLineNo">687</span>    if (region.getCoprocessorHost() != null) {<a name="line.687"></a>
+<span class="sourceLineNo">688</span>      r = region.getCoprocessorHost().preIncrement(increment);<a name="line.688"></a>
+<span class="sourceLineNo">689</span>    }<a name="line.689"></a>
+<span class="sourceLineNo">690</span>    if (r == null) {<a name="line.690"></a>
+<span class="sourceLineNo">691</span>      boolean canProceed = startNonceOperation(mutation, nonceGroup);<a name="line.691"></a>
+<span class="sourceLineNo">692</span>      boolean success = false;<a name="line.692"></a>
+<span class="sourceLineNo">693</span>      try {<a name="line.693"></a>
+<span class="sourceLineNo">694</span>        long nonce = mutation.hasNonce() ? mutation.getNonce() : HConstants.NO_NONCE;<a name="line.694"></a>
+<span class="sourceLineNo">695</span>        if (canProceed) {<a name="line.695"></a>
+<span class="sourceLineNo">696</span>          r = region.increment(increment, nonceGroup, nonce);<a name="line.696"></a>
+<span class="sourceLineNo">697</span>        } else {<a name="line.697"></a>
+<span class="sourceLineNo">698</span>          // convert duplicate increment to get<a name="line.698"></a>
+<span class="sourceLineNo">699</span>          List&lt;Cell&gt; results = region.get(ProtobufUtil.toGet(mutation, cells), false, nonceGroup,<a name="line.699"></a>
+<span class="sourceLineNo">700</span>              nonce);<a name="line.700"></a>
+<span class="sourceLineNo">701</span>          r = Result.create(results);<a name="line.701"></a>
+<span class="sourceLineNo">702</span>        }<a name="line.702"></a>
+<span class="sourceLineNo">703</span>        success = true;<a name="line.703"></a>
+<span class="sourceLineNo">704</span>      } finally {<a name="line.704"></a>
+<span class="sourceLineNo">705</span>        if (canProceed) {<a name="line.705"></a>
+<span class="sourceLineNo">706</span>          endNonceOperation(mutation, nonceGroup, success);<a name="line.706"></a>
+<span class="sourceLineNo">707</span>        }<a name="line.707"></a>
+<span class="sourceLineNo">708</span>      }<a name="line.708"></a>
+<span class="sourceLineNo">709</span>      if (region.getCoprocessorHost() != null) {<a name="line.709"></a>
+<span class="sourceLineNo">710</span>        r = region.getCoprocessorHost().postIncrement(increment, r);<a name="line.710"></a>
+<span class="sourceLineNo">711</span>      }<a name="line.711"></a>
+<span class="sourceLineNo">712</span>    }<a name="line.712"></a>
+<span class="sourceLineNo">713</span>    if (regionServer.metricsRegionServer != null) {<a name="line.713"></a>
+<span class="sourceLineNo">714</span>      regionServer.metricsRegionServer.updateIncrement(<a name="line.714"></a>
+<span class="sourceLineNo">715</span>          region.getTableDescriptor().getTableName(),<a name="line.715"></a>
+<span class="sourceLineNo">716</span>          EnvironmentEdgeManager.currentTime() - before);<a name="line.716"></a>
+<span class="sourceLineNo">717</span>    }<a name="line.717"></a>
+<span class="sourceLineNo">718</span>    return r;<a name="line.718"></a>
+<span class="sourceLineNo">719</span>  }<a name="line.719"></a>
+<span class="sourceLineNo">720</span><a name="line.720"></a>
+<span class="sourceLineNo">721</span>  /**<a name="line.721"></a>
+<span class="sourceLineNo">722</span>   * Run through the regionMutation &lt;code&gt;rm&lt;/code&gt; and per Mutation, do the work, and then when<a name="line.722"></a>
+<span class="sourceLineNo">723</span>   * done, add an instance of a {@link ResultOrException} that corresponds to each Mutation.<a name="line.723"></a>
+<span class="sourceLineNo">724</span>   * @param cellsToReturn  Could be null. May be allocated in this method.  This is what this<a name="line.724"></a>
+<span class="sourceLineNo">725</span>   * method returns as a 'result'.<a name="line.725"></a>
+<span class="sourceLineNo">726</span>   * @param closeCallBack the callback to be used with multigets<a name="line.726"></a>
+<span class="sourceLineNo">727</span>   * @param context the current RpcCallContext<a name="line.727"></a>
+<span class="sourceLineNo">728</span>   * @return Return the &lt;code&gt;cellScanner&lt;/code&gt; passed<a name="line.728"></a>
+<span class="sourceLineNo">729</span>   */<a name="line.729"></a>
+<span class="sourceLineNo">730</span>  private List&lt;CellScannable&gt; doNonAtomicRegionMutation(final HRegion region,<a name="line.730"></a>
+<span class="sourceLineNo">731</span>      final OperationQuota quota, final RegionAction actions, final CellScanner cellScanner,<a name="line.731"></a>
+<span class="sourceLineNo">732</span>      final RegionActionResult.Builder builder, List&lt;CellScannable&gt; cellsToReturn, long nonceGroup,<a name="line.732"></a>
+<span class="sourceLineNo">733</span>      final RegionScannersCloseCallBack closeCallBack, RpcCallContext context,<a name="line.733"></a>
+<span class="sourceLineNo">734</span>      ActivePolicyEnforcement spaceQuotaEnforcement) {<a name="line.734"></a>
+<span class="sourceLineNo">735</span>    // Gather up CONTIGUOUS Puts and Deletes in this mutations List.  Idea is that rather than do<a name="line.735"></a>
+<span class="sourceLineNo">736</span>    // one at a time, we instead pass them in batch.  Be aware that the corresponding<a name="line.736"></a>
+<span class="sourceLineNo">737</span>    // ResultOrException instance that matches each Put or Delete is then added down in the<a name="line.737"></a>
+<span class="sourceLineNo">738</span>    // doBatchOp call.  We should be staying aligned though the Put and Delete are deferred/batched<a name="line.738"></a>
+<span class="sourceLineNo">739</span>    List&lt;ClientProtos.Action&gt; mutations = null;<a name="line.739"></a>
+<span class="sourceLineNo">740</span>    long maxQuotaResultSize = Math.min(maxScannerResultSize, quota.getReadAvailable());<a name="line.740"></a>
+<span class="sourceLineNo">741</span>    IOException sizeIOE = null;<a name="line.741"></a>
+<span class="sourceLineNo">742</span>    Object lastBlock = null;<a name="line.742"></a>
+<span class="sourceLineNo">743</span>    ClientProtos.ResultOrException.Builder resultOrExceptionBuilder = ResultOrException.newBuilder();<a name="line.743"></a>
+<span class="sourceLineNo">744</span>    boolean hasResultOrException = false;<a name="line.744"></a>
+<span class="sourceLineNo">745</span>    for (ClientProtos.Action action : actions.getActionList()) {<a name="line.745"></a>
+<span class="sourceLineNo">746</span>      hasResultOrException = false;<a name="line.746"></a>
+<span class="sourceLineNo">747</span>      resultOrExceptionBuilder.clear();<a name="line.747"></a>
+<span class="sourceLineNo">748</span>      try {<a name="line.748"></a>
+<span class="sourceLineNo">749</span>        Result r = null;<a name="line.749"></a>
+<span class="sourceLineNo">750</span><a name="line.750"></a>
+<span class="sourceLineNo">751</span>        if (context != null<a name="line.751"></a>
+<span class="sourceLineNo">752</span>            &amp;&amp; context.isRetryImmediatelySupported()<a name="line.752"></a>
+<span class="sourceLineNo">753</span>            &amp;&amp; (context.getResponseCellSize() &gt; maxQuotaResultSize<a name="line.753"></a>
+<span class="sourceLineNo">754</span>              || context.getResponseBlockSize() + context.getResponseExceptionSize()<a name="line.754"></a>
+<span class="sourceLineNo">755</span>              &gt; maxQuotaResultSize)) {<a name="line.755"></a>
+<span class="sourceLineNo">756</span><a name="line.756"></a>
+<span class="sourceLineNo">757</span>          // We're storing the exception since the exception and reason string won't<a name="line.757"></a>
+<span class="sourceLineNo">758</span>          // change after the response size limit is reached.<a name="line.758"></a>
+<span class="sourceLineNo">759</span>          if (sizeIOE == null ) {<a name="line.759"></a>
+<span class="sourceLineNo">760</span>            // We don't need the stack un-winding do don't throw the exception.<a name="line.760"></a>
+<span class="sourceLineNo">761</span>            // Throwing will kill the JVM's JIT.<a name="line.761"></a>
+<span class="sourceLineNo">762</span>            //<a name="line.762"></a>
+<span class="sourceLineNo">763</span>            // Instead just create the exception and then store it.<a name="line.763"></a>
+<span class="sourceLineNo">764</span>            sizeIOE = new MultiActionResultTooLarge("Max size exceeded"<a name="line.764"></a>
+<span class="sourceLineNo">765</span>                + " CellSize: " + context.getResponseCellSize()<a name="line.765"></a>
+<span class="sourceLineNo">766</span>                + " BlockSize: " + context.getResponseBlockSize());<a name="line.766"></a>
+<span class="sourceLineNo">767</span><a name="line.767"></a>
+<span class="sourceLineNo">768</span>            // Only report the exception once since there's only one request that<a name="line.768"></a>
+<span class="sourceLineNo">769</span>            // caused the exception. Otherwise this number will dominate the exceptions count.<a name="line.769"></a>
+<span class="sourceLineNo">770</span>            rpcServer.getMetrics().exception(sizeIOE);<a name="line.770"></a>
+<span class="sourceLineNo">771</span>          }<a name="line.771"></a>
+<span class="sourceLineNo">772</span><a name="line.772"></a>
+<span class="sourceLineNo">773</span>          // Now that there's an exception is known to be created<a name="line.773"></a>
+<span class="sourceLineNo">774</span>          // use it for the response.<a name="line.774"></a>
+<span class="sourceLineNo">775</span>          //<a name="line.775"></a>
+<span class="sourceLineNo">776</span>          // This will create a copy in the builder.<a name="line.776"></a>
+<span class="sourceLineNo">777</span>          hasResultOrException = true;<a name="line.777"></a>
+<span class="sourceLineNo">778</span>          NameBytesPair pair = ResponseConverter.buildException(sizeIOE);<a name="line.778"></a>
+<span class="sourceLineNo">779</span>          resultOrExceptionBuilder.setException(pair);<a name="line.779"></a>
+<span class="sourceLineNo">780</span>          context.incrementResponseExceptionSize(pair.getSerializedSize());<a name="line.780"></a>
+<span class="sourceLineNo">781</span>          resultOrExceptionBuilder.setIndex(action.getIndex());<a name="line.781"></a>
+<span class="sourceLineNo">782</span>          builder.addResultOrException(resultOrExceptionBuilder.build());<a name="line.782"></a>
+<span class="sourceLineNo">783</span>          if (cellScanner != null) {<a name="line.783"></a>
+<span class="sourceLineNo">784</span>            skipCellsForMutation(action, cellScanner);<a name="line.784"></a>
+<span class="sourceLineNo">785</span>          }<a name="line.785"></a>
+<span class="sourceLineNo">786</span>          continue;<a name="line.786"></a>
+<span class="sourceLineNo">787</span>        }<a name="line.787"></a>
+<span class="sourceLineNo">788</span>        if (action.hasGet()) {<a name="line.788"></a>
+<span class="sourceLineNo">789</span>          long before = EnvironmentEdgeManager.currentTime();<a name="line.789"></a>
+<span class="sourceLineNo">790</span>          try {<a name="line.790"></a>
+<span class="sourceLineNo">791</span>            Get get = ProtobufUtil.toGet(action.getGet());<a name="line.791"></a>
+<span class="sourceLineNo">792</span>            if (context != null) {<a name="line.792"></a>
+<span class="sourceLineNo">793</span>              r = get(get, ((HRegion) region), closeCallBack, context);<a name="line.793"></a>
+<span class="sourceLineNo">794</span>            } else {<a name="line.794"></a>
+<span class="sourceLineNo">795</span>              r = region.get(get);<a name="line.795"></a>
+<span class="sourceLineNo">796</span>            }<a name="line.796"></a>
+<span class="sourceLineNo">797</span>          } finally {<a name="line.797"></a>
+<span class="sourceLineNo">798</span>            if (regionServer.metricsRegionServer != null) {<a name="line.798"></a>
+<span class="sourceLineNo">799</span>              regionServer.metricsRegionServer.updateGet(<a name="line.799"></a>
+<span class="sourceLineNo">800</span>                  region.getTableDescriptor().getTableName(),<a name="line.800"></a>
+<span class="sourceLineNo">801</span>                  EnvironmentEdgeManager.currentTime() - before);<a name="line.801"></a>
+<span class="sourceLineNo">802</span>            }<a name="line.802"></a>
+<span class="sourceLineNo">803</span>          }<a name="line.803"></a>
+<span class="sourceLineNo">804</span>        } else if (action.hasServiceCall()) {<a name="line.804"></a>
+<span class="sourceLineNo">805</span>          hasResultOrException = true;<a name="line.805"></a>
+<span class="sourceLineNo">806</span>          try {<a name="line.806"></a>
+<span class="sourceLineNo">807</span>            com.google.protobuf.Message result =<a name="line.807"></a>
+<span class="sourceLineNo">808</span>                execServiceOnRegion(region, action.getServiceCall());<a name="line.808"></a>
+<span class="sourceLineNo">809</span>            ClientProtos.CoprocessorServiceResult.Builder serviceResultBuilder =<a name="line.809"></a>
+<span class="sourceLineNo">810</span>                ClientProtos.CoprocessorServiceResult.newBuilder();<a name="line.810"></a>
+<span class="sourceLineNo">811</span>            resultOrExceptionBuilder.setServiceResult(<a name="line.811"></a>
+<span class="sourceLineNo">812</span>                serviceResultBuilder.setValue(<a name="line.812"></a>
+<span class="sourceLineNo">813</span>                  serviceResultBuilder.getValueBuilder()<a name="line.813"></a>
+<span class="sourceLineNo">814</span>                    .setName(result.getClass().getName())<a name="line.814"></a>
+<span class="sourceLineNo">815</span>                    // TODO: Copy!!!<a name="line.815"></a>
+<span class="sourceLineNo">816</span>                    .setValue(UnsafeByteOperations.unsafeWrap(result.toByteArray()))));<a name="line.816"></a>
+<span class="sourceLineNo">817</span>          } catch (IOException ioe) {<a name="line.817"></a>
+<span class="sourceLineNo">818</span>            rpcServer.getMetrics().exception(ioe);<a name="line.818"></a>
+<span class="sourceLineNo">819</span>            NameBytesPair pair = ResponseConverter.buildException(ioe);<a name="line.819"></a>
+<span class="sourceLineNo">820</span>            resultOrExceptionBuilder.setException(pair);<a name="line.820"></a>
+<span class="sourceLineNo">821</span>            context.incrementResponseExceptionSize(pair.getSerializedSize());<a name="line.821"></a>
+<span class="sourceLineNo">822</span>          }<a name="line.822"></a>
+<span class="sourceLineNo">823</span>        } else if (action.hasMutation()) {<a name="line.823"></a>
+<span class="sourceLineNo">824</span>          MutationType type = action.getMutation().getMutateType();<a name="line.824"></a>
+<span class="sourceLineNo">825</span>          if (type != MutationType.PUT &amp;&amp; type != MutationType.DELETE &amp;&amp; mutations != null &amp;&amp;<a name="line.825"></a>
+<span class="sourceLineNo">826</span>              !mutations.isEmpty()) {<a name="line.826"></a>
+<span class="sourceLineNo">827</span>            // Flush out any Puts or Deletes already collected.<a name="line.827"></a>
+<span class="sourceLineNo">828</span>            doBatchOp(builder, region, quota, mutations, cellScanner, spaceQuotaEnforcement, false);<a name="line.828"></a>
+<span class="sourceLineNo">829</span>            mutations.clear();<a name="line.829"></a>
+<span class="sourceLineNo">830</span>          }<a name="line.830"></a>
+<span class="sourceLineNo">831</span>          switch (type) {<a name="line.831"></a>
+<span class="sourceLineNo">832</span>            case APPEND:<a name="line.832"></a>
+<span class="sourceLineNo">833</span>              r = append(region, quota, action.getMutation(), cellScanner, nonceGroup,<a name="line.833"></a>
+<span class="sourceLineNo">834</span>                  spaceQuotaEnforcement);<a name="line.834"></a>
+<span class="sourceLineNo">835</span>              break;<a name="line.835"></a>
+<span class="sourceLineNo">836</span>            case INCREMENT:<a name="line.836"></a>
+<span class="sourceLineNo">837</span>              r = increment(region, quota, action.getMutation(), cellScanner, nonceGroup,<a name="line.837"></a>
+<span class="sourceLineNo">838</span>                  spaceQuotaEnforcement);<a name="line.838"></a>
+<span class="sourceLineNo">839</span>              break;<a name="line.839"></a>
+<span class="sourceLineNo">840</span>            case PUT:<a name="line.840"></a>
+<span class="sourceLineNo">841</span>            case DELETE:<a name="line.841"></a>
+<span class="sourceLineNo">842</span>              // Collect the individual mutations and apply in a batch<a name="line.842"></a>
+<span class="sourceLineNo">843</span>              if (mutations == null) {<a name="line.843"></a>
+<span class="sourceLineNo">844</span>                mutations = new ArrayList&lt;&gt;(actions.getActionCount());<a name="line.844"></a>
+<span class="sourceLineNo">845</span>              }<a name="line.845"></a>
+<span class="sourceLineNo">846</span>              mutations.add(action);<a name="line.846"></a>
+<span class="sourceLineNo">847</span>              break;<a name="line.847"></a>
+<span class="sourceLineNo">848</span>            default:<a name="line.848"></a>
+<span class="sourceLineNo">849</span>              throw new DoNotRetryIOException("Unsupported mutate type: " + type.name());<a name="line.849"></a>
+<span class="sourceLineNo">850</span>          }<a name="line.850"></a>
+<span class="sourceLineNo">851</span>        } else {<a name="line.851"></a>
+<span class="sourceLineNo">852</span>          throw new HBaseIOException("Unexpected Action type");<a name="line.852"></a>
+<span class="sourceLineNo">853</span>        }<a name="line.853"></a>
+<span class="sourceLineNo">854</span>        if (r != null) {<a name="line.854"></a>
+<span class="sourceLineNo">855</span>          ClientProtos.Result pbResult = null;<a name="line.855"></a>
+<span class="sourceLineNo">856</span>          if (isClientCellBlockSupport(context)) {<a name="line.856"></a>
+<span class="sourceLineNo">857</span>            pbResult = ProtobufUtil.toResultNoData(r);<a name="line.857"></a>
+<span class="sourceLineNo">858</span>            //  Hard to guess the size here.  Just make a rough guess.<a name="line.858"></a>
+<span class="sourceLineNo">859</span>            if (cellsToReturn == null) {<a name="line.859"></a>
+<span class="sourceLineNo">860</span>              cellsToReturn = new ArrayList&lt;&gt;();<a name="line.860"></a>
+<span class="sourceLineNo">861</span>            }<a name="line.861"></a>
+<span class="sourceLineNo">862</span>            cellsToReturn.add(r);<a name="line.862"></a>
+<span class="sourceLineNo">863</span>          } else {<a name="line.863"></a>
+<span class="sourceLineNo">864</span>            pbResult = ProtobufUtil.toResult(r);<a name="line.864"></a>
+<span class="sourceLineNo">865</span>          }<a name="line.865"></a>
+<span class="sourceLineNo">866</span>          lastBlock = addSize(context, r, lastBlock);<a name="line.866"></a>
+<span class="sourceLineNo">867</span>          hasResultOrException = true;<a name="line.867"></a>
+<span class="sourceLineNo">868</span>          resultOrExceptionBuilder.setResult(pbResult);<a name="line.868"></a>
+<span class="sourceLineNo">869</span>        }<a name="line.869"></a>
+<span class="sourceLineNo">870</span>        // Could get to here and there was no result and no exception.  Presumes we added<a name="line.870"></a>
+<span class="sourceLineNo">871</span>        // a Put or Delete to the collecting Mutations List for adding later.  In this<a name="line.871"></a>
+<span class="sourceLineNo">872</span>        // case the corresponding ResultOrException instance for the Put or Delete will be added<a name="line.872"></a>
+<span class="sourceLineNo">873</span>        // down in the doBatchOp method call rather than up here.<a name="line.873"></a>
+<span class="sourceLineNo">874</span>      } catch (IOException ie) {<a name="line.874"></a>
+<span class="sourceLineNo">875</span>        rpcServer.getMetrics().exception(ie);<a name="line.875"></a>
+<span class="sourceLineNo">876</span>        hasResultOrException = true;<a name="line.876"></a>
+<span class="sourceLineNo">877</span>        NameBytesPair pair = ResponseConverter.buildException(ie);<a name="line.877"></a>
+<span class="sourceLineNo">878</span>        resultOrExceptionBuilder.setException(pair);<a name="line.878"></a>
+<span class="sourceLineNo">879</span>        context.incrementResponseExceptionSize(pair.getSerializedSize());<a name="line.879"></a>
+<span class="sourceLineNo">880</span>      }<a name="line.880"></a>
+<span class="sourceLineNo">881</span>      if (hasResultOrException) {<a name="line.881"></a>
+<span class="sourceLineNo">882</span>        // Propagate index.<a name="line.882"></a>
+<span class="sourceLineNo">883</span>        resultOrExceptionBuilder.setIndex(action.getIndex());<a name="line.883"></a>
+<span class="sourceLineNo">884</span>        builder.addResultOrException(resultOrExceptionBuilder.build());<a name="line.884"></a>
+<span class="sourceLineNo">885</span>      }<a name="line.885"></a>
+<span class="sourceLineNo">886</span>    }<a name="line.886"></a>
+<span class="sourceLineNo">887</span>    // Finish up any outstanding mutations<a name="line.887"></a>
+<span class="sourceLineNo">888</span>    if (mutations != null &amp;&amp; !mutations.isEmpty()) {<a name="line.888"></a>
+<span class="sourceLineNo">889</span>      try {<a name="line.889"></a>
+<span class="sourceLineNo">890</span>        doBatchOp(builder, region, quota, mutations, cellScanner, spaceQuotaEnforcement, false);<a name="line.890"></a>
+<span class="sourceLineNo">891</span>      } catch (IOException ioe) {<a name="line.891"></a>
+<span class="sourceLineNo">892</span>        rpcServer.getMetrics().exception(ioe);<a name="line.892"></a>
+<span class="sourceLineNo">893</span>        NameBytesPair pair = ResponseConverter.buildException(ioe);<a name="line.893"></a>
+<span class="sourceLineNo">894</span>        resultOrExceptionBuilder.setException(pair);<a name="line.894"></a>
+<span class="sourceLineNo">895</span>        context.incrementResponseExceptionSize(pair.getSerializedSize());<a name="line.895"></a>
+<span class="sourceLineNo">896</span>        builder.addResultOrException(resultOrExceptionBuilder.build());<a name="line.896"></a>
+<span class="sourceLineNo">897</span>      }<a name="line.897"></a>
+<span class="sourceLineNo">898</span>    }<a name="line.898"></a>
+<span class="sourceLineNo">899</span>    return cellsToReturn;<a name="line.899"></a>
+<span class="sourceLineNo">900</span>  }<a name="line.900"></a>
+<span class="sourceLineNo">901</span><a name="line.901"></a>
+<span class="sourceLineNo">902</span>  private void checkCellSizeLimit(final HRegion r, final Mutation m) throws IOException {<a name="line.902"></a>
+<span class="sourceLineNo">903</span>    if (r.maxCellSize &gt; 0) {<a name="line.903"></a>
+<span class="sourceLineNo">904</span>      CellScanner cells = m.cellScanner();<a name="line.904"></a>
+<span class="sourceLineNo">905</span>      while (cells.advance()) {<a name="line.905"></a>
+<span class="sourceLineNo">906</span>        int size = PrivateCellUtil.estimatedSerializedSizeOf(cells.current());<a name="line.906"></a>
+<span class="sourceLineNo">907</span>        if (size &gt; r.maxCellSize) {<a name="line.907"></a>
+<span class="sourceLineNo">908</span>          String msg = "Cell with size " + size + " exceeds limit of " + r.maxCellSize + " bytes";<a name="line.908"></a>
+<span class="sourceLineNo">909</span>          if (LOG.isDebugEnabled()) {<a name="line.909"></a>
+<span class="sourceLineNo">910</span>            LOG.debug(msg);<a name="line.910"></a>
+<span class="sourceLineNo">911</span>          }<a name="line.911"></a>
+<span class="sourceLineNo">912</span>          throw new DoNotRetryIOException(msg);<a name="line.912"></a>
+<span class="sourceLineNo">913</span>        }<a name="line.913"></a>
+<span class="sourceLineNo">914</span>      }<a name="line.914"></a>
+<span class="sourceLineNo">915</span>    }<a name="line.915"></a>
+<span class="sourceLineNo">916</span>  }<a name="line.916"></a>
+<span class="sourceLineNo">917</span><a name="line.917"></a>
+<span class="sourceLineNo">918</span>  /**<a name="line.918"></a>
+<span class="sourceLineNo">919</span>   * Execute a list of Put/Delete mutations.<a name="line.919"></a>
+<span class="sourceLineNo">920</span>   *<a name="line.920"></a>
+<span class="sourceLineNo">921</span>   * @param builder<a name="line.921"></a>
+<span class="sourceLineNo">922</span>   * @param region<a name="line.922"></a>
+<span class="sourceLineNo">923</span>   * @param mutations<a name="line.923"></a>
+<span class="sourceLineNo">924</span>   */<a name="line.924"></a>
+<span class="sourceLineNo">925</span>  private void doBatchOp(final RegionActionResult.Builder builder, final HRegion region,<a name="line.925"></a>
+<span class="sourceLineNo">926</span>      final OperationQuota quota, final List&lt;ClientProtos.Action&gt; mutations,<a name="line.926"></a>
+<span class="sourceLineNo">927</span>      final CellScanner cells, ActivePolicyEnforcement spaceQuotaEnforcement, boolean atomic)<a name="line.927"></a>
+<span class="sourceLineNo">928</span>      throws IOException {<a name="line.928"></a>
+<span class="sourceLineNo">929</span>    Mutation[] mArray = new Mutation[mutations.size()];<a name="line.929"></a>
+<span class="sourceLineNo">930</span>    long before = EnvironmentEdgeManager.currentTime();<a name="line.930"></a>
+<span class="sourceLineNo">931</span>    boolean batchContainsPuts = false, batchContainsDelete = false;<a name="line.931"></a>
+<span class="sourceLineNo">932</span>    try {<a name="line.932"></a>
+<span class="sourceLineNo">933</span>      /** HBASE-17924<a name="line.933"></a>
+<span class="sourceLineNo">934</span>       * mutationActionMap is a map to map the relation between mutations and actions<a name="line.934"></a>
+<span class="sourceLineNo">935</span>       * since mutation array may have been reoredered.In order to return the right<a name="line.935"></a>
+<span class="sourceLineNo">936</span>       * result or exception to the corresponding actions, We need to know which action<a name="line.936"></a>
+<span class="sourceLineNo">937</span>       * is the mutation belong to. We can't sort ClientProtos.Action array, since they<a name="line.937"></a>
+<span class="sourceLineNo">938</span>       * are bonded to cellscanners.<a name="line.938"></a>
+<span class="sourceLineNo">939</span>       */<a name="line.939"></a>
+<span class="sourceLineNo">940</span>      Map&lt;Mutation, ClientProtos.Action&gt; mutationActionMap = new HashMap&lt;&gt;();<a name="line.940"></a>
+<span class="sourceLineNo">941</span>      int i = 0;<a name="line.941"></a>
+<span class="sourceLineNo">942</span>      for (ClientProtos.Action action: mutations) {<a name="line.942"></a>
+<span class="sourceLineNo">943</span>        MutationProto m = action.getMutation();<a name="line.943"></a>
+<span class="sourceLineNo">944</span>        Mutation mutation;<a name="line.944"></a>
+<span class="sourceLineNo">945</span>        if (m.getMutateType() == MutationType.PUT) {<a name="line.945"></a>
+<span class="sourceLineNo">946</span>          mutation = ProtobufUtil.toPut(m, cells);<a name="line.946"></a>
+<span class="sourceLineNo">947</span>          batchContainsPuts = true;<a name="line.947"></a>
+<span class="sourceLineNo">948</span>        } else {<a name="line.948"></a>
+<span class="sourceLineNo">949</span>          mutation = ProtobufUtil.toDelete(m, cells);<a name="line.949"></a>
+<span class="sourceLineNo">950</span>          batchContainsDelete = true;<a name="line.950"></a>
+<span class="sourceLineNo">951</span>        }<a name="line.951"></a>
+<span class="sourceLineNo">952</span>        mutationActionMap.put(mutation, action);<a name="line.952"></a>
+<span class="sourceLineNo">953</span>        mArray[i++] = mutation;<a name="line.953"></a>
+<span class="sourceLineNo">954</span>        checkCellSizeLimit(region, mutation);<a name="line.954"></a>
+<span class="sourceLineNo">955</span>        // Check if a space quota disallows this mutation<a name="line.955"></a>
+<span class="sourceLineNo">956</span>        spaceQuotaEnforcement.getPolicyEnforcement(region).check(mutation);<a name="line.956"></a>
+<span class="sourceLineNo">957</span>        quota.addMutation(mutation);<a name="line.957"></a>
+<span class="sourceLineNo">958</span>      }<a name="line.958"></a>
+<span class="sourceLineNo">959</span><a name="line.959"></a>
+<span class="sourceLineNo">960</span>      if (!region.getRegionInfo().isMetaRegion()) {<a name="line.960"></a>
+<span class="sourceLineNo">961</span>        regionServer.cacheFlusher.reclaimMemStoreMemory();<a name="line.961"></a>
+<span class="sourceLineNo">962</span>      }<a name="line.962"></a>
+<span class="sourceLineNo">963</span><a name="line.963"></a>
+<span class="sourceLineNo">964</span>      // HBASE-17924<a name="line.964"></a>
+<span class="sourceLineNo">965</span>      // Sort to improve lock efficiency for non-atomic batch of operations. If atomic (mostly<a name="line.965"></a>
+<span class="sourceLineNo">966</span>      // called from mutateRows()), order is preserved as its expected from the client<a name="line.966"></a>
+<span class="sourceLineNo">967</span>      if (!atomic) {<a name="line.967"></a>
+<span class="sourceLineNo">968</span>        Arrays.sort(mArray);<a name="line.968"></a>
+<span class="sourceLineNo">969</span>      }<a name="line.969"></a>
+<span class="sourceLineNo">970</span><a name="line.970"></a>
+<span class="sourceLineNo">971</span>      OperationStatus[] codes = region.batchMutate(mArray, atomic, HConstants.NO_NONCE,<a name="line.971"></a>
+<span class="sourceLineNo">972</span>        HConstants.NO_NONCE);<a name="line.972"></a>
+<span class="sourceLineNo">973</span>      for (i = 0; i &lt; codes.length; i++) {<a name="line.973"></a>
+<span class="sourceLineNo">974</span>        Mutation currentMutation = mArray[i];<a name="line.974"></a>
+<span class="sourceLineNo">975</span>        ClientProtos.Action currentAction = mutationActionMap.get(currentMutation);<a name="line.975"></a>
+<span class="sourceLineNo">976</span>        int index = currentAction.hasIndex() || !atomic ? currentAction.getIndex() : i;<a name="line.976"></a>
+<span class="sourceLineNo">977</span>        Exception e = null;<a name="line.977"></a>
+<span class="sourceLineNo">978</span>        switch (codes[i].getOperationStatusCode()) {<a name="line.978"></a>
+<span class="sourceLineNo">979</span>          case BAD_FAMILY:<a name="line.979"></a>
+<span class="sourceLineNo">980</span>            e = new NoSuchColumnFamilyException(codes[i].getExceptionMsg());<a name="line.980"></a>
+<span class="sourceLineNo">981</span>            builder.addResultOrException(getResultOrException(e, index));<a name="line.981"></a>
+<span class="sourceLineNo">982</span>            break;<a name="line.982"></a>
+<span class="sourceLineNo">983</span><a name="line.983"></a>
+<span class="sourceLineNo">984</span>          case SANITY_CHECK_FAILURE:<a name="line.984"></a>
+<span class="sourceLineNo">985</span>            e = new FailedSanityCheckException(codes[i].getExceptionMsg());<a name="line.985"></a>
+<span class="sourceLineNo">986</span>            builder.addResultOrException(getResultOrException(e, index));<a name="line.986"></a>
+<span class="sourceLineNo">987</span>            break;<a name="line.987"></a>
+<span class="sourceLineNo">988</span><a name="line.988"></a>
+<span class="sourceLineNo">989</span>          default:<a name="line.989"></a>
+<span class="sourceLineNo">990</span>            e = new DoNotRetryIOException(codes[i].getExceptionMsg());<a name="line.990"></a>
+<span class="sourceLineNo">991</span>            builder.addResultOrException(getResultOrException(e, index));<a name="line.991"></a>
+<span class="sourceLineNo">992</span>            break;<a name="line.992"></a>
+<span class="sourceLineNo">993</span><a name="line.993"></a>
+<span class="sourceLineNo">994</span>          case SUCCESS:<a name="line.994"></a>
+<span class="sourceLineNo">995</span>            builder.addResultOrException(getResultOrException(<a name="line.995"></a>
+<span class="sourceLineNo">996</span>              ClientProtos.Result.getDefaultInstance(), index));<a name="line.996"></a>
+<span class="sourceLineNo">997</span>            break;<a name="line.997"></a>
+<span class="sourceLineNo">998</span>        }<a name="line.998"></a>
+<span class="sourceLineNo">999</span>      }<a name="line.999"></a>
+<span class="sourceLineNo">1000</span>    } catch (IOException ie) {<a name="line.1000"></a>
+<span class="sourceLineNo">1001</span>      if (atomic) {<a name="line.1001"></a>
+<span class="sourceLineNo">1002</span>        throw ie;<a name="line.1002"></a>
 <span class="sourceLineNo">1003</span>      }<a name="line.1003"></a>
-<span class="sourceLineNo">1004</span>    }<a name="line.1004"></a>
-<span class="sourceLineNo">1005</span>    if (regionServer.metricsRegionServer != null) {<a name="line.1005"></a>
-<span class="sourceLineNo">1006</span>      long after = EnvironmentEdgeManager.currentTime();<a name="line.1006"></a>
-<span class="sourceLineNo">1007</span>      if (batchContainsPuts) {<a name="line.1007"></a>
-<span class="sourceLineNo">1008</span>        regionServer.metricsRegionServer.updatePutBatch(after - before);<a name="line.1008"></a>
-<span class="sourceLineNo">1009</span>      }<a name="line.1009"></a>
-<span class="sourceLineNo">1010</span>      if (batchContainsDelete) {<a name="line.1010"></a>
-<span class="sourceLineNo">1011</span>        regionServer.metricsRegionServer.updateDeleteBatch(after - before);<a name="line.1011"></a>
-<span class="sourceLineNo">1012</span>      }<a name="line.1012"></a>
-<span class="sourceLineNo">1013</span>    }<a name="line.1013"></a>
-<span class="sourceLineNo">1014</span>  }<a name="line.1014"></a>
-<span class="sourceLineNo">1015</span><a name="line.1015"></a>
-<span class="sourceLineNo">1016</span>  /**<a name="line.1016"></a>
-<span class="sourceLineNo">1017</span>   * Execute a list of Put/Delete mutations. The function returns OperationStatus instead of<a name="line.1017"></a>
-<span class="sourceLineNo">1018</span>   * constructing MultiResponse to save a possible loop if caller doesn't need MultiResponse.<a name="line.1018"></a>
-<span class="sourceLineNo">1019</span>   * @param region<a name="line.1019"></a>
-<span class="sourceLineNo">1020</span>   * @param mutations<a name="line.1020"></a>
-<span class="sourceLineNo">1021</span>   * @param replaySeqId<a name="line.1021"></a>
-<span class="sourceLineNo">1022</span>   * @return an array of OperationStatus which internally contains the OperationStatusCode and the<a name="line.1022"></a>
-<span class="sourceLineNo">1023</span>   *         exceptionMessage if any<a name="line.1023"></a>
-<span class="sourceLineNo">1024</span>   * @throws IOException<a name="line.1024"></a>
-<span class="sourceLineNo">1025</span>   */<a name="line.1025"></a>
-<span class="sourceLineNo">1026</span>  private OperationStatus [] doReplayBatchOp(final HRegion region,<a name="line.1026"></a>
-<span class="sourceLineNo">1027</span>      final List&lt;WALSplitter.MutationReplay&gt; mutations, long replaySeqId) throws IOException {<a name="line.1027"></a>
-<span class="sourceLineNo">1028</span>    long before = EnvironmentEdgeManager.currentTime();<a name="line.1028"></a>
-<span class="sourceLineNo">1029</span>    boolean batchContainsPuts = false, batchContainsDelete = false;<a name="line.1029"></a>
-<span class="sourceLineNo">1030</span>    try {<a name="line.1030"></a>
-<span class="sourceLineNo">1031</span>      for (Iterator&lt;WALSplitter.MutationReplay&gt; it = mutations.iterator(); it.hasNext();) {<a name="line.1031"></a>
-<span class="sourceLineNo">1032</span>        WALSplitter.MutationReplay m = it.next();<a name="line.1032"></a>
-<span class="sourceLineNo">1033</span><a name="line.1033"></a>
-<span class="sourceLineNo">1034</span>        if (m.type == MutationType.PUT) {<a name="line.1034"></a>
-<span class="sourceLineNo">1035</span>          batchContainsPuts = true;<a name="line.1035"></a>
-<span class="sourceLineNo">1036</span>        } else {<a name="line.1036"></a>
-<span class="sourceLineNo">1037</span>          batchContainsDelete = true;<a name="line.1037"></a>
-<span class="sourceLineNo">1038</span>        }<a name="line.1038"></a>
-<span class="sourceLineNo">1039</span><a name="line.1039"></a>
-<span class="sourceLineNo">1040</span>        NavigableMap&lt;byte[], List&lt;Cell&gt;&gt; map = m.mutation.getFamilyCellMap();<a name="line.1040"></a>
-<span class="sourceLineNo">1041</span>        List&lt;Cell&gt; metaCells = map.get(WALEdit.METAFAMILY);<a name="line.1041"></a>
-<span class="sourceLineNo">1042</span>        if (metaCells != null &amp;&amp; !metaCells.isEmpty()) {<a name="line.1042"></a>
-<span class="sourceLineNo">1043</span>          for (Cell metaCell : metaCells) {<a name="line.1043"></a>
-<span class="sourceLineNo">1044</span>            CompactionDescriptor compactionDesc = WALEdit.getCompaction(metaCell);<a name="line.1044"></a>
-<span class="sourceLineNo">1045</span>            boolean isDefaultReplica = RegionReplicaUtil.isDefaultReplica(region.getRegionInfo());<a name="line.1045"></a>
-<span class="sourceLineNo">1046</span>            HRegion hRegion = (HRegion)region;<a name="line.1046"></a>
-<span class="sourceLineNo">1047</span>            if (compactionDesc != null) {<a name="line.1047"></a>
-<span class="sourceLineNo">1048</span>              // replay the compaction. Remove the files from stores only if we are the primary<a name="line.1048"></a>
-<span class="sourceLineNo">1049</span>              // region replica (thus own the files)<a name="line.1049"></a>
-<span class="sourceLineNo">1050</span>              hRegion.replayWALCompactionMarker(compactionDesc, !isDefaultReplica, isDefaultReplica,<a name="line.1050"></a>
-<span class="sourceLineNo">1051</span>                replaySeqId);<a name="line.1051"></a>
-<span class="sourceLineNo">1052</span>              continue;<a name="line.1052"></a>
-<span class="sourceLineNo">1053</span>            }<a name="line.1053"></a>
-<span class="sourceLineNo">1054</span>            FlushDescriptor flushDesc = WALEdit.getFlushDescriptor(metaCell);<a name="line.1054"></a>
-<span class="sourceLineNo">1055</span>            if (flushDesc != null &amp;&amp; !isDefaultReplica) {<a name="line.1055"></a>
-<span class="sourceLineNo">1056</span>              hRegion.replayWALFlushMarker(flushDesc, replaySeqId);<a name="line.1056"></a>
+<span class="sourceLineNo">1004</span>      for (Action mutation : mutations) {<a name="line.1004"></a>
+<span class="sourceLineNo">1005</span>        builder.addResultOrException(getResultOrException(ie, mutation.getIndex()));<a name="line.1005"></a>
+<span class="sourceLineNo">1006</span>      }<a name="line.1006"></a>
+<span class="sourceLineNo">1007</span>    }<a name="line.1007"></a>
+<span class="sourceLineNo">1008</span>    if (regionServer.metricsRegionServer != null) {<a name="line.1008"></a>
+<span class="sourceLineNo">1009</span>      long after = EnvironmentEdgeManager.currentTime();<a name="line.1009"></a>
+<span class="sourceLineNo">1010</span>      if (batchContainsPuts) {<a name="line.1010"></a>
+<span class="sourceLineNo">1011</span>        regionServer.metricsRegionServer.updatePutBatch(<a name="line.1011"></a>
+<span class="sourceLineNo">1012</span>            region.getTableDescriptor().getTableName(), after - before);<a name="line.1012"></a>
+<span class="sourceLineNo">1013</span>      }<a name="line.1013"></a>
+<span class="sourceLineNo">1014</span>      if (batchContainsDelete) {<a name="line.1014"></a>
+<span class="sourceLineNo">1015</span>        regionServer.metricsRegionServer.updateDeleteBatch(<a name="line.1015"></a>
+<span class="sourceLineNo">1016</span>            region.getTableDescriptor().getTableName(), after - before);<a name="line.1016"></a>
+<span class="sourceLineNo">1017</span>      }<a name="line.1017"></a>
+<span class="sourceLineNo">1018</span>    }<a name="line.1018"></a>
+<span class="sourceLineNo">1019</span>  }<a name="line.1019"></a>
+<span class="sourceLineNo">1020</span><a name="line.1020"></a>
+<span class="sourceLineNo">1021</span>  /**<a name="line.1021"></a>
+<span class="sourceLineNo">1022</span>   * Execute a list of Put/Delete mutations. The function returns OperationStatus instead of<a name="line.1022"></a>
+<span class="sourceLineNo">1023</span>   * constructing MultiResponse to save a possible loop if caller doesn't need MultiResponse.<a name="line.1023"></a>
+<span class="sourceLineNo">1024</span>   * @param region<a name="line.1024"></a>
+<span class="sourceLineNo">1025</span>   * @param mutations<a name="line.1025"></a>
+<span class="sourceLineNo">1026</span>   * @param replaySeqId<a name="line.1026"></a>
+<span class="sourceLineNo">1027</span>   * @return an array of OperationStatus which internally contains the OperationStatusCode and the<a name="line.1027"></a>
+<span class="sourceLineNo">1028</span>   *         exceptionMessage if any<a name="line.1028"></a>
+<span class="sourceLineNo">1029</span>   * @throws IOException<a name="line.1029"></a>
+<span class="sourceLineNo">1030</span>   */<a name="line.1030"></a>
+<span class="sourceLineNo">1031</span>  private OperationStatus [] doReplayBatchOp(final HRegion region,<a name="line.1031"></a>
+<span class="sourceLineNo">1032</span>      final List&lt;WALSplitter.MutationReplay&gt; mutations, long replaySeqId) throws IOException {<a name="line.1032"></a>
+<span class="sourceLineNo">1033</span>    long before = EnvironmentEdgeManager.currentTime();<a name="line.1033"></a>
+<span class="sourceLineNo">1034</span>    boolean batchContainsPuts = false, batchContainsDelete = false;<a name="line.1034"></a>
+<span class="sourceLineNo">1035</span>    try {<a name="line.1035"></a>
+<span class="sourceLineNo">1036</span>      for (Iterator&lt;WALSplitter.MutationReplay&gt; it = mutations.iterator(); it.hasNext();) {<a name="line.1036"></a>
+<span class="sourceLineNo">1037</span>        WALSplitter.MutationReplay m = it.next();<a name="line.1037"></a>
+<span class="sourceLineNo">1038</span><a name="line.1038"></a>
+<span class="sourceLineNo">1039</span>        if (m.type == MutationType.PUT) {<a name="line.1039"></a>
+<span class="sourceLineNo">1040</span>          batchContainsPuts = true;<a name="line.1040"></a>
+<span class="sourceLineNo">1041</span>        } else {<a name="line.1041"></a>
+<span class="sourceLineNo">1042</span>          batchContainsDelete = true;<a name="line.1042"></a>
+<span class="sourceLineNo">1043</span>        }<a name="line.1043"></a>
+<span class="sourceLineNo">1044</span><a name="line.1044"></a>
+<span class="sourceLineNo">1045</span>        NavigableMap&lt;byte[], List&lt;Cell&gt;&gt; map = m.mutation.getFamilyCellMap();<a name="line.1045"></a>
+<span class="sourceLineNo">1046</span>        List&lt;Cell&gt; metaCells = map.get(WALEdit.METAFAMILY);<a name="line.1046"></a>
+<span class="sourceLineNo">1047</span>        if (metaCells != null &amp;&amp; !metaCells.isEmpty()) {<a name="line.1047"></a>
+<span class="sourceLineNo">1048</span>          for (Cell metaCell : metaCells) {<a name="line.1048"></a>
+<span class="sourceLineNo">1049</span>            CompactionDescriptor compactionDesc = WALEdit.getCompaction(metaCell);<a name="line.1049"></a>
+<span class="sourceLineNo">1050</span>            boolean isDefaultReplica = RegionReplicaUtil.isDefaultReplica(region.getRegionInfo());<a name="line.1050"></a>
+<span class="sourceLineNo">1051</span>            HRegion hRegion = (HRegion)region;<a name="line.1051"></a>
+<span class="sourceLineNo">1052</span>            if (compactionDesc != null) {<a name="line.1052"></a>
+<span class="sourceLineNo">1053</span>              // replay the compaction. Remove the files from stores only if we are the primary<a name="line.1053"></a>
+<span class="sourceLineNo">1054</span>              // region replica (thus own the files)<a name="line.1054"></a>
+<span class="sourceLineNo">1055</span>              hRegion.replayWALCompactionMarker(compactionDesc, !isDefaultReplica, isDefaultReplica,<a name="line.1055"></a>
+<span class="sourceLineNo">1056</span>                replaySeqId);<a name="line.1056"></a>
 <span class="sourceLineNo">1057</span>              continue;<a name="line.1057"></a>
 <span class="sourceLineNo">1058</span>            }<a name="line.1058"></a>
-<span class="sourceLineNo">1059</span>            RegionEventDescriptor regionEvent = WALEdit.getRegionEventDescriptor(metaCell);<a name="line.1059"></a>
-<span class="sourceLineNo">1060</span>            if (regionEvent != null &amp;&amp; !isDefaultReplica) {<a name="line.1060"></a>
-<span class="sourceLineNo">1061</span>              hRegion.replayWALRegionEventMarker(regionEvent);<a name="line.1061"></a>
+<span class="sourceLineNo">1059</span>            FlushDescriptor flushDesc = WALEdit.getFlushDescriptor(metaCell);<a name="line.1059"></a>
+<span class="sourceLineNo">1060</span>            if (flushDesc != null &amp;&amp; !isDefaultReplica) {<a name="line.1060"></a>
+<span class="sourceLineNo">1061</span>              hRegion.replayWALFlushMarker(flushDesc, replaySeqId);<a name="line.1061"></a>
 <span class="sourceLineNo">1062</span>              continue;<a name="line.1062"></a>
 <span class="sourceLineNo">1063</span>            }<a name="line.1063"></a>
-<span class="sourceLineNo">1064</span>            BulkLoadDescriptor bulkLoadEvent = WALEdit.getBulkLoadDescriptor(metaCell);<a name="line.1064"></a>
-<span class="sourceLineNo">1065</span>            if (bulkLoadEvent != null) {<a name="line.1065"></a>
-<span class="sourceLineNo">1066</span>              hRegion.replayWALBulkLoadEventMarker(bulkLoadEvent);<a name="line.1066"></a>
+<span class="sourceLineNo">1064</span>            RegionEventDescriptor regionEvent = WALEdit.getRegionEventDescriptor(metaCell);<a name="line.1064"></a>
+<span class="sourceLineNo">1065</span>            if (regionEvent != null &amp;&amp; !isDefaultReplica) {<a name="line.1065"></a>
+<span class="sourceLineNo">1066</span>              hRegion.replayWALRegionEventMarker(regionEvent);<a name="line.1066"></a>
 <span class="sourceLineNo">1067</span>              continue;<a name="line.1067"></a>
 <span class="sourceLineNo">1068</span>            }<a name="line.1068"></a>
-<span class="sourceLineNo">1069</span>          }<a name="line.1069"></a>
-<span class="sourceLineNo">1070</span>          it.remove();<a name="line.1070"></a>
-<span class="sourceLineNo">1071</span>        }<a name="line.1071"></a>
-<span class="sourceLineNo">1072</span>      }<a name="line.1072"></a>
-<span class="sourceLineNo">1073</span>      requestCount.increment();<a name="line.1073"></a>
-<span class="sourceLineNo">1074</span>      if (!region.getRegionInfo().isMetaRegion()) {<a name="line.1074"></a>
-<span class="sourceLineNo">1075</span>        regionServer.cacheFlusher.reclaimMemStoreMemory();<a name="line.1075"></a>
-<span class="sourceLineNo">1076</span>      }<a name="line.1076"></a>
-<span class="sourceLineNo">1077</span>      return region.batchReplay(mutations.toArray(<a name="line.1077"></a>
-<span class="sourceLineNo">1078</span>        new WALSplitter.MutationReplay[mutations.size()]), replaySeqId);<a name="line.1078"></a>
-<span class="sourceLineNo">1079</span>    } finally {<a name="line.1079"></a>
-<span class="sourceLineNo">1080</span>      if (regionServer.metricsRegionServer != null) {<a name="line.1080"></a>
-<span class="sourceLineNo">1081</span>        long after = EnvironmentEdgeManager.currentTime();<a name="line.1081"></a>
-<span class="sourceLineNo">1082</span>          if (batchContainsPuts) {<a name="line.1082"></a>
-<span class="sourceLineNo">1083</span>          regionServer.metricsRegionServer.updatePutBatch(after - before);<a name="line.1083"></a>
-<span class="sourceLineNo">1084</span>        }<a name="line.1084"></a>
-<span class="sourceLineNo">1085</span>        if (batchContainsDelete) {<a name="line.1085"></a>
-<span class="sourceLineNo">1086</span>          regionServer.metricsRegionServer.updateDeleteBatch(after - before);<a name="line.1086"></a>
-<span class="sourceLineNo">1087</span>        }<a name="line.1087"></a>
-<span class="sourceLineNo">1088</span>      }<a name="line.1088"></a>
-<span class="sourceLineNo">1089</span>    }<a name="line.1089"></a>
-<span class="sourceLineNo">1090</span>  }<a name="line.1090"></a>
-<span class="sourceLineNo">1091</span><a name="line.1091"></a>
-<span class="sourceLineNo">1092</span>  private void closeAllScanners() {<a name="line.1092"></a>
-<span class="sourceLineNo">1093</span>    // Close any outstanding scanners. Means they'll get an UnknownScanner<a name="line.1093"></a>
-<span class="sourceLineNo">1094</span>    // exception next time they come in.<a name="line.1094"></a>
-<span class="sourceLineNo">1095</span>    for (Map.Entry&lt;String, RegionScannerHolder&gt; e : scanners.entrySet()) {<a name="line.1095"></a>
-<span class="sourceLineNo">1096</span>      try {<a name="line.1096"></a>
-<span class="sourceLineNo">1097</span>        e.getValue().s.close();<a name="line.1097"></a>
-<span class="sourceLineNo">1098</span>      } catch (IOException ioe) {<a name="line.1098"></a>
-<span class="sourceLineNo">1099</span>        LOG.warn("Closing scanner " + e.getKey(), ioe);<a name="line.1099"></a>
-<span class="sourceLineNo">1100</span>      }<a name="line.1100"></a>
-<span class="sourceLineNo">1101</span>    }<a name="line.1101"></a>
-<span class="sourceLineNo">1102</span>  }<a name="line.1102"></a>
-<span class="sourceLineNo">1103</span><a name="line.1103"></a>
-<span class="sourceLineNo">1104</span>  // Exposed for testing<a name="line.1104"></a>
-<span class="sourceLineNo">1105</span>  interface LogDelegate {<a name="line.1105"></a>
-<span class="sourceLineNo">1106</span>    void logBa

<TRUNCATED>

[31/32] hbase-site git commit: Published site at .

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/29b27596/checkstyle-aggregate.html
----------------------------------------------------------------------
diff --git a/checkstyle-aggregate.html b/checkstyle-aggregate.html
index 0c7854e..e486bb8 100644
--- a/checkstyle-aggregate.html
+++ b/checkstyle-aggregate.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="20171201" />
+    <meta name="Date-Revision-yyyymmdd" content="20171202" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Checkstyle Results</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -286,10 +286,10 @@
 <th><img src="images/icon_warning_sml.gif" alt="" />&#160;Warnings</th>
 <th><img src="images/icon_error_sml.gif" alt="" />&#160;Errors</th></tr>
 <tr class="b">
-<td>3440</td>
+<td>3444</td>
 <td>0</td>
 <td>0</td>
-<td>20765</td></tr></table></div>
+<td>20767</td></tr></table></div>
 <div class="section">
 <h2><a name="Files"></a>Files</h2>
 <table border="0" class="table table-striped">
@@ -8089,4751 +8089,4756 @@
 <td>0</td>
 <td>2</td></tr>
 <tr class="b">
+<td><a href="#org.apache.hadoop.hbase.regionserver.MetricsTableLatenciesImpl.java">org/apache/hadoop/hbase/regionserver/MetricsTableLatenciesImpl.java</a></td>
+<td>0</td>
+<td>0</td>
+<td>1</td></tr>
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.MetricsTableSourceImpl.java">org/apache/hadoop/hbase/regionserver/MetricsTableSourceImpl.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>3</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.MetricsTableWrapperAggregateImpl.java">org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregateImpl.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>20</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.MiniBatchOperationInProgress.java">org/apache/hadoop/hbase/regionserver/MiniBatchOperationInProgress.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>10</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.MobReferenceOnlyFilter.java">org/apache/hadoop/hbase/regionserver/MobReferenceOnlyFilter.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.MockHStoreFile.java">org/apache/hadoop/hbase/regionserver/MockHStoreFile.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.MultiVersionConcurrencyControl.java">org/apache/hadoop/hbase/regionserver/MultiVersionConcurrencyControl.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>6</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.MutableOnlineRegions.java">org/apache/hadoop/hbase/regionserver/MutableOnlineRegions.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.MutableSegment.java">org/apache/hadoop/hbase/regionserver/MutableSegment.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>3</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.NoOpHeapMemoryTuner.java">org/apache/hadoop/hbase/regionserver/NoOpHeapMemoryTuner.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.NoTagByteBufferChunkCell.java">org/apache/hadoop/hbase/regionserver/NoTagByteBufferChunkCell.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.NonLazyKeyValueScanner.java">org/apache/hadoop/hbase/regionserver/NonLazyKeyValueScanner.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.NonReversedNonLazyKeyValueScanner.java">org/apache/hadoop/hbase/regionserver/NonReversedNonLazyKeyValueScanner.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.OOMERegionServer.java">org/apache/hadoop/hbase/regionserver/OOMERegionServer.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.OnlineRegions.java">org/apache/hadoop/hbase/regionserver/OnlineRegions.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>6</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.OperationStatus.java">org/apache/hadoop/hbase/regionserver/OperationStatus.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.RSDumpServlet.java">org/apache/hadoop/hbase/regionserver/RSDumpServlet.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.RSRpcServices.java">org/apache/hadoop/hbase/regionserver/RSRpcServices.java</a></td>
 <td>0</td>
 <td>0</td>
-<td>131</td></tr>
-<tr class="a">
+<td>132</td></tr>
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.RSStatusServlet.java">org/apache/hadoop/hbase/regionserver/RSStatusServlet.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>5</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.Region.java">org/apache/hadoop/hbase/regionserver/Region.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>34</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.RegionAsTable.java">org/apache/hadoop/hbase/regionserver/RegionAsTable.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>22</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.RegionCoprocessorHost.java">org/apache/hadoop/hbase/regionserver/RegionCoprocessorHost.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>80</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.RegionScanner.java">org/apache/hadoop/hbase/regionserver/RegionScanner.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.RegionServerAccounting.java">org/apache/hadoop/hbase/regionserver/RegionServerAccounting.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.RegionServerCoprocessorHost.java">org/apache/hadoop/hbase/regionserver/RegionServerCoprocessorHost.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>7</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.RegionServerServices.java">org/apache/hadoop/hbase/regionserver/RegionServerServices.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>6</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.RegionServicesForStores.java">org/apache/hadoop/hbase/regionserver/RegionServicesForStores.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>6</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.RegionSplitPolicy.java">org/apache/hadoop/hbase/regionserver/RegionSplitPolicy.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>6</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.ReplicationService.java">org/apache/hadoop/hbase/regionserver/ReplicationService.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>3</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.ReplicationSinkService.java">org/apache/hadoop/hbase/regionserver/ReplicationSinkService.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.ReplicationSourceService.java">org/apache/hadoop/hbase/regionserver/ReplicationSourceService.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.ReversedKeyValueHeap.java">org/apache/hadoop/hbase/regionserver/ReversedKeyValueHeap.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>7</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.ReversedRegionScannerImpl.java">org/apache/hadoop/hbase/regionserver/ReversedRegionScannerImpl.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>6</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.ReversedStoreScanner.java">org/apache/hadoop/hbase/regionserver/ReversedStoreScanner.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.RowProcessor.java">org/apache/hadoop/hbase/regionserver/RowProcessor.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>7</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.RpcSchedulerFactory.java">org/apache/hadoop/hbase/regionserver/RpcSchedulerFactory.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.ScanInfo.java">org/apache/hadoop/hbase/regionserver/ScanInfo.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>4</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.ScanOptions.java">org/apache/hadoop/hbase/regionserver/ScanOptions.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>3</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.ScannerContext.java">org/apache/hadoop/hbase/regionserver/ScannerContext.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>13</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.ScannerIdGenerator.java">org/apache/hadoop/hbase/regionserver/ScannerIdGenerator.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>7</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.SecureBulkLoadEndpointClient.java">org/apache/hadoop/hbase/regionserver/SecureBulkLoadEndpointClient.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>3</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.SecureBulkLoadManager.java">org/apache/hadoop/hbase/regionserver/SecureBulkLoadManager.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>4</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.Segment.java">org/apache/hadoop/hbase/regionserver/Segment.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.SegmentFactory.java">org/apache/hadoop/hbase/regionserver/SegmentFactory.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>12</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.SegmentScanner.java">org/apache/hadoop/hbase/regionserver/SegmentScanner.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>3</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.ServerNonceManager.java">org/apache/hadoop/hbase/regionserver/ServerNonceManager.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>9</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.ShipperListener.java">org/apache/hadoop/hbase/regionserver/ShipperListener.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.ShutdownHook.java">org/apache/hadoop/hbase/regionserver/ShutdownHook.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>7</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.SimpleRpcSchedulerFactory.java">org/apache/hadoop/hbase/regionserver/SimpleRpcSchedulerFactory.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>4</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.SplitLogWorker.java">org/apache/hadoop/hbase/regionserver/SplitLogWorker.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.SplitRequest.java">org/apache/hadoop/hbase/regionserver/SplitRequest.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.SteppingSplitPolicy.java">org/apache/hadoop/hbase/regionserver/SteppingSplitPolicy.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>3</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.Store.java">org/apache/hadoop/hbase/regionserver/Store.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>4</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.StoreFileComparators.java">org/apache/hadoop/hbase/regionserver/StoreFileComparators.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.StoreFileInfo.java">org/apache/hadoop/hbase/regionserver/StoreFileInfo.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>23</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.StoreFileManager.java">org/apache/hadoop/hbase/regionserver/StoreFileManager.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.StoreFileReader.java">org/apache/hadoop/hbase/regionserver/StoreFileReader.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>4</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.StoreFileScanner.java">org/apache/hadoop/hbase/regionserver/StoreFileScanner.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>10</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.StoreFileWriter.java">org/apache/hadoop/hbase/regionserver/StoreFileWriter.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>13</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.StoreFlushContext.java">org/apache/hadoop/hbase/regionserver/StoreFlushContext.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>5</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.StoreFlusher.java">org/apache/hadoop/hbase/regionserver/StoreFlusher.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>4</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.StoreScanner.java">org/apache/hadoop/hbase/regionserver/StoreScanner.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>25</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.StoreUtils.java">org/apache/hadoop/hbase/regionserver/StoreUtils.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.StorefileRefresherChore.java">org/apache/hadoop/hbase/regionserver/StorefileRefresherChore.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>3</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.StripeMultiFileWriter.java">org/apache/hadoop/hbase/regionserver/StripeMultiFileWriter.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.StripeStoreConfig.java">org/apache/hadoop/hbase/regionserver/StripeStoreConfig.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.StripeStoreEngine.java">org/apache/hadoop/hbase/regionserver/StripeStoreEngine.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.StripeStoreFileManager.java">org/apache/hadoop/hbase/regionserver/StripeStoreFileManager.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>15</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.StripeStoreFlusher.java">org/apache/hadoop/hbase/regionserver/StripeStoreFlusher.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.TestAtomicOperation.java">org/apache/hadoop/hbase/regionserver/TestAtomicOperation.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>12</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.TestBlocksRead.java">org/apache/hadoop/hbase/regionserver/TestBlocksRead.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>18</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.TestBlocksScanned.java">org/apache/hadoop/hbase/regionserver/TestBlocksScanned.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>5</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.TestBulkLoad.java">org/apache/hadoop/hbase/regionserver/TestBulkLoad.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>7</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.TestCacheOnWriteInSchema.java">org/apache/hadoop/hbase/regionserver/TestCacheOnWriteInSchema.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>11</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.TestCellFlatSet.java">org/apache/hadoop/hbase/regionserver/TestCellFlatSet.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>7</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.TestCellSkipListSet.java">org/apache/hadoop/hbase/regionserver/TestCellSkipListSet.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.TestClearRegionBlockCache.java">org/apache/hadoop/hbase/regionserver/TestClearRegionBlockCache.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>4</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.TestClusterId.java">org/apache/hadoop/hbase/regionserver/TestClusterId.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.TestColumnSeeking.java">org/apache/hadoop/hbase/regionserver/TestColumnSeeking.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>6</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.TestCompactSplitThread.java">org/apache/hadoop/hbase/regionserver/TestCompactSplitThread.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>3</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.TestCompactingMemStore.java">org/apache/hadoop/hbase/regionserver/TestCompactingMemStore.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>17</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.TestCompactingToCellFlatMapMemStore.java">org/apache/hadoop/hbase/regionserver/TestCompactingToCellFlatMapMemStore.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>18</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.TestCompaction.java">org/apache/hadoop/hbase/regionserver/TestCompaction.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>4</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.TestCompactionArchiveConcurrentClose.java">org/apache/hadoop/hbase/regionserver/TestCompactionArchiveConcurrentClose.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.TestCompactionArchiveIOException.java">org/apache/hadoop/hbase/regionserver/TestCompactionArchiveIOException.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.TestCompactionState.java">org/apache/hadoop/hbase/regionserver/TestCompactionState.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>8</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.TestCompactionWithCoprocessor.java">org/apache/hadoop/hbase/regionserver/TestCompactionWithCoprocessor.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.TestCompoundBloomFilter.java">org/apache/hadoop/hbase/regionserver/TestCompoundBloomFilter.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>17</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.TestDateTieredCompactionPolicy.java">org/apache/hadoop/hbase/regionserver/TestDateTieredCompactionPolicy.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>5</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.TestDateTieredCompactionPolicyOverflow.java">org/apache/hadoop/hbase/regionserver/TestDateTieredCompactionPolicyOverflow.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.TestDefaultMemStore.java">org/apache/hadoop/hbase/regionserver/TestDefaultMemStore.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>18</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.TestDeleteMobTable.java">org/apache/hadoop/hbase/regionserver/TestDeleteMobTable.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.TestEndToEndSplitTransaction.java">org/apache/hadoop/hbase/regionserver/TestEndToEndSplitTransaction.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>4</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.TestFSErrorsExposed.java">org/apache/hadoop/hbase/regionserver/TestFSErrorsExposed.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.TestFailedAppendAndSync.java">org/apache/hadoop/hbase/regionserver/TestFailedAppendAndSync.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>8</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.TestGetClosestAtOrBefore.java">org/apache/hadoop/hbase/regionserver/TestGetClosestAtOrBefore.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>50</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.TestHMobStore.java">org/apache/hadoop/hbase/regionserver/TestHMobStore.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>11</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.TestHRegion.java">org/apache/hadoop/hbase/regionserver/TestHRegion.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>59</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.TestHRegionFileSystem.java">org/apache/hadoop/hbase/regionserver/TestHRegionFileSystem.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>6</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.TestHRegionInfo.java">org/apache/hadoop/hbase/regionserver/TestHRegionInfo.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>3</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.TestHRegionOnCluster.java">org/apache/hadoop/hbase/regionserver/TestHRegionOnCluster.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.TestHRegionReplayEvents.java">org/apache/hadoop/hbase/regionserver/TestHRegionReplayEvents.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>18</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.TestHRegionServerBulkLoad.java">org/apache/hadoop/hbase/regionserver/TestHRegionServerBulkLoad.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>9</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.TestHRegionServerBulkLoadWithOldClient.java">org/apache/hadoop/hbase/regionserver/TestHRegionServerBulkLoadWithOldClient.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>6</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.TestHRegionServerBulkLoadWithOldSecureEndpoint.java">org/apache/hadoop/hbase/regionserver/TestHRegionServerBulkLoadWithOldSecureEndpoint.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>10</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.TestHStore.java">org/apache/hadoop/hbase/regionserver/TestHStore.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>41</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.TestHStoreFile.java">org/apache/hadoop/hbase/regionserver/TestHStoreFile.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>25</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.TestJoinedScanners.java">org/apache/hadoop/hbase/regionserver/TestJoinedScanners.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>3</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.TestKeepDeletes.java">org/apache/hadoop/hbase/regionserver/TestKeepDeletes.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>6</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.TestKeyValueHeap.java">org/apache/hadoop/hbase/regionserver/TestKeyValueHeap.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>4</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.TestKeyValueScanFixture.java">org/apache/hadoop/hbase/regionserver/TestKeyValueScanFixture.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.TestMajorCompaction.java">org/apache/hadoop/hbase/regionserver/TestMajorCompaction.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>9</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.TestMasterAddressTracker.java">org/apache/hadoop/hbase/regionserver/TestMasterAddressTracker.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>4</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.TestMemStoreChunkPool.java">org/apache/hadoop/hbase/regionserver/TestMemStoreChunkPool.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.TestMemStoreLAB.java">org/apache/hadoop/hbase/regionserver/TestMemStoreLAB.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>5</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.TestMemstoreLABWithoutPool.java">org/apache/hadoop/hbase/regionserver/TestMemstoreLABWithoutPool.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.TestMetricsRegion.java">org/apache/hadoop/hbase/regionserver/TestMetricsRegion.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>4</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.TestMetricsRegionServer.java">org/apache/hadoop/hbase/regionserver/TestMetricsRegionServer.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>4</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.TestMetricsRegionServerSourceFactory.java">org/apache/hadoop/hbase/regionserver/TestMetricsRegionServerSourceFactory.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.TestMetricsRegionServerSourceImpl.java">org/apache/hadoop/hbase/regionserver/TestMetricsRegionServerSourceImpl.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.TestMetricsRegionSourceImpl.java">org/apache/hadoop/hbase/regionserver/TestMetricsRegionSourceImpl.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>6</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.TestMetricsTableAggregate.java">org/apache/hadoop/hbase/regionserver/TestMetricsTableAggregate.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>4</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.TestMetricsTableSourceImpl.java">org/apache/hadoop/hbase/regionserver/TestMetricsTableSourceImpl.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.TestMinVersions.java">org/apache/hadoop/hbase/regionserver/TestMinVersions.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.TestMiniBatchOperationInProgress.java">org/apache/hadoop/hbase/regionserver/TestMiniBatchOperationInProgress.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.TestMinorCompaction.java">org/apache/hadoop/hbase/regionserver/TestMinorCompaction.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.TestMobStoreScanner.java">org/apache/hadoop/hbase/regionserver/TestMobStoreScanner.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>7</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.TestMultiColumnScanner.java">org/apache/hadoop/hbase/regionserver/TestMultiColumnScanner.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>10</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.TestMultiLogThreshold.java">org/apache/hadoop/hbase/regionserver/TestMultiLogThreshold.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>15</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.TestMultiVersionConcurrencyControl.java">org/apache/hadoop/hbase/regionserver/TestMultiVersionConcurrencyControl.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.TestNewVersionBehaviorFromClientSide.java">org/apache/hadoop/hbase/regionserver/TestNewVersionBehaviorFromClientSide.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.TestParallelPut.java">org/apache/hadoop/hbase/regionserver/TestParallelPut.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.TestPerColumnFamilyFlush.java">org/apache/hadoop/hbase/regionserver/TestPerColumnFamilyFlush.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>7</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.TestPriorityRpc.java">org/apache/hadoop/hbase/regionserver/TestPriorityRpc.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>7</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.TestQosFunction.java">org/apache/hadoop/hbase/regionserver/TestQosFunction.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.TestRSKilledWhenInitializing.java">org/apache/hadoop/hbase/regionserver/TestRSKilledWhenInitializing.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>5</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.TestRecoveredEdits.java">org/apache/hadoop/hbase/regionserver/TestRecoveredEdits.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>11</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.TestRegionIncrement.java">org/apache/hadoop/hbase/regionserver/TestRegionIncrement.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>9</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.TestRegionInfoBuilder.java">org/apache/hadoop/hbase/regionserver/TestRegionInfoBuilder.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.TestRegionMergeTransactionOnCluster.java">org/apache/hadoop/hbase/regionserver/TestRegionMergeTransactionOnCluster.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.TestRegionOpen.java">org/apache/hadoop/hbase/regionserver/TestRegionOpen.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>6</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.TestRegionReplicaFailover.java">org/apache/hadoop/hbase/regionserver/TestRegionReplicaFailover.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>4</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.TestRegionReplicas.java">org/apache/hadoop/hbase/regionserver/TestRegionReplicas.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>7</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.TestRegionServerAbort.java">org/apache/hadoop/hbase/regionserver/TestRegionServerAbort.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>7</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.TestRegionServerAccounting.java">org/apache/hadoop/hbase/regionserver/TestRegionServerAccounting.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>54</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.TestRegionServerHostname.java">org/apache/hadoop/hbase/regionserver/TestRegionServerHostname.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>3</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.TestRegionServerMetrics.java">org/apache/hadoop/hbase/regionserver/TestRegionServerMetrics.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>5</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.TestRegionServerNoMaster.java">org/apache/hadoop/hbase/regionserver/TestRegionServerNoMaster.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>6</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.TestRegionServerOnlineConfigChange.java">org/apache/hadoop/hbase/regionserver/TestRegionServerOnlineConfigChange.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>4</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.TestRegionServerReadRequestMetrics.java">org/apache/hadoop/hbase/regionserver/TestRegionServerReadRequestMetrics.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>3</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.TestRegionServerReportForDuty.java">org/apache/hadoop/hbase/regionserver/TestRegionServerReportForDuty.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>4</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.TestRegionSplitPolicy.java">org/apache/hadoop/hbase/regionserver/TestRegionSplitPolicy.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.TestRemoveRegionMetrics.java">org/apache/hadoop/hbase/regionserver/TestRemoveRegionMetrics.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.TestResettingCounters.java">org/apache/hadoop/hbase/regionserver/TestResettingCounters.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>9</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.TestReversibleScanners.java">org/apache/hadoop/hbase/regionserver/TestReversibleScanners.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>15</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.TestRowTooBig.java">org/apache/hadoop/hbase/regionserver/TestRowTooBig.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>4</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.TestSCVFWithMiniCluster.java">org/apache/hadoop/hbase/regionserver/TestSCVFWithMiniCluster.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.TestScanWithBloomError.java">org/apache/hadoop/hbase/regionserver/TestScanWithBloomError.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.TestScanner.java">org/apache/hadoop/hbase/regionserver/TestScanner.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>10</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.TestScannerHeartbeatMessages.java">org/apache/hadoop/hbase/regionserver/TestScannerHeartbeatMessages.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>19</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.TestScannerRetriableFailure.java">org/apache/hadoop/hbase/regionserver/TestScannerRetriableFailure.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>6</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.TestScannerWithBulkload.java">org/apache/hadoop/hbase/regionserver/TestScannerWithBulkload.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.TestSeekOptimizations.java">org/apache/hadoop/hbase/regionserver/TestSeekOptimizations.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>3</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.TestServerCustomProtocol.java">org/apache/hadoop/hbase/regionserver/TestServerCustomProtocol.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>16</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.TestServerNonceManager.java">org/apache/hadoop/hbase/regionserver/TestServerNonceManager.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.TestSettingTimeoutOnBlockingPoint.java">org/apache/hadoop/hbase/regionserver/TestSettingTimeoutOnBlockingPoint.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.TestSimpleTimeRangeTracker.java">org/apache/hadoop/hbase/regionserver/TestSimpleTimeRangeTracker.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.TestSplitLogWorker.java">org/apache/hadoop/hbase/regionserver/TestSplitLogWorker.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>9</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.TestSplitTransactionOnCluster.java">org/apache/hadoop/hbase/regionserver/TestSplitTransactionOnCluster.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>24</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.TestStoreFileInfo.java">org/apache/hadoop/hbase/regionserver/TestStoreFileInfo.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.TestStoreFileRefresherChore.java">org/apache/hadoop/hbase/regionserver/TestStoreFileRefresherChore.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>5</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.TestStoreScanner.java">org/apache/hadoop/hbase/regionserver/TestStoreScanner.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>13</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.TestStripeStoreFileManager.java">org/apache/hadoop/hbase/regionserver/TestStripeStoreFileManager.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>5</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.TestSyncTimeRangeTracker.java">org/apache/hadoop/hbase/regionserver/TestSyncTimeRangeTracker.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>7</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.TestTags.java">org/apache/hadoop/hbase/regionserver/TestTags.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.TestTimestampFilterSeekHint.java">org/apache/hadoop/hbase/regionserver/TestTimestampFilterSeekHint.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>4</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.TestWALLockup.java">org/apache/hadoop/hbase/regionserver/TestWALLockup.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>9</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.TestWALMonotonicallyIncreasingSeqId.java">org/apache/hadoop/hbase/regionserver/TestWALMonotonicallyIncreasingSeqId.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>5</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.TestWalAndCompactingMemStoreFlush.java">org/apache/hadoop/hbase/regionserver/TestWalAndCompactingMemStoreFlush.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>10</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.TimeRangeTracker.java">org/apache/hadoop/hbase/regionserver/TimeRangeTracker.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>3</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.compactions.CompactionConfiguration.java">org/apache/hadoop/hbase/regionserver/compactions/CompactionConfiguration.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.compactions.CompactionProgress.java">org/apache/hadoop/hbase/regionserver/compactions/CompactionProgress.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>4</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.compactions.CompactionRequest.java">org/apache/hadoop/hbase/regionserver/compactions/CompactionRequest.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.compactions.CompactionRequester.java">org/apache/hadoop/hbase/regionserver/compactions/CompactionRequester.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.compactions.Compactor.java">org/apache/hadoop/hbase/regionserver/compactions/Compactor.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>14</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.compactions.CurrentHourProvider.java">org/apache/hadoop/hbase/regionserver/compactions/CurrentHourProvider.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>3</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.compactions.DefaultCompactor.java">org/apache/hadoop/hbase/regionserver/compactions/DefaultCompactor.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>5</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.compactions.ExponentialCompactionWindowFactory.java">org/apache/hadoop/hbase/regionserver/compactions/ExponentialCompactionWindowFactory.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.compactions.OffPeakHours.java">org/apache/hadoop/hbase/regionserver/compactions/OffPeakHours.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>3</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.compactions.PerfTestCompactionPolicies.java">org/apache/hadoop/hbase/regionserver/compactions/PerfTestCompactionPolicies.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>10</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.compactions.RatioBasedCompactionPolicy.java">org/apache/hadoop/hbase/regionserver/compactions/RatioBasedCompactionPolicy.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.compactions.SortedCompactionPolicy.java">org/apache/hadoop/hbase/regionserver/compactions/SortedCompactionPolicy.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.compactions.SpikyFileListGenerator.java">org/apache/hadoop/hbase/regionserver/compactions/SpikyFileListGenerator.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.compactions.StripeCompactionPolicy.java">org/apache/hadoop/hbase/regionserver/compactions/StripeCompactionPolicy.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>10</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.compactions.StripeCompactor.java">org/apache/hadoop/hbase/regionserver/compactions/StripeCompactor.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.compactions.TestCompactor.java">org/apache/hadoop/hbase/regionserver/compactions/TestCompactor.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.compactions.TestStripeCompactionPolicy.java">org/apache/hadoop/hbase/regionserver/compactions/TestStripeCompactionPolicy.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>8</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.handler.CloseRegionHandler.java">org/apache/hadoop/hbase/regionserver/handler/CloseRegionHandler.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>4</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.handler.OpenPriorityRegionHandler.java">org/apache/hadoop/hbase/regionserver/handler/OpenPriorityRegionHandler.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.handler.OpenRegionHandler.java">org/apache/hadoop/hbase/regionserver/handler/OpenRegionHandler.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.handler.ParallelSeekHandler.java">org/apache/hadoop/hbase/regionserver/handler/ParallelSeekHandler.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.handler.RegionReplicaFlushHandler.java">org/apache/hadoop/hbase/regionserver/handler/RegionReplicaFlushHandler.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>4</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.handler.WALSplitterHandler.java">org/apache/hadoop/hbase/regionserver/handler/WALSplitterHandler.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>23</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.querymatcher.ColumnTracker.java">org/apache/hadoop/hbase/regionserver/querymatcher/ColumnTracker.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>3</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.querymatcher.CompactionScanQueryMatcher.java">org/apache/hadoop/hbase/regionserver/querymatcher/CompactionScanQueryMatcher.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.querymatcher.DeleteTracker.java">org/apache/hadoop/hbase/regionserver/querymatcher/DeleteTracker.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.querymatcher.DropDeletesCompactionScanQueryMatcher.java">org/apache/hadoop/hbase/regionserver/querymatcher/DropDeletesCompactionScanQueryMatcher.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.querymatcher.ExplicitColumnTracker.java">org/apache/hadoop/hbase/regionserver/querymatcher/ExplicitColumnTracker.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.querymatcher.IncludeAllCompactionQueryMatcher.java">org/apache/hadoop/hbase/regionserver/querymatcher/IncludeAllCompactionQueryMatcher.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.querymatcher.MajorCompactionScanQueryMatcher.java">org/apache/hadoop/hbase/regionserver/querymatcher/MajorCompactionScanQueryMatcher.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.querymatcher.MinorCompactionScanQueryMatcher.java">org/apache/hadoop/hbase/regionserver/querymatcher/MinorCompactionScanQueryMatcher.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.querymatcher.NewVersionBehaviorTracker.java">org/apache/hadoop/hbase/regionserver/querymatcher/NewVersionBehaviorTracker.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>20</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.querymatcher.NormalUserScanQueryMatcher.java">org/apache/hadoop/hbase/regionserver/querymatcher/NormalUserScanQueryMatcher.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>3</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.querymatcher.RawScanQueryMatcher.java">org/apache/hadoop/hbase/regionserver/querymatcher/RawScanQueryMatcher.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.querymatcher.ScanDeleteTracker.java">org/apache/hadoop/hbase/regionserver/querymatcher/ScanDeleteTracker.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.querymatcher.ScanQueryMatcher.java">org/apache/hadoop/hbase/regionserver/querymatcher/ScanQueryMatcher.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>6</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.querymatcher.ScanWildcardColumnTracker.java">org/apache/hadoop/hbase/regionserver/querymatcher/ScanWildcardColumnTracker.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.querymatcher.StripeCompactionScanQueryMatcher.java">org/apache/hadoop/hbase/regionserver/querymatcher/StripeCompactionScanQueryMatcher.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.querymatcher.TestExplicitColumnTracker.java">org/apache/hadoop/hbase/regionserver/querymatcher/TestExplicitColumnTracker.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.querymatcher.TestNewVersionBehaviorTracker.java">org/apache/hadoop/hbase/regionserver/querymatcher/TestNewVersionBehaviorTracker.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.querymatcher.TestScanDeleteTracker.java">org/apache/hadoop/hbase/regionserver/querymatcher/TestScanDeleteTracker.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.querymatcher.TestUserScanQueryMatcher.java">org/apache/hadoop/hbase/regionserver/querymatcher/TestUserScanQueryMatcher.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>21</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.querymatcher.UserScanQueryMatcher.java">org/apache/hadoop/hbase/regionserver/querymatcher/UserScanQueryMatcher.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.snapshot.FlushSnapshotSubprocedure.java">org/apache/hadoop/hbase/regionserver/snapshot/FlushSnapshotSubprocedure.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.snapshot.RegionServerSnapshotManager.java">org/apache/hadoop/hbase/regionserver/snapshot/RegionServerSnapshotManager.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>19</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.throttle.CompactionThroughputControllerFactory.java">org/apache/hadoop/hbase/regionserver/throttle/CompactionThroughputControllerFactory.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.throttle.FlushThroughputControllerFactory.java">org/apache/hadoop/hbase/regionserver/throttle/FlushThroughputControllerFactory.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.throttle.NoLimitThroughputController.java">org/apache/hadoop/hbase/regionserver/throttle/NoLimitThroughputController.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.throttle.PressureAwareCompactionThroughputController.java">org/apache/hadoop/hbase/regionserver/throttle/PressureAwareCompactionThroughputController.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.throttle.PressureAwareFlushThroughputController.java">org/apache/hadoop/hbase/regionserver/throttle/PressureAwareFlushThroughputController.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.throttle.PressureAwareThroughputController.java">org/apache/hadoop/hbase/regionserver/throttle/PressureAwareThroughputController.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.throttle.ThroughputController.java">org/apache/hadoop/hbase/regionserver/throttle/ThroughputController.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.wal.AbstractFSWAL.java">org/apache/hadoop/hbase/regionserver/wal/AbstractFSWAL.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>6</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.wal.AbstractProtobufLogWriter.java">org/apache/hadoop/hbase/regionserver/wal/AbstractProtobufLogWriter.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>3</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.wal.AbstractTestFSWAL.java">org/apache/hadoop/hbase/regionserver/wal/AbstractTestFSWAL.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>5</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.wal.AbstractTestLogRolling.java">org/apache/hadoop/hbase/regionserver/wal/AbstractTestLogRolling.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>6</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.wal.AbstractTestProtobufLog.java">org/apache/hadoop/hbase/regionserver/wal/AbstractTestProtobufLog.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>3</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.wal.AbstractTestWALReplay.java">org/apache/hadoop/hbase/regionserver/wal/AbstractTestWALReplay.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>35</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.wal.CompressionContext.java">org/apache/hadoop/hbase/regionserver/wal/CompressionContext.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>4</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.wal.Compressor.java">org/apache/hadoop/hbase/regionserver/wal/Compressor.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>8</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.wal.FSHLog.java">org/apache/hadoop/hbase/regionserver/wal/FSHLog.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>7</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.wal.FSWALEntry.java">org/apache/hadoop/hbase/regionserver/wal/FSWALEntry.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.wal.FailedLogCloseException.java">org/apache/hadoop/hbase/regionserver/wal/FailedLogCloseException.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.wal.FailedSyncBeforeLogCloseException.java">org/apache/hadoop/hbase/regionserver/wal/FailedSyncBeforeLogCloseException.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.wal.InstrumentedLogWriter.java">org/apache/hadoop/hbase/regionserver/wal/InstrumentedLogWriter.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>6</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.wal.MetricsWAL.java">org/apache/hadoop/hbase/regionserver/wal/MetricsWAL.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>3</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.wal.MetricsWALSourceImpl.java">org/apache/hadoop/hbase/regionserver/wal/MetricsWALSourceImpl.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>4</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.wal.ProtobufLogReader.java">org/apache/hadoop/hbase/regionserver/wal/ProtobufLogReader.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>26</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.wal.ProtobufLogWriter.java">org/apache/hadoop/hbase/regionserver/wal/ProtobufLogWriter.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>3</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.wal.ReaderBase.java">org/apache/hadoop/hbase/regionserver/wal/ReaderBase.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.wal.SecureProtobufLogReader.java">org/apache/hadoop/hbase/regionserver/wal/SecureProtobufLogReader.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.wal.SecureProtobufLogWriter.java">org/apache/hadoop/hbase/regionserver/wal/SecureProtobufLogWriter.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.wal.SecureWALCellCodec.java">org/apache/hadoop/hbase/regionserver/wal/SecureWALCellCodec.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.wal.SequenceIdAccounting.java">org/apache/hadoop/hbase/regionserver/wal/SequenceIdAccounting.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>15</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.wal.TestAsyncFSWAL.java">org/apache/hadoop/hbase/regionserver/wal/TestAsyncFSWAL.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.wal.TestAsyncProtobufLog.java">org/apache/hadoop/hbase/regionserver/wal/TestAsyncProtobufLog.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.wal.TestAsyncWALReplay.java">org/apache/hadoop/hbase/regionserver/wal/TestAsyncWALReplay.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.wal.TestCompressor.java">org/apache/hadoop/hbase/regionserver/wal/TestCompressor.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.wal.TestDurability.java">org/apache/hadoop/hbase/regionserver/wal/TestDurability.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>16</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.wal.TestFSHLog.java">org/apache/hadoop/hbase/regionserver/wal/TestFSHLog.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>3</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.wal.TestFSWALEntry.java">org/apache/hadoop/hbase/regionserver/wal/TestFSWALEntry.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.wal.TestLogRollAbort.java">org/apache/hadoop/hbase/regionserver/wal/TestLogRollAbort.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.wal.TestLogRolling.java">org/apache/hadoop/hbase/regionserver/wal/TestLogRolling.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>4</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.wal.TestLogRollingNoCluster.java">org/apache/hadoop/hbase/regionserver/wal/TestLogRollingNoCluster.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>4</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.wal.TestMetricsWAL.java">org/apache/hadoop/hbase/regionserver/wal/TestMetricsWAL.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.wal.TestMetricsWALSource.java">org/apache/hadoop/hbase/regionserver/wal/TestMetricsWALSource.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.wal.TestMetricsWALSourceImpl.java">org/apache/hadoop/hbase/regionserver/wal/TestMetricsWALSourceImpl.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.wal.TestProtobufLog.java">org/apache/hadoop/hbase/regionserver/wal/TestProtobufLog.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.wal.TestWALReplay.java">org/apache/hadoop/hbase/regionserver/wal/TestWALReplay.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.wal.WALActionsListener.java">org/apache/hadoop/hbase/regionserver/wal/WALActionsListener.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>6</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.wal.WALCellCodec.java">org/apache/hadoop/hbase/regionserver/wal/WALCellCodec.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>6</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.regionserver.wal.WALCoprocessorHost.java">org/apache/hadoop/hbase/regionserver/wal/WALCoprocessorHost.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>3</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.regionserver.wal.WALUtil.java">org/apache/hadoop/hbase/regionserver/wal/WALUtil.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.replication.BaseReplicationEndpoint.java">org/apache/hadoop/hbase/replication/BaseReplicationEndpoint.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>3</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.replication.BulkLoadCellFilter.java">org/apache/hadoop/hbase/replication/BulkLoadCellFilter.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.replication.ChainWALEntryFilter.java">org/apache/hadoop/hbase/replication/ChainWALEntryFilter.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.replication.ClusterMarkingEntryFilter.java">org/apache/hadoop/hbase/replication/ClusterMarkingEntryFilter.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>3</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.replication.HBaseReplicationEndpoint.java">org/apache/hadoop/hbase/replication/HBaseReplicationEndpoint.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>3</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.replication.NamespaceTableCfWALEntryFilter.java">org/apache/hadoop/hbase/replication/NamespaceTableCfWALEntryFilter.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.replication.ReplicationEndpoint.java">org/apache/hadoop/hbase/replication/ReplicationEndpoint.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>5</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.replication.ReplicationException.java">org/apache/hadoop/hbase/replication/ReplicationException.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.replication.ReplicationFactory.java">org/apache/hadoop/hbase/replication/ReplicationFactory.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>3</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.replication.ReplicationPeerConfig.java">org/apache/hadoop/hbase/replication/ReplicationPeerConfig.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.replication.ReplicationPeerZKImpl.java">org/apache/hadoop/hbase/replication/ReplicationPeerZKImpl.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>7</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.replication.ReplicationPeers.java">org/apache/hadoop/hbase/replication/ReplicationPeers.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>3</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.replication.ReplicationPeersZKImpl.java">org/apache/hadoop/hbase/replication/ReplicationPeersZKImpl.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>5</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.replication.ReplicationQueueInfo.java">org/apache/hadoop/hbase/replication/ReplicationQueueInfo.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>21</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.replication.ReplicationQueues.java">org/apache/hadoop/hbase/replication/ReplicationQueues.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>3</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.replication.ReplicationQueuesClient.java">org/apache/hadoop/hbase/replication/ReplicationQueuesClient.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.replication.ReplicationQueuesClientZKImpl.java">org/apache/hadoop/hbase/replication/ReplicationQueuesClientZKImpl.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.replication.ReplicationQueuesZKImpl.java">org/apache/hadoop/hbase/replication/ReplicationQueuesZKImpl.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.replication.ReplicationStateZKBase.java">org/apache/hadoop/hbase/replication/ReplicationStateZKBase.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.replication.ReplicationTableBase.java">org/apache/hadoop/hbase/replication/ReplicationTableBase.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>10</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.replication.ReplicationTracker.java">org/apache/hadoop/hbase/replication/ReplicationTracker.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.replication.ReplicationTrackerZKImpl.java">org/apache/hadoop/hbase/replication/ReplicationTrackerZKImpl.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.replication.ScopeWALEntryFilter.java">org/apache/hadoop/hbase/replication/ScopeWALEntryFilter.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>11</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.replication.SystemTableWALEntryFilter.java">org/apache/hadoop/hbase/replication/SystemTableWALEntryFilter.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.replication.TableBasedReplicationQueuesClientImpl.java">org/apache/hadoop/hbase/replication/TableBasedReplicationQueuesClientImpl.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.replication.TableBasedReplicationQueuesImpl.java">org/apache/hadoop/hbase/replication/TableBasedReplicationQueuesImpl.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>7</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.replication.TestMasterReplication.java">org/apache/hadoop/hbase/replication/TestMasterReplication.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>14</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.replication.TestMultiSlaveReplication.java">org/apache/hadoop/hbase/replication/TestMultiSlaveReplication.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>8</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.replication.TestPerTableCFReplication.java">org/apache/hadoop/hbase/replication/TestPerTableCFReplication.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>5</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.replication.TestReplicationBase.java">org/apache/hadoop/hbase/replication/TestReplicationBase.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>3</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.replication.TestReplicationChangingPeerRegionservers.java">org/apache/hadoop/hbase/replication/TestReplicationChangingPeerRegionservers.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.replication.TestReplicationDisableInactivePeer.java">org/apache/hadoop/hbase/replication/TestReplicationDisableInactivePeer.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.replication.TestReplicationDroppedTables.java">org/apache/hadoop/hbase/replication/TestReplicationDroppedTables.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>6</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.replication.TestReplicationEndpoint.java">org/apache/hadoop/hbase/replication/TestReplicationEndpoint.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>7</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.replication.TestReplicationKillMasterRSCompressed.java">org/apache/hadoop/hbase/replication/TestReplicationKillMasterRSCompressed.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.replication.TestReplicationKillRS.java">org/apache/hadoop/hbase/replication/TestReplicationKillRS.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.replication.TestReplicationSmallTests.java">org/apache/hadoop/hbase/replication/TestReplicationSmallTests.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>26</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.replication.TestReplicationSource.java">org/apache/hadoop/hbase/replication/TestReplicationSource.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>12</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.replication.TestReplicationStateBasic.java">org/apache/hadoop/hbase/replication/TestReplicationStateBasic.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.replication.TestReplicationStateHBaseImpl.java">org/apache/hadoop/hbase/replication/TestReplicationStateHBaseImpl.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>25</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.replication.TestReplicationStatus.java">org/apache/hadoop/hbase/replication/TestReplicationStatus.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.replication.TestReplicationSyncUpTool.java">org/apache/hadoop/hbase/replication/TestReplicationSyncUpTool.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.replication.TestReplicationSyncUpToolWithBulkLoadedData.java">org/apache/hadoop/hbase/replication/TestReplicationSyncUpToolWithBulkLoadedData.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.replication.TestReplicationTableBase.java">org/apache/hadoop/hbase/replication/TestReplicationTableBase.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.replication.TestReplicationWALEntryFilters.java">org/apache/hadoop/hbase/replication/TestReplicationWALEntryFilters.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.replication.TestReplicationWithTags.java">org/apache/hadoop/hbase/replication/TestReplicationWithTags.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.replication.WALCellFilter.java">org/apache/hadoop/hbase/replication/WALCellFilter.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.replication.WALEntryFilter.java">org/apache/hadoop/hbase/replication/WALEntryFilter.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.replication.master.ReplicationHFileCleaner.java">org/apache/hadoop/hbase/replication/master/ReplicationHFileCleaner.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.replication.master.ReplicationLogCleaner.java">org/apache/hadoop/hbase/replication/master/ReplicationLogCleaner.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>5</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.replication.master.TestTableCFsUpdater.java">org/apache/hadoop/hbase/replication/master/TestTableCFsUpdater.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.replication.regionserver.DumpReplicationQueues.java">org/apache/hadoop/hbase/replication/regionserver/DumpReplicationQueues.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>9</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.replication.regionserver.HBaseInterClusterReplicationEndpoint.java">org/apache/hadoop/hbase/replication/regionserver/HBaseInterClusterReplicationEndpoint.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>4</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.replication.regionserver.HFileReplicator.java">org/apache/hadoop/hbase/replication/regionserver/HFileReplicator.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>3</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.replication.regionserver.MetricsReplicationGlobalSourceSource.java">org/apache/hadoop/hbase/replication/regionserver/MetricsReplicationGlobalSourceSource.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>4</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.replication.regionserver.MetricsReplicationSinkSourceImpl.java">org/apache/hadoop/hbase/replication/regionserver/MetricsReplicationSinkSourceImpl.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.replication.regionserver.MetricsReplicationSource.java">org/apache/hadoop/hbase/replication/regionserver/MetricsReplicationSource.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.replication.regionserver.MetricsReplicationSourceImpl.java">org/apache/hadoop/hbase/replication/regionserver/MetricsReplicationSourceImpl.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.replication.regionserver.MetricsReplicationSourceSource.java">org/apache/hadoop/hbase/replication/regionserver/MetricsReplicationSourceSource.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.replication.regionserver.MetricsReplicationSourceSourceImpl.java">org/apache/hadoop/hbase/replication/regionserver/MetricsReplicationSourceSourceImpl.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.replication.regionserver.MetricsSink.java">org/apache/hadoop/hbase/replication/regionserver/MetricsSink.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.replication.regionserver.MetricsSource.java">org/apache/hadoop/hbase/replication/regionserver/MetricsSource.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.replication.regionserver.RecoveredReplicationSource.java">org/apache/hadoop/hbase/replication/regionserver/RecoveredReplicationSource.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.replication.regionserver.RecoveredReplicationSourceShipper.java">org/apache/hadoop/hbase/replication/regionserver/RecoveredReplicationSourceShipper.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.replication.regionserver.RecoveredReplicationSourceWALReader.java">org/apache/hadoop/hbase/replication/regionserver/RecoveredReplicationSourceWALReader.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.replication.regionserver.RegionReplicaReplicationEndpoint.java">org/apache/hadoop/hbase/replication/regionserver/RegionReplicaReplicationEndpoint.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>3</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.replication.regionserver.Replication.java">org/apache/hadoop/hbase/replication/regionserver/Replication.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>11</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.replication.regionserver.ReplicationLoad.java">org/apache/hadoop/hbase/replication/regionserver/ReplicationLoad.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>7</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.replication.regionserver.ReplicationObserver.java">org/apache/hadoop/hbase/replication/regionserver/ReplicationObserver.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>4</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.replication.regionserver.ReplicationSink.java">org/apache/hadoop/hbase/replication/regionserver/ReplicationSink.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>18</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.replication.regionserver.ReplicationSinkManager.java">org/apache/hadoop/hbase/replication/regionserver/ReplicationSinkManager.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.replication.regionserver.ReplicationSource.java">org/apache/hadoop/hbase/replication/regionserver/ReplicationSource.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>6</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.replication.regionserver.ReplicationSourceFactory.java">org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceFactory.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.replication.regionserver.ReplicationSourceInterface.java">org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceInterface.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>7</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.replication.regionserver.ReplicationSourceManager.java">org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceManager.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>16</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.replication.regionserver.ReplicationSourceShipper.java">org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceShipper.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>7</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.replication.regionserver.ReplicationSourceWALReader.java">org/apache/hadoop/hbase/replication/regionserver/ReplicationSourceWALReader.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>3</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.replication.regionserver.ReplicationSyncUp.java">org/apache/hadoop/hbase/replication/regionserver/ReplicationSyncUp.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>3</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.replication.regionserver.ReplicationThrottler.java">org/apache/hadoop/hbase/replication/regionserver/ReplicationThrottler.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.replication.regionserver.TestMetricsReplicationSourceFactory.java">org/apache/hadoop/hbase/replication/regionserver/TestMetricsReplicationSourceFactory.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.replication.regionserver.TestMetricsReplicationSourceFactoryImpl.java">org/apache/hadoop/hbase/replication/regionserver/TestMetricsReplicationSourceFactoryImpl.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>3</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.replication.regionserver.TestMetricsReplicationSourceImpl.java">org/apache/hadoop/hbase/replication/regionserver/TestMetricsReplicationSourceImpl.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>4</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.replication.regionserver.TestRegionReplicaReplicationEndpoint.java">org/apache/hadoop/hbase/replication/regionserver/TestRegionReplicaReplicationEndpoint.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>4</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.replication.regionserver.TestRegionReplicaReplicationEndpointNoMaster.java">org/apache/hadoop/hbase/replication/regionserver/TestRegionReplicaReplicationEndpointNoMaster.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>8</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.replication.regionserver.TestReplicationSink.java">org/apache/hadoop/hbase/replication/regionserver/TestReplicationSink.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>13</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.replication.regionserver.TestReplicationSinkManager.java">org/apache/hadoop/hbase/replication/regionserver/TestReplicationSinkManager.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.replication.regionserver.TestReplicationSourceManager.java">org/apache/hadoop/hbase/replication/regionserver/TestReplicationSourceManager.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>10</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.replication.regionserver.TestReplicationSourceManagerZkImpl.java">org/apache/hadoop/hbase/replication/regionserver/TestReplicationSourceManagerZkImpl.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>7</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.replication.regionserver.TestReplicator.java">org/apache/hadoop/hbase/replication/regionserver/TestReplicator.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>8</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.replication.regionserver.TestWALEntryStream.java">org/apache/hadoop/hbase/replication/regionserver/TestWALEntryStream.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.replication.regionserver.WALEntryStream.java">org/apache/hadoop/hbase/replication/regionserver/WALEntryStream.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>6</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.rest.Constants.java">org/apache/hadoop/hbase/rest/Constants.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.rest.ExistsResource.java">org/apache/hadoop/hbase/rest/ExistsResource.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>3</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.rest.HBaseRESTTestingUtility.java">org/apache/hadoop/hbase/rest/HBaseRESTTestingUtility.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>14</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.rest.MetricsREST.java">org/apache/hadoop/hbase/rest/MetricsREST.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>3</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.rest.MetricsRESTSource.java">org/apache/hadoop/hbase/rest/MetricsRESTSource.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.rest.MetricsRESTSourceImpl.java">org/apache/hadoop/hbase/rest/MetricsRESTSourceImpl.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>12</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.rest.MultiRowResource.java">org/apache/hadoop/hbase/rest/MultiRowResource.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>4</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.rest.NamespacesInstanceResource.java">org/apache/hadoop/hbase/rest/NamespacesInstanceResource.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>4</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.rest.NamespacesResource.java">org/apache/hadoop/hbase/rest/NamespacesResource.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.rest.PerformanceEvaluation.java">org/apache/hadoop/hbase/rest/PerformanceEvaluation.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>21</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.rest.ProtobufMessageHandler.java">org/apache/hadoop/hbase/rest/ProtobufMessageHandler.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>1</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.rest.RESTServer.java">org/apache/hadoop/hbase/rest/RESTServer.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>16</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.rest.RESTServlet.java">org/apache/hadoop/hbase/rest/RESTServlet.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>5</td></tr>
-<tr class="b">
+<tr class="a">
 <td><a href="#org.apache.hadoop.hbase.rest.RESTServletContainer.java">org/apache/hadoop/hbase/rest/RESTServletContainer.java</a></td>
 <td>0</td>
 <td>0</td>
 <td>2</td></tr>
-<tr class="a">
+<tr class="b">
 <td><a href="#org.apache.hadoop.hbase.rest.RegionsResource.java">org/apache/hadoop/hbase/rest/RegionsResource.java</a></td>
 <td>0</td>
 <td>0</td>
 <t

<TRUNCATED>

[18/32] hbase-site git commit: Published site at .

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/29b27596/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.MovedRegionInfo.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.MovedRegionInfo.html b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.MovedRegionInfo.html
index 269105b..1198d94 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.MovedRegionInfo.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.MovedRegionInfo.html
@@ -1524,2213 +1524,2214 @@
 <span class="sourceLineNo">1516</span>      // This call sets up an initialized replication and WAL. Later we start it up.<a name="line.1516"></a>
 <span class="sourceLineNo">1517</span>      setupWALAndReplication();<a name="line.1517"></a>
 <span class="sourceLineNo">1518</span>      // Init in here rather than in constructor after thread name has been set<a name="line.1518"></a>
-<span class="sourceLineNo">1519</span>      this.metricsRegionServer = new MetricsRegionServer(new MetricsRegionServerWrapperImpl(this));<a name="line.1519"></a>
-<span class="sourceLineNo">1520</span>      this.metricsTable = new MetricsTable(new MetricsTableWrapperAggregateImpl(this));<a name="line.1520"></a>
-<span class="sourceLineNo">1521</span>      // Now that we have a metrics source, start the pause monitor<a name="line.1521"></a>
-<span class="sourceLineNo">1522</span>      this.pauseMonitor = new JvmPauseMonitor(conf, getMetrics().getMetricsSource());<a name="line.1522"></a>
-<span class="sourceLineNo">1523</span>      pauseMonitor.start();<a name="line.1523"></a>
-<span class="sourceLineNo">1524</span><a name="line.1524"></a>
-<span class="sourceLineNo">1525</span>      // There is a rare case where we do NOT want services to start. Check config.<a name="line.1525"></a>
-<span class="sourceLineNo">1526</span>      if (getConfiguration().getBoolean("hbase.regionserver.workers", true)) {<a name="line.1526"></a>
-<span class="sourceLineNo">1527</span>        startServices();<a name="line.1527"></a>
-<span class="sourceLineNo">1528</span>      }<a name="line.1528"></a>
-<span class="sourceLineNo">1529</span>      // In here we start up the replication Service. Above we initialized it. TODO. Reconcile.<a name="line.1529"></a>
-<span class="sourceLineNo">1530</span>      // or make sense of it.<a name="line.1530"></a>
-<span class="sourceLineNo">1531</span>      startReplicationService();<a name="line.1531"></a>
-<span class="sourceLineNo">1532</span><a name="line.1532"></a>
+<span class="sourceLineNo">1519</span>      this.metricsRegionServer = new MetricsRegionServer(<a name="line.1519"></a>
+<span class="sourceLineNo">1520</span>          new MetricsRegionServerWrapperImpl(this), conf);<a name="line.1520"></a>
+<span class="sourceLineNo">1521</span>      this.metricsTable = new MetricsTable(new MetricsTableWrapperAggregateImpl(this));<a name="line.1521"></a>
+<span class="sourceLineNo">1522</span>      // Now that we have a metrics source, start the pause monitor<a name="line.1522"></a>
+<span class="sourceLineNo">1523</span>      this.pauseMonitor = new JvmPauseMonitor(conf, getMetrics().getMetricsSource());<a name="line.1523"></a>
+<span class="sourceLineNo">1524</span>      pauseMonitor.start();<a name="line.1524"></a>
+<span class="sourceLineNo">1525</span><a name="line.1525"></a>
+<span class="sourceLineNo">1526</span>      // There is a rare case where we do NOT want services to start. Check config.<a name="line.1526"></a>
+<span class="sourceLineNo">1527</span>      if (getConfiguration().getBoolean("hbase.regionserver.workers", true)) {<a name="line.1527"></a>
+<span class="sourceLineNo">1528</span>        startServices();<a name="line.1528"></a>
+<span class="sourceLineNo">1529</span>      }<a name="line.1529"></a>
+<span class="sourceLineNo">1530</span>      // In here we start up the replication Service. Above we initialized it. TODO. Reconcile.<a name="line.1530"></a>
+<span class="sourceLineNo">1531</span>      // or make sense of it.<a name="line.1531"></a>
+<span class="sourceLineNo">1532</span>      startReplicationService();<a name="line.1532"></a>
 <span class="sourceLineNo">1533</span><a name="line.1533"></a>
-<span class="sourceLineNo">1534</span>      // Set up ZK<a name="line.1534"></a>
-<span class="sourceLineNo">1535</span>      LOG.info("Serving as " + this.serverName + ", RpcServer on " + rpcServices.isa +<a name="line.1535"></a>
-<span class="sourceLineNo">1536</span>          ", sessionid=0x" +<a name="line.1536"></a>
-<span class="sourceLineNo">1537</span>          Long.toHexString(this.zooKeeper.getRecoverableZooKeeper().getSessionId()));<a name="line.1537"></a>
-<span class="sourceLineNo">1538</span><a name="line.1538"></a>
-<span class="sourceLineNo">1539</span>      // Wake up anyone waiting for this server to online<a name="line.1539"></a>
-<span class="sourceLineNo">1540</span>      synchronized (online) {<a name="line.1540"></a>
-<span class="sourceLineNo">1541</span>        online.set(true);<a name="line.1541"></a>
-<span class="sourceLineNo">1542</span>        online.notifyAll();<a name="line.1542"></a>
-<span class="sourceLineNo">1543</span>      }<a name="line.1543"></a>
-<span class="sourceLineNo">1544</span>    } catch (Throwable e) {<a name="line.1544"></a>
-<span class="sourceLineNo">1545</span>      stop("Failed initialization");<a name="line.1545"></a>
-<span class="sourceLineNo">1546</span>      throw convertThrowableToIOE(cleanup(e, "Failed init"),<a name="line.1546"></a>
-<span class="sourceLineNo">1547</span>          "Region server startup failed");<a name="line.1547"></a>
-<span class="sourceLineNo">1548</span>    } finally {<a name="line.1548"></a>
-<span class="sourceLineNo">1549</span>      sleeper.skipSleepCycle();<a name="line.1549"></a>
-<span class="sourceLineNo">1550</span>    }<a name="line.1550"></a>
-<span class="sourceLineNo">1551</span>  }<a name="line.1551"></a>
-<span class="sourceLineNo">1552</span><a name="line.1552"></a>
-<span class="sourceLineNo">1553</span>  protected void initializeMemStoreChunkCreator() {<a name="line.1553"></a>
-<span class="sourceLineNo">1554</span>    if (MemStoreLAB.isEnabled(conf)) {<a name="line.1554"></a>
-<span class="sourceLineNo">1555</span>      // MSLAB is enabled. So initialize MemStoreChunkPool<a name="line.1555"></a>
-<span class="sourceLineNo">1556</span>      // By this time, the MemstoreFlusher is already initialized. We can get the global limits from<a name="line.1556"></a>
-<span class="sourceLineNo">1557</span>      // it.<a name="line.1557"></a>
-<span class="sourceLineNo">1558</span>      Pair&lt;Long, MemoryType&gt; pair = MemorySizeUtil.getGlobalMemStoreSize(conf);<a name="line.1558"></a>
-<span class="sourceLineNo">1559</span>      long globalMemStoreSize = pair.getFirst();<a name="line.1559"></a>
-<span class="sourceLineNo">1560</span>      boolean offheap = this.regionServerAccounting.isOffheap();<a name="line.1560"></a>
-<span class="sourceLineNo">1561</span>      // When off heap memstore in use, take full area for chunk pool.<a name="line.1561"></a>
-<span class="sourceLineNo">1562</span>      float poolSizePercentage = offheap? 1.0F:<a name="line.1562"></a>
-<span class="sourceLineNo">1563</span>          conf.getFloat(MemStoreLAB.CHUNK_POOL_MAXSIZE_KEY, MemStoreLAB.POOL_MAX_SIZE_DEFAULT);<a name="line.1563"></a>
-<span class="sourceLineNo">1564</span>      float initialCountPercentage = conf.getFloat(MemStoreLAB.CHUNK_POOL_INITIALSIZE_KEY,<a name="line.1564"></a>
-<span class="sourceLineNo">1565</span>          MemStoreLAB.POOL_INITIAL_SIZE_DEFAULT);<a name="line.1565"></a>
-<span class="sourceLineNo">1566</span>      int chunkSize = conf.getInt(MemStoreLAB.CHUNK_SIZE_KEY, MemStoreLAB.CHUNK_SIZE_DEFAULT);<a name="line.1566"></a>
-<span class="sourceLineNo">1567</span>      // init the chunkCreator<a name="line.1567"></a>
-<span class="sourceLineNo">1568</span>      ChunkCreator chunkCreator =<a name="line.1568"></a>
-<span class="sourceLineNo">1569</span>          ChunkCreator.initialize(chunkSize, offheap, globalMemStoreSize, poolSizePercentage,<a name="line.1569"></a>
-<span class="sourceLineNo">1570</span>      initialCountPercentage, this.hMemManager);<a name="line.1570"></a>
-<span class="sourceLineNo">1571</span>    }<a name="line.1571"></a>
-<span class="sourceLineNo">1572</span>  }<a name="line.1572"></a>
-<span class="sourceLineNo">1573</span><a name="line.1573"></a>
-<span class="sourceLineNo">1574</span>  private void startHeapMemoryManager() {<a name="line.1574"></a>
-<span class="sourceLineNo">1575</span>    this.hMemManager = HeapMemoryManager.create(this.conf, this.cacheFlusher, this,<a name="line.1575"></a>
-<span class="sourceLineNo">1576</span>        this.regionServerAccounting);<a name="line.1576"></a>
-<span class="sourceLineNo">1577</span>    if (this.hMemManager != null) {<a name="line.1577"></a>
-<span class="sourceLineNo">1578</span>      this.hMemManager.start(getChoreService());<a name="line.1578"></a>
-<span class="sourceLineNo">1579</span>    }<a name="line.1579"></a>
-<span class="sourceLineNo">1580</span>  }<a name="line.1580"></a>
-<span class="sourceLineNo">1581</span><a name="line.1581"></a>
-<span class="sourceLineNo">1582</span>  private void createMyEphemeralNode() throws KeeperException, IOException {<a name="line.1582"></a>
-<span class="sourceLineNo">1583</span>    RegionServerInfo.Builder rsInfo = RegionServerInfo.newBuilder();<a name="line.1583"></a>
-<span class="sourceLineNo">1584</span>    rsInfo.setInfoPort(infoServer != null ? infoServer.getPort() : -1);<a name="line.1584"></a>
-<span class="sourceLineNo">1585</span>    rsInfo.setVersionInfo(ProtobufUtil.getVersionInfo());<a name="line.1585"></a>
-<span class="sourceLineNo">1586</span>    byte[] data = ProtobufUtil.prependPBMagic(rsInfo.build().toByteArray());<a name="line.1586"></a>
-<span class="sourceLineNo">1587</span>    ZKUtil.createEphemeralNodeAndWatch(this.zooKeeper, getMyEphemeralNodePath(), data);<a name="line.1587"></a>
-<span class="sourceLineNo">1588</span>  }<a name="line.1588"></a>
-<span class="sourceLineNo">1589</span><a name="line.1589"></a>
-<span class="sourceLineNo">1590</span>  private void deleteMyEphemeralNode() throws KeeperException {<a name="line.1590"></a>
-<span class="sourceLineNo">1591</span>    ZKUtil.deleteNode(this.zooKeeper, getMyEphemeralNodePath());<a name="line.1591"></a>
-<span class="sourceLineNo">1592</span>  }<a name="line.1592"></a>
-<span class="sourceLineNo">1593</span><a name="line.1593"></a>
-<span class="sourceLineNo">1594</span>  @Override<a name="line.1594"></a>
-<span class="sourceLineNo">1595</span>  public RegionServerAccounting getRegionServerAccounting() {<a name="line.1595"></a>
-<span class="sourceLineNo">1596</span>    return regionServerAccounting;<a name="line.1596"></a>
-<span class="sourceLineNo">1597</span>  }<a name="line.1597"></a>
-<span class="sourceLineNo">1598</span><a name="line.1598"></a>
-<span class="sourceLineNo">1599</span>  /*<a name="line.1599"></a>
-<span class="sourceLineNo">1600</span>   * @param r Region to get RegionLoad for.<a name="line.1600"></a>
-<span class="sourceLineNo">1601</span>   * @param regionLoadBldr the RegionLoad.Builder, can be null<a name="line.1601"></a>
-<span class="sourceLineNo">1602</span>   * @param regionSpecifier the RegionSpecifier.Builder, can be null<a name="line.1602"></a>
-<span class="sourceLineNo">1603</span>   * @return RegionLoad instance.<a name="line.1603"></a>
-<span class="sourceLineNo">1604</span>   *<a name="line.1604"></a>
-<span class="sourceLineNo">1605</span>   * @throws IOException<a name="line.1605"></a>
-<span class="sourceLineNo">1606</span>   */<a name="line.1606"></a>
-<span class="sourceLineNo">1607</span>  RegionLoad createRegionLoad(final HRegion r, RegionLoad.Builder regionLoadBldr,<a name="line.1607"></a>
-<span class="sourceLineNo">1608</span>      RegionSpecifier.Builder regionSpecifier) throws IOException {<a name="line.1608"></a>
-<span class="sourceLineNo">1609</span>    byte[] name = r.getRegionInfo().getRegionName();<a name="line.1609"></a>
-<span class="sourceLineNo">1610</span>    int stores = 0;<a name="line.1610"></a>
-<span class="sourceLineNo">1611</span>    int storefiles = 0;<a name="line.1611"></a>
-<span class="sourceLineNo">1612</span>    int storeUncompressedSizeMB = 0;<a name="line.1612"></a>
-<span class="sourceLineNo">1613</span>    int storefileSizeMB = 0;<a name="line.1613"></a>
-<span class="sourceLineNo">1614</span>    int memstoreSizeMB = (int) (r.getMemStoreSize() / 1024 / 1024);<a name="line.1614"></a>
-<span class="sourceLineNo">1615</span>    long storefileIndexSizeKB = 0;<a name="line.1615"></a>
-<span class="sourceLineNo">1616</span>    int rootIndexSizeKB = 0;<a name="line.1616"></a>
-<span class="sourceLineNo">1617</span>    int totalStaticIndexSizeKB = 0;<a name="line.1617"></a>
-<span class="sourceLineNo">1618</span>    int totalStaticBloomSizeKB = 0;<a name="line.1618"></a>
-<span class="sourceLineNo">1619</span>    long totalCompactingKVs = 0;<a name="line.1619"></a>
-<span class="sourceLineNo">1620</span>    long currentCompactedKVs = 0;<a name="line.1620"></a>
-<span class="sourceLineNo">1621</span>    List&lt;HStore&gt; storeList = r.getStores();<a name="line.1621"></a>
-<span class="sourceLineNo">1622</span>    stores += storeList.size();<a name="line.1622"></a>
-<span class="sourceLineNo">1623</span>    for (HStore store : storeList) {<a name="line.1623"></a>
-<span class="sourceLineNo">1624</span>      storefiles += store.getStorefilesCount();<a name="line.1624"></a>
-<span class="sourceLineNo">1625</span>      storeUncompressedSizeMB += (int) (store.getStoreSizeUncompressed() / 1024 / 1024);<a name="line.1625"></a>
-<span class="sourceLineNo">1626</span>      storefileSizeMB += (int) (store.getStorefilesSize() / 1024 / 1024);<a name="line.1626"></a>
-<span class="sourceLineNo">1627</span>      storefileIndexSizeKB += store.getStorefilesIndexSize() / 1024;<a name="line.1627"></a>
-<span class="sourceLineNo">1628</span>      CompactionProgress progress = store.getCompactionProgress();<a name="line.1628"></a>
-<span class="sourceLineNo">1629</span>      if (progress != null) {<a name="line.1629"></a>
-<span class="sourceLineNo">1630</span>        totalCompactingKVs += progress.totalCompactingKVs;<a name="line.1630"></a>
-<span class="sourceLineNo">1631</span>        currentCompactedKVs += progress.currentCompactedKVs;<a name="line.1631"></a>
-<span class="sourceLineNo">1632</span>      }<a name="line.1632"></a>
-<span class="sourceLineNo">1633</span>      rootIndexSizeKB += (int) (store.getStorefilesIndexSize() / 1024);<a name="line.1633"></a>
-<span class="sourceLineNo">1634</span>      totalStaticIndexSizeKB += (int) (store.getTotalStaticIndexSize() / 1024);<a name="line.1634"></a>
-<span class="sourceLineNo">1635</span>      totalStaticBloomSizeKB += (int) (store.getTotalStaticBloomSize() / 1024);<a name="line.1635"></a>
-<span class="sourceLineNo">1636</span>    }<a name="line.1636"></a>
-<span class="sourceLineNo">1637</span><a name="line.1637"></a>
-<span class="sourceLineNo">1638</span>    float dataLocality =<a name="line.1638"></a>
-<span class="sourceLineNo">1639</span>        r.getHDFSBlocksDistribution().getBlockLocalityIndex(serverName.getHostname());<a name="line.1639"></a>
-<span class="sourceLineNo">1640</span>    if (regionLoadBldr == null) {<a name="line.1640"></a>
-<span class="sourceLineNo">1641</span>      regionLoadBldr = RegionLoad.newBuilder();<a name="line.1641"></a>
-<span class="sourceLineNo">1642</span>    }<a name="line.1642"></a>
-<span class="sourceLineNo">1643</span>    if (regionSpecifier == null) {<a name="line.1643"></a>
-<span class="sourceLineNo">1644</span>      regionSpecifier = RegionSpecifier.newBuilder();<a name="line.1644"></a>
-<span class="sourceLineNo">1645</span>    }<a name="line.1645"></a>
-<span class="sourceLineNo">1646</span>    regionSpecifier.setType(RegionSpecifierType.REGION_NAME);<a name="line.1646"></a>
-<span class="sourceLineNo">1647</span>    regionSpecifier.setValue(UnsafeByteOperations.unsafeWrap(name));<a name="line.1647"></a>
-<span class="sourceLineNo">1648</span>    regionLoadBldr.setRegionSpecifier(regionSpecifier.build())<a name="line.1648"></a>
-<span class="sourceLineNo">1649</span>      .setStores(stores)<a name="line.1649"></a>
-<span class="sourceLineNo">1650</span>      .setStorefiles(storefiles)<a name="line.1650"></a>
-<span class="sourceLineNo">1651</span>      .setStoreUncompressedSizeMB(storeUncompressedSizeMB)<a name="line.1651"></a>
-<span class="sourceLineNo">1652</span>      .setStorefileSizeMB(storefileSizeMB)<a name="line.1652"></a>
-<span class="sourceLineNo">1653</span>      .setMemStoreSizeMB(memstoreSizeMB)<a name="line.1653"></a>
-<span class="sourceLineNo">1654</span>      .setStorefileIndexSizeKB(storefileIndexSizeKB)<a name="line.1654"></a>
-<span class="sourceLineNo">1655</span>      .setRootIndexSizeKB(rootIndexSizeKB)<a name="line.1655"></a>
-<span class="sourceLineNo">1656</span>      .setTotalStaticIndexSizeKB(totalStaticIndexSizeKB)<a name="line.1656"></a>
-<span class="sourceLineNo">1657</span>      .setTotalStaticBloomSizeKB(totalStaticBloomSizeKB)<a name="line.1657"></a>
-<span class="sourceLineNo">1658</span>      .setReadRequestsCount(r.getReadRequestsCount())<a name="line.1658"></a>
-<span class="sourceLineNo">1659</span>      .setFilteredReadRequestsCount(r.getFilteredReadRequestsCount())<a name="line.1659"></a>
-<span class="sourceLineNo">1660</span>      .setWriteRequestsCount(r.getWriteRequestsCount())<a name="line.1660"></a>
-<span class="sourceLineNo">1661</span>      .setTotalCompactingKVs(totalCompactingKVs)<a name="line.1661"></a>
-<span class="sourceLineNo">1662</span>      .setCurrentCompactedKVs(currentCompactedKVs)<a name="line.1662"></a>
-<span class="sourceLineNo">1663</span>      .setDataLocality(dataLocality)<a name="line.1663"></a>
-<span class="sourceLineNo">1664</span>      .setLastMajorCompactionTs(r.getOldestHfileTs(true));<a name="line.1664"></a>
-<span class="sourceLineNo">1665</span>    ((HRegion)r).setCompleteSequenceId(regionLoadBldr);<a name="line.1665"></a>
-<span class="sourceLineNo">1666</span><a name="line.1666"></a>
-<span class="sourceLineNo">1667</span>    return regionLoadBldr.build();<a name="line.1667"></a>
-<span class="sourceLineNo">1668</span>  }<a name="line.1668"></a>
-<span class="sourceLineNo">1669</span><a name="line.1669"></a>
-<span class="sourceLineNo">1670</span>  /**<a name="line.1670"></a>
-<span class="sourceLineNo">1671</span>   * @param encodedRegionName<a name="line.1671"></a>
-<span class="sourceLineNo">1672</span>   * @return An instance of RegionLoad.<a name="line.1672"></a>
-<span class="sourceLineNo">1673</span>   */<a name="line.1673"></a>
-<span class="sourceLineNo">1674</span>  public RegionLoad createRegionLoad(final String encodedRegionName) throws IOException {<a name="line.1674"></a>
-<span class="sourceLineNo">1675</span>    HRegion r = onlineRegions.get(encodedRegionName);<a name="line.1675"></a>
-<span class="sourceLineNo">1676</span>    return r != null ? createRegionLoad(r, null, null) : null;<a name="line.1676"></a>
-<span class="sourceLineNo">1677</span>  }<a name="line.1677"></a>
-<span class="sourceLineNo">1678</span><a name="line.1678"></a>
-<span class="sourceLineNo">1679</span>  /*<a name="line.1679"></a>
-<span class="sourceLineNo">1680</span>   * Inner class that runs on a long period checking if regions need compaction.<a name="line.1680"></a>
-<span class="sourceLineNo">1681</span>   */<a name="line.1681"></a>
-<span class="sourceLineNo">1682</span>  private static class CompactionChecker extends ScheduledChore {<a name="line.1682"></a>
-<span class="sourceLineNo">1683</span>    private final HRegionServer instance;<a name="line.1683"></a>
-<span class="sourceLineNo">1684</span>    private final int majorCompactPriority;<a name="line.1684"></a>
-<span class="sourceLineNo">1685</span>    private final static int DEFAULT_PRIORITY = Integer.MAX_VALUE;<a name="line.1685"></a>
-<span class="sourceLineNo">1686</span>    //Iteration is 1-based rather than 0-based so we don't check for compaction<a name="line.1686"></a>
-<span class="sourceLineNo">1687</span>    // immediately upon region server startup<a name="line.1687"></a>
-<span class="sourceLineNo">1688</span>    private long iteration = 1;<a name="line.1688"></a>
-<span class="sourceLineNo">1689</span><a name="line.1689"></a>
-<span class="sourceLineNo">1690</span>    CompactionChecker(final HRegionServer h, final int sleepTime, final Stoppable stopper) {<a name="line.1690"></a>
-<span class="sourceLineNo">1691</span>      super("CompactionChecker", stopper, sleepTime);<a name="line.1691"></a>
-<span class="sourceLineNo">1692</span>      this.instance = h;<a name="line.1692"></a>
-<span class="sourceLineNo">1693</span>      LOG.info(this.getName() + " runs every " + StringUtils.formatTime(sleepTime));<a name="line.1693"></a>
-<span class="sourceLineNo">1694</span><a name="line.1694"></a>
-<span class="sourceLineNo">1695</span>      /* MajorCompactPriority is configurable.<a name="line.1695"></a>
-<span class="sourceLineNo">1696</span>       * If not set, the compaction will use default priority.<a name="line.1696"></a>
-<span class="sourceLineNo">1697</span>       */<a name="line.1697"></a>
-<span class="sourceLineNo">1698</span>      this.majorCompactPriority = this.instance.conf.<a name="line.1698"></a>
-<span class="sourceLineNo">1699</span>          getInt("hbase.regionserver.compactionChecker.majorCompactPriority",<a name="line.1699"></a>
-<span class="sourceLineNo">1700</span>              DEFAULT_PRIORITY);<a name="line.1700"></a>
-<span class="sourceLineNo">1701</span>    }<a name="line.1701"></a>
-<span class="sourceLineNo">1702</span><a name="line.1702"></a>
-<span class="sourceLineNo">1703</span>    @Override<a name="line.1703"></a>
-<span class="sourceLineNo">1704</span>    protected void chore() {<a name="line.1704"></a>
-<span class="sourceLineNo">1705</span>      for (Region r : this.instance.onlineRegions.values()) {<a name="line.1705"></a>
-<span class="sourceLineNo">1706</span>        if (r == null) {<a name="line.1706"></a>
-<span class="sourceLineNo">1707</span>          continue;<a name="line.1707"></a>
-<span class="sourceLineNo">1708</span>        }<a name="line.1708"></a>
-<span class="sourceLineNo">1709</span>        HRegion hr = (HRegion) r;<a name="line.1709"></a>
-<span class="sourceLineNo">1710</span>        for (HStore s : hr.stores.values()) {<a name="line.1710"></a>
-<span class="sourceLineNo">1711</span>          try {<a name="line.1711"></a>
-<span class="sourceLineNo">1712</span>            long multiplier = s.getCompactionCheckMultiplier();<a name="line.1712"></a>
-<span class="sourceLineNo">1713</span>            assert multiplier &gt; 0;<a name="line.1713"></a>
-<span class="sourceLineNo">1714</span>            if (iteration % multiplier != 0) {<a name="line.1714"></a>
-<span class="sourceLineNo">1715</span>              continue;<a name="line.1715"></a>
-<span class="sourceLineNo">1716</span>            }<a name="line.1716"></a>
-<span class="sourceLineNo">1717</span>            if (s.needsCompaction()) {<a name="line.1717"></a>
-<span class="sourceLineNo">1718</span>              // Queue a compaction. Will recognize if major is needed.<a name="line.1718"></a>
-<span class="sourceLineNo">1719</span>              this.instance.compactSplitThread.requestSystemCompaction(hr, s,<a name="line.1719"></a>
-<span class="sourceLineNo">1720</span>                getName() + " requests compaction");<a name="line.1720"></a>
-<span class="sourceLineNo">1721</span>            } else if (s.shouldPerformMajorCompaction()) {<a name="line.1721"></a>
-<span class="sourceLineNo">1722</span>              s.triggerMajorCompaction();<a name="line.1722"></a>
-<span class="sourceLineNo">1723</span>              if (majorCompactPriority == DEFAULT_PRIORITY ||<a name="line.1723"></a>
-<span class="sourceLineNo">1724</span>                  majorCompactPriority &gt; hr.getCompactPriority()) {<a name="line.1724"></a>
-<span class="sourceLineNo">1725</span>                this.instance.compactSplitThread.requestCompaction(hr, s,<a name="line.1725"></a>
-<span class="sourceLineNo">1726</span>                    getName() + " requests major compaction; use default priority",<a name="line.1726"></a>
-<span class="sourceLineNo">1727</span>                    Store.NO_PRIORITY,<a name="line.1727"></a>
-<span class="sourceLineNo">1728</span>                CompactionLifeCycleTracker.DUMMY, null);<a name="line.1728"></a>
-<span class="sourceLineNo">1729</span>              } else {<a name="line.1729"></a>
-<span class="sourceLineNo">1730</span>                this.instance.compactSplitThread.requestCompaction(hr, s,<a name="line.1730"></a>
-<span class="sourceLineNo">1731</span>                    getName() + " requests major compaction; use configured priority",<a name="line.1731"></a>
-<span class="sourceLineNo">1732</span>                    this.majorCompactPriority, CompactionLifeCycleTracker.DUMMY, null);<a name="line.1732"></a>
-<span class="sourceLineNo">1733</span>              }<a name="line.1733"></a>
-<span class="sourceLineNo">1734</span>            }<a name="line.1734"></a>
-<span class="sourceLineNo">1735</span>          } catch (IOException e) {<a name="line.1735"></a>
-<span class="sourceLineNo">1736</span>            LOG.warn("Failed major compaction check on " + r, e);<a name="line.1736"></a>
-<span class="sourceLineNo">1737</span>          }<a name="line.1737"></a>
-<span class="sourceLineNo">1738</span>        }<a name="line.1738"></a>
-<span class="sourceLineNo">1739</span>      }<a name="line.1739"></a>
-<span class="sourceLineNo">1740</span>      iteration = (iteration == Long.MAX_VALUE) ? 0 : (iteration + 1);<a name="line.1740"></a>
-<span class="sourceLineNo">1741</span>    }<a name="line.1741"></a>
-<span class="sourceLineNo">1742</span>  }<a name="line.1742"></a>
-<span class="sourceLineNo">1743</span><a name="line.1743"></a>
-<span class="sourceLineNo">1744</span>  static class PeriodicMemStoreFlusher extends ScheduledChore {<a name="line.1744"></a>
-<span class="sourceLineNo">1745</span>    final HRegionServer server;<a name="line.1745"></a>
-<span class="sourceLineNo">1746</span>    final static int RANGE_OF_DELAY = 5 * 60 * 1000; // 5 min in milliseconds<a name="line.1746"></a>
-<span class="sourceLineNo">1747</span>    final static int MIN_DELAY_TIME = 0; // millisec<a name="line.1747"></a>
-<span class="sourceLineNo">1748</span>    public PeriodicMemStoreFlusher(int cacheFlushInterval, final HRegionServer server) {<a name="line.1748"></a>
-<span class="sourceLineNo">1749</span>      super("MemstoreFlusherChore", server, cacheFlushInterval);<a name="line.1749"></a>
-<span class="sourceLineNo">1750</span>      this.server = server;<a name="line.1750"></a>
-<span class="sourceLineNo">1751</span>    }<a name="line.1751"></a>
-<span class="sourceLineNo">1752</span><a name="line.1752"></a>
-<span class="sourceLineNo">1753</span>    @Override<a name="line.1753"></a>
-<span class="sourceLineNo">1754</span>    protected void chore() {<a name="line.1754"></a>
-<span class="sourceLineNo">1755</span>      final StringBuffer whyFlush = new StringBuffer();<a name="line.1755"></a>
-<span class="sourceLineNo">1756</span>      for (HRegion r : this.server.onlineRegions.values()) {<a name="line.1756"></a>
-<span class="sourceLineNo">1757</span>        if (r == null) continue;<a name="line.1757"></a>
-<span class="sourceLineNo">1758</span>        if (r.shouldFlush(whyFlush)) {<a name="line.1758"></a>
-<span class="sourceLineNo">1759</span>          FlushRequester requester = server.getFlushRequester();<a name="line.1759"></a>
-<span class="sourceLineNo">1760</span>          if (requester != null) {<a name="line.1760"></a>
-<span class="sourceLineNo">1761</span>            long randomDelay = RandomUtils.nextInt(0, RANGE_OF_DELAY) + MIN_DELAY_TIME;<a name="line.1761"></a>
-<span class="sourceLineNo">1762</span>            LOG.info(getName() + " requesting flush of " +<a name="line.1762"></a>
-<span class="sourceLineNo">1763</span>              r.getRegionInfo().getRegionNameAsString() + " because " +<a name="line.1763"></a>
-<span class="sourceLineNo">1764</span>              whyFlush.toString() +<a name="line.1764"></a>
-<span class="sourceLineNo">1765</span>              " after random delay " + randomDelay + "ms");<a name="line.1765"></a>
-<span class="sourceLineNo">1766</span>            //Throttle the flushes by putting a delay. If we don't throttle, and there<a name="line.1766"></a>
-<span class="sourceLineNo">1767</span>            //is a balanced write-load on the regions in a table, we might end up<a name="line.1767"></a>
-<span class="sourceLineNo">1768</span>            //overwhelming the filesystem with too many flushes at once.<a name="line.1768"></a>
-<span class="sourceLineNo">1769</span>            requester.requestDelayedFlush(r, randomDelay, false);<a name="line.1769"></a>
-<span class="sourceLineNo">1770</span>          }<a name="line.1770"></a>
-<span class="sourceLineNo">1771</span>        }<a name="line.1771"></a>
-<span class="sourceLineNo">1772</span>      }<a name="line.1772"></a>
-<span class="sourceLineNo">1773</span>    }<a name="line.1773"></a>
-<span class="sourceLineNo">1774</span>  }<a name="line.1774"></a>
-<span class="sourceLineNo">1775</span><a name="line.1775"></a>
-<span class="sourceLineNo">1776</span>  /**<a name="line.1776"></a>
-<span class="sourceLineNo">1777</span>   * Report the status of the server. A server is online once all the startup is<a name="line.1777"></a>
-<span class="sourceLineNo">1778</span>   * completed (setting up filesystem, starting executorService threads, etc.). This<a name="line.1778"></a>
-<span class="sourceLineNo">1779</span>   * method is designed mostly to be useful in tests.<a name="line.1779"></a>
-<span class="sourceLineNo">1780</span>   *<a name="line.1780"></a>
-<span class="sourceLineNo">1781</span>   * @return true if online, false if not.<a name="line.1781"></a>
-<span class="sourceLineNo">1782</span>   */<a name="line.1782"></a>
-<span class="sourceLineNo">1783</span>  public boolean isOnline() {<a name="line.1783"></a>
-<span class="sourceLineNo">1784</span>    return online.get();<a name="line.1784"></a>
-<span class="sourceLineNo">1785</span>  }<a name="line.1785"></a>
-<span class="sourceLineNo">1786</span><a name="line.1786"></a>
-<span class="sourceLineNo">1787</span>  /**<a name="line.1787"></a>
-<span class="sourceLineNo">1788</span>   * Setup WAL log and replication if enabled.<a name="line.1788"></a>
-<span class="sourceLineNo">1789</span>   * Replication setup is done in here because it wants to be hooked up to WAL.<a name="line.1789"></a>
-<span class="sourceLineNo">1790</span>   *<a name="line.1790"></a>
-<span class="sourceLineNo">1791</span>   * @throws IOException<a name="line.1791"></a>
-<span class="sourceLineNo">1792</span>   */<a name="line.1792"></a>
-<span class="sourceLineNo">1793</span>  private void setupWALAndReplication() throws IOException {<a name="line.1793"></a>
-<span class="sourceLineNo">1794</span>    // TODO Replication make assumptions here based on the default filesystem impl<a name="line.1794"></a>
-<span class="sourceLineNo">1795</span>    Path oldLogDir = new Path(walRootDir, HConstants.HREGION_OLDLOGDIR_NAME);<a name="line.1795"></a>
-<span class="sourceLineNo">1796</span>    String logName = AbstractFSWALProvider.getWALDirectoryName(this.serverName.toString());<a name="line.1796"></a>
-<span class="sourceLineNo">1797</span><a name="line.1797"></a>
-<span class="sourceLineNo">1798</span>    Path logDir = new Path(walRootDir, logName);<a name="line.1798"></a>
-<span class="sourceLineNo">1799</span>    if (LOG.isDebugEnabled()) LOG.debug("logDir=" + logDir);<a name="line.1799"></a>
-<span class="sourceLineNo">1800</span>    if (this.walFs.exists(logDir)) {<a name="line.1800"></a>
-<span class="sourceLineNo">1801</span>      throw new RegionServerRunningException("Region server has already " +<a name="line.1801"></a>
-<span class="sourceLineNo">1802</span>          "created directory at " + this.serverName.toString());<a name="line.1802"></a>
-<span class="sourceLineNo">1803</span>    }<a name="line.1803"></a>
-<span class="sourceLineNo">1804</span><a name="line.1804"></a>
-<span class="sourceLineNo">1805</span>    // Instantiate replication if replication enabled.  Pass it the log directories.<a name="line.1805"></a>
-<span class="sourceLineNo">1806</span>    // In here we create the Replication instances. Later they are initialized and started up.<a name="line.1806"></a>
-<span class="sourceLineNo">1807</span>    createNewReplicationInstance(conf, this, this.walFs, logDir, oldLogDir);<a name="line.1807"></a>
-<span class="sourceLineNo">1808</span><a name="line.1808"></a>
-<span class="sourceLineNo">1809</span>    // listeners the wal factory will add to wals it creates.<a name="line.1809"></a>
-<span class="sourceLineNo">1810</span>    List&lt;WALActionsListener&gt; listeners = new ArrayList&lt;&gt;();<a name="line.1810"></a>
-<span class="sourceLineNo">1811</span>    listeners.add(new MetricsWAL());<a name="line.1811"></a>
-<span class="sourceLineNo">1812</span>    if (this.replicationSourceHandler != null &amp;&amp;<a name="line.1812"></a>
-<span class="sourceLineNo">1813</span>        this.replicationSourceHandler.getWALActionsListener() != null) {<a name="line.1813"></a>
-<span class="sourceLineNo">1814</span>      // Replication handler is an implementation of WALActionsListener.<a name="line.1814"></a>
-<span class="sourceLineNo">1815</span>      listeners.add(this.replicationSourceHandler.getWALActionsListener());<a name="line.1815"></a>
-<span class="sourceLineNo">1816</span>    }<a name="line.1816"></a>
-<span class="sourceLineNo">1817</span><a name="line.1817"></a>
-<span class="sourceLineNo">1818</span>    // There is a cyclic dependency between ReplicationSourceHandler and WALFactory.<a name="line.1818"></a>
-<span class="sourceLineNo">1819</span>    // We use WALActionsListener to get the newly rolled WALs, so we need to get the<a name="line.1819"></a>
-<span class="sourceLineNo">1820</span>    // WALActionsListeners from ReplicationSourceHandler before constructing WALFactory. And then<a name="line.1820"></a>
-<span class="sourceLineNo">1821</span>    // ReplicationSourceHandler need to use WALFactory get the length of the wal file being written.<a name="line.1821"></a>
-<span class="sourceLineNo">1822</span>    // So we here we need to construct WALFactory first, and then pass it to the initialized method<a name="line.1822"></a>
-<span class="sourceLineNo">1823</span>    // of ReplicationSourceHandler.<a name="line.1823"></a>
-<span class="sourceLineNo">1824</span>    // TODO: I can't follow replication; it has initialize and then later on we start it!<a name="line.1824"></a>
-<span class="sourceLineNo">1825</span>    WALFactory factory = new WALFactory(conf, listeners, serverName.toString());<a name="line.1825"></a>
-<span class="sourceLineNo">1826</span>    this.walFactory = factory;<a name="line.1826"></a>
-<span class="sourceLineNo">1827</span>    if (this.replicationSourceHandler != null) {<a name="line.1827"></a>
-<span class="sourceLineNo">1828</span>      this.replicationSourceHandler.initialize(this, walFs, logDir, oldLogDir, factory);<a name="line.1828"></a>
-<span class="sourceLineNo">1829</span>    }<a name="line.1829"></a>
-<span class="sourceLineNo">1830</span>    if (this.replicationSinkHandler != null &amp;&amp;<a name="line.1830"></a>
-<span class="sourceLineNo">1831</span>        this.replicationSinkHandler != this.replicationSourceHandler) {<a name="line.1831"></a>
-<span class="sourceLineNo">1832</span>      this.replicationSinkHandler.initialize(this, walFs, logDir, oldLogDir, factory);<a name="line.1832"></a>
-<span class="sourceLineNo">1833</span>    }<a name="line.1833"></a>
-<span class="sourceLineNo">1834</span>  }<a name="line.1834"></a>
-<span class="sourceLineNo">1835</span><a name="line.1835"></a>
-<span class="sourceLineNo">1836</span>  /**<a name="line.1836"></a>
-<span class="sourceLineNo">1837</span>   * Start up replication source and sink handlers.<a name="line.1837"></a>
-<span class="sourceLineNo">1838</span>   * @throws IOException<a name="line.1838"></a>
-<span class="sourceLineNo">1839</span>   */<a name="line.1839"></a>
-<span class="sourceLineNo">1840</span>  private void startReplicationService() throws IOException {<a name="line.1840"></a>
-<span class="sourceLineNo">1841</span>    if (this.replicationSourceHandler == this.replicationSinkHandler &amp;&amp;<a name="line.1841"></a>
-<span class="sourceLineNo">1842</span>        this.replicationSourceHandler != null) {<a name="line.1842"></a>
-<span class="sourceLineNo">1843</span>      this.replicationSourceHandler.startReplicationService();<a name="line.1843"></a>
-<span class="sourceLineNo">1844</span>    } else {<a name="line.1844"></a>
-<span class="sourceLineNo">1845</span>      if (this.replicationSourceHandler != null) {<a name="line.1845"></a>
-<span class="sourceLineNo">1846</span>        this.replicationSourceHandler.startReplicationService();<a name="line.1846"></a>
-<span class="sourceLineNo">1847</span>      }<a name="line.1847"></a>
-<span class="sourceLineNo">1848</span>      if (this.replicationSinkHandler != null) {<a name="line.1848"></a>
-<span class="sourceLineNo">1849</span>        this.replicationSinkHandler.startReplicationService();<a name="line.1849"></a>
-<span class="sourceLineNo">1850</span>      }<a name="line.1850"></a>
-<span class="sourceLineNo">1851</span>    }<a name="line.1851"></a>
-<span class="sourceLineNo">1852</span>  }<a name="line.1852"></a>
-<span class="sourceLineNo">1853</span><a name="line.1853"></a>
+<span class="sourceLineNo">1534</span><a name="line.1534"></a>
+<span class="sourceLineNo">1535</span>      // Set up ZK<a name="line.1535"></a>
+<span class="sourceLineNo">1536</span>      LOG.info("Serving as " + this.serverName + ", RpcServer on " + rpcServices.isa +<a name="line.1536"></a>
+<span class="sourceLineNo">1537</span>          ", sessionid=0x" +<a name="line.1537"></a>
+<span class="sourceLineNo">1538</span>          Long.toHexString(this.zooKeeper.getRecoverableZooKeeper().getSessionId()));<a name="line.1538"></a>
+<span class="sourceLineNo">1539</span><a name="line.1539"></a>
+<span class="sourceLineNo">1540</span>      // Wake up anyone waiting for this server to online<a name="line.1540"></a>
+<span class="sourceLineNo">1541</span>      synchronized (online) {<a name="line.1541"></a>
+<span class="sourceLineNo">1542</span>        online.set(true);<a name="line.1542"></a>
+<span class="sourceLineNo">1543</span>        online.notifyAll();<a name="line.1543"></a>
+<span class="sourceLineNo">1544</span>      }<a name="line.1544"></a>
+<span class="sourceLineNo">1545</span>    } catch (Throwable e) {<a name="line.1545"></a>
+<span class="sourceLineNo">1546</span>      stop("Failed initialization");<a name="line.1546"></a>
+<span class="sourceLineNo">1547</span>      throw convertThrowableToIOE(cleanup(e, "Failed init"),<a name="line.1547"></a>
+<span class="sourceLineNo">1548</span>          "Region server startup failed");<a name="line.1548"></a>
+<span class="sourceLineNo">1549</span>    } finally {<a name="line.1549"></a>
+<span class="sourceLineNo">1550</span>      sleeper.skipSleepCycle();<a name="line.1550"></a>
+<span class="sourceLineNo">1551</span>    }<a name="line.1551"></a>
+<span class="sourceLineNo">1552</span>  }<a name="line.1552"></a>
+<span class="sourceLineNo">1553</span><a name="line.1553"></a>
+<span class="sourceLineNo">1554</span>  protected void initializeMemStoreChunkCreator() {<a name="line.1554"></a>
+<span class="sourceLineNo">1555</span>    if (MemStoreLAB.isEnabled(conf)) {<a name="line.1555"></a>
+<span class="sourceLineNo">1556</span>      // MSLAB is enabled. So initialize MemStoreChunkPool<a name="line.1556"></a>
+<span class="sourceLineNo">1557</span>      // By this time, the MemstoreFlusher is already initialized. We can get the global limits from<a name="line.1557"></a>
+<span class="sourceLineNo">1558</span>      // it.<a name="line.1558"></a>
+<span class="sourceLineNo">1559</span>      Pair&lt;Long, MemoryType&gt; pair = MemorySizeUtil.getGlobalMemStoreSize(conf);<a name="line.1559"></a>
+<span class="sourceLineNo">1560</span>      long globalMemStoreSize = pair.getFirst();<a name="line.1560"></a>
+<span class="sourceLineNo">1561</span>      boolean offheap = this.regionServerAccounting.isOffheap();<a name="line.1561"></a>
+<span class="sourceLineNo">1562</span>      // When off heap memstore in use, take full area for chunk pool.<a name="line.1562"></a>
+<span class="sourceLineNo">1563</span>      float poolSizePercentage = offheap? 1.0F:<a name="line.1563"></a>
+<span class="sourceLineNo">1564</span>          conf.getFloat(MemStoreLAB.CHUNK_POOL_MAXSIZE_KEY, MemStoreLAB.POOL_MAX_SIZE_DEFAULT);<a name="line.1564"></a>
+<span class="sourceLineNo">1565</span>      float initialCountPercentage = conf.getFloat(MemStoreLAB.CHUNK_POOL_INITIALSIZE_KEY,<a name="line.1565"></a>
+<span class="sourceLineNo">1566</span>          MemStoreLAB.POOL_INITIAL_SIZE_DEFAULT);<a name="line.1566"></a>
+<span class="sourceLineNo">1567</span>      int chunkSize = conf.getInt(MemStoreLAB.CHUNK_SIZE_KEY, MemStoreLAB.CHUNK_SIZE_DEFAULT);<a name="line.1567"></a>
+<span class="sourceLineNo">1568</span>      // init the chunkCreator<a name="line.1568"></a>
+<span class="sourceLineNo">1569</span>      ChunkCreator chunkCreator =<a name="line.1569"></a>
+<span class="sourceLineNo">1570</span>          ChunkCreator.initialize(chunkSize, offheap, globalMemStoreSize, poolSizePercentage,<a name="line.1570"></a>
+<span class="sourceLineNo">1571</span>      initialCountPercentage, this.hMemManager);<a name="line.1571"></a>
+<span class="sourceLineNo">1572</span>    }<a name="line.1572"></a>
+<span class="sourceLineNo">1573</span>  }<a name="line.1573"></a>
+<span class="sourceLineNo">1574</span><a name="line.1574"></a>
+<span class="sourceLineNo">1575</span>  private void startHeapMemoryManager() {<a name="line.1575"></a>
+<span class="sourceLineNo">1576</span>    this.hMemManager = HeapMemoryManager.create(this.conf, this.cacheFlusher, this,<a name="line.1576"></a>
+<span class="sourceLineNo">1577</span>        this.regionServerAccounting);<a name="line.1577"></a>
+<span class="sourceLineNo">1578</span>    if (this.hMemManager != null) {<a name="line.1578"></a>
+<span class="sourceLineNo">1579</span>      this.hMemManager.start(getChoreService());<a name="line.1579"></a>
+<span class="sourceLineNo">1580</span>    }<a name="line.1580"></a>
+<span class="sourceLineNo">1581</span>  }<a name="line.1581"></a>
+<span class="sourceLineNo">1582</span><a name="line.1582"></a>
+<span class="sourceLineNo">1583</span>  private void createMyEphemeralNode() throws KeeperException, IOException {<a name="line.1583"></a>
+<span class="sourceLineNo">1584</span>    RegionServerInfo.Builder rsInfo = RegionServerInfo.newBuilder();<a name="line.1584"></a>
+<span class="sourceLineNo">1585</span>    rsInfo.setInfoPort(infoServer != null ? infoServer.getPort() : -1);<a name="line.1585"></a>
+<span class="sourceLineNo">1586</span>    rsInfo.setVersionInfo(ProtobufUtil.getVersionInfo());<a name="line.1586"></a>
+<span class="sourceLineNo">1587</span>    byte[] data = ProtobufUtil.prependPBMagic(rsInfo.build().toByteArray());<a name="line.1587"></a>
+<span class="sourceLineNo">1588</span>    ZKUtil.createEphemeralNodeAndWatch(this.zooKeeper, getMyEphemeralNodePath(), data);<a name="line.1588"></a>
+<span class="sourceLineNo">1589</span>  }<a name="line.1589"></a>
+<span class="sourceLineNo">1590</span><a name="line.1590"></a>
+<span class="sourceLineNo">1591</span>  private void deleteMyEphemeralNode() throws KeeperException {<a name="line.1591"></a>
+<span class="sourceLineNo">1592</span>    ZKUtil.deleteNode(this.zooKeeper, getMyEphemeralNodePath());<a name="line.1592"></a>
+<span class="sourceLineNo">1593</span>  }<a name="line.1593"></a>
+<span class="sourceLineNo">1594</span><a name="line.1594"></a>
+<span class="sourceLineNo">1595</span>  @Override<a name="line.1595"></a>
+<span class="sourceLineNo">1596</span>  public RegionServerAccounting getRegionServerAccounting() {<a name="line.1596"></a>
+<span class="sourceLineNo">1597</span>    return regionServerAccounting;<a name="line.1597"></a>
+<span class="sourceLineNo">1598</span>  }<a name="line.1598"></a>
+<span class="sourceLineNo">1599</span><a name="line.1599"></a>
+<span class="sourceLineNo">1600</span>  /*<a name="line.1600"></a>
+<span class="sourceLineNo">1601</span>   * @param r Region to get RegionLoad for.<a name="line.1601"></a>
+<span class="sourceLineNo">1602</span>   * @param regionLoadBldr the RegionLoad.Builder, can be null<a name="line.1602"></a>
+<span class="sourceLineNo">1603</span>   * @param regionSpecifier the RegionSpecifier.Builder, can be null<a name="line.1603"></a>
+<span class="sourceLineNo">1604</span>   * @return RegionLoad instance.<a name="line.1604"></a>
+<span class="sourceLineNo">1605</span>   *<a name="line.1605"></a>
+<span class="sourceLineNo">1606</span>   * @throws IOException<a name="line.1606"></a>
+<span class="sourceLineNo">1607</span>   */<a name="line.1607"></a>
+<span class="sourceLineNo">1608</span>  RegionLoad createRegionLoad(final HRegion r, RegionLoad.Builder regionLoadBldr,<a name="line.1608"></a>
+<span class="sourceLineNo">1609</span>      RegionSpecifier.Builder regionSpecifier) throws IOException {<a name="line.1609"></a>
+<span class="sourceLineNo">1610</span>    byte[] name = r.getRegionInfo().getRegionName();<a name="line.1610"></a>
+<span class="sourceLineNo">1611</span>    int stores = 0;<a name="line.1611"></a>
+<span class="sourceLineNo">1612</span>    int storefiles = 0;<a name="line.1612"></a>
+<span class="sourceLineNo">1613</span>    int storeUncompressedSizeMB = 0;<a name="line.1613"></a>
+<span class="sourceLineNo">1614</span>    int storefileSizeMB = 0;<a name="line.1614"></a>
+<span class="sourceLineNo">1615</span>    int memstoreSizeMB = (int) (r.getMemStoreSize() / 1024 / 1024);<a name="line.1615"></a>
+<span class="sourceLineNo">1616</span>    long storefileIndexSizeKB = 0;<a name="line.1616"></a>
+<span class="sourceLineNo">1617</span>    int rootIndexSizeKB = 0;<a name="line.1617"></a>
+<span class="sourceLineNo">1618</span>    int totalStaticIndexSizeKB = 0;<a name="line.1618"></a>
+<span class="sourceLineNo">1619</span>    int totalStaticBloomSizeKB = 0;<a name="line.1619"></a>
+<span class="sourceLineNo">1620</span>    long totalCompactingKVs = 0;<a name="line.1620"></a>
+<span class="sourceLineNo">1621</span>    long currentCompactedKVs = 0;<a name="line.1621"></a>
+<span class="sourceLineNo">1622</span>    List&lt;HStore&gt; storeList = r.getStores();<a name="line.1622"></a>
+<span class="sourceLineNo">1623</span>    stores += storeList.size();<a name="line.1623"></a>
+<span class="sourceLineNo">1624</span>    for (HStore store : storeList) {<a name="line.1624"></a>
+<span class="sourceLineNo">1625</span>      storefiles += store.getStorefilesCount();<a name="line.1625"></a>
+<span class="sourceLineNo">1626</span>      storeUncompressedSizeMB += (int) (store.getStoreSizeUncompressed() / 1024 / 1024);<a name="line.1626"></a>
+<span class="sourceLineNo">1627</span>      storefileSizeMB += (int) (store.getStorefilesSize() / 1024 / 1024);<a name="line.1627"></a>
+<span class="sourceLineNo">1628</span>      storefileIndexSizeKB += store.getStorefilesIndexSize() / 1024;<a name="line.1628"></a>
+<span class="sourceLineNo">1629</span>      CompactionProgress progress = store.getCompactionProgress();<a name="line.1629"></a>
+<span class="sourceLineNo">1630</span>      if (progress != null) {<a name="line.1630"></a>
+<span class="sourceLineNo">1631</span>        totalCompactingKVs += progress.totalCompactingKVs;<a name="line.1631"></a>
+<span class="sourceLineNo">1632</span>        currentCompactedKVs += progress.currentCompactedKVs;<a name="line.1632"></a>
+<span class="sourceLineNo">1633</span>      }<a name="line.1633"></a>
+<span class="sourceLineNo">1634</span>      rootIndexSizeKB += (int) (store.getStorefilesIndexSize() / 1024);<a name="line.1634"></a>
+<span class="sourceLineNo">1635</span>      totalStaticIndexSizeKB += (int) (store.getTotalStaticIndexSize() / 1024);<a name="line.1635"></a>
+<span class="sourceLineNo">1636</span>      totalStaticBloomSizeKB += (int) (store.getTotalStaticBloomSize() / 1024);<a name="line.1636"></a>
+<span class="sourceLineNo">1637</span>    }<a name="line.1637"></a>
+<span class="sourceLineNo">1638</span><a name="line.1638"></a>
+<span class="sourceLineNo">1639</span>    float dataLocality =<a name="line.1639"></a>
+<span class="sourceLineNo">1640</span>        r.getHDFSBlocksDistribution().getBlockLocalityIndex(serverName.getHostname());<a name="line.1640"></a>
+<span class="sourceLineNo">1641</span>    if (regionLoadBldr == null) {<a name="line.1641"></a>
+<span class="sourceLineNo">1642</span>      regionLoadBldr = RegionLoad.newBuilder();<a name="line.1642"></a>
+<span class="sourceLineNo">1643</span>    }<a name="line.1643"></a>
+<span class="sourceLineNo">1644</span>    if (regionSpecifier == null) {<a name="line.1644"></a>
+<span class="sourceLineNo">1645</span>      regionSpecifier = RegionSpecifier.newBuilder();<a name="line.1645"></a>
+<span class="sourceLineNo">1646</span>    }<a name="line.1646"></a>
+<span class="sourceLineNo">1647</span>    regionSpecifier.setType(RegionSpecifierType.REGION_NAME);<a name="line.1647"></a>
+<span class="sourceLineNo">1648</span>    regionSpecifier.setValue(UnsafeByteOperations.unsafeWrap(name));<a name="line.1648"></a>
+<span class="sourceLineNo">1649</span>    regionLoadBldr.setRegionSpecifier(regionSpecifier.build())<a name="line.1649"></a>
+<span class="sourceLineNo">1650</span>      .setStores(stores)<a name="line.1650"></a>
+<span class="sourceLineNo">1651</span>      .setStorefiles(storefiles)<a name="line.1651"></a>
+<span class="sourceLineNo">1652</span>      .setStoreUncompressedSizeMB(storeUncompressedSizeMB)<a name="line.1652"></a>
+<span class="sourceLineNo">1653</span>      .setStorefileSizeMB(storefileSizeMB)<a name="line.1653"></a>
+<span class="sourceLineNo">1654</span>      .setMemStoreSizeMB(memstoreSizeMB)<a name="line.1654"></a>
+<span class="sourceLineNo">1655</span>      .setStorefileIndexSizeKB(storefileIndexSizeKB)<a name="line.1655"></a>
+<span class="sourceLineNo">1656</span>      .setRootIndexSizeKB(rootIndexSizeKB)<a name="line.1656"></a>
+<span class="sourceLineNo">1657</span>      .setTotalStaticIndexSizeKB(totalStaticIndexSizeKB)<a name="line.1657"></a>
+<span class="sourceLineNo">1658</span>      .setTotalStaticBloomSizeKB(totalStaticBloomSizeKB)<a name="line.1658"></a>
+<span class="sourceLineNo">1659</span>      .setReadRequestsCount(r.getReadRequestsCount())<a name="line.1659"></a>
+<span class="sourceLineNo">1660</span>      .setFilteredReadRequestsCount(r.getFilteredReadRequestsCount())<a name="line.1660"></a>
+<span class="sourceLineNo">1661</span>      .setWriteRequestsCount(r.getWriteRequestsCount())<a name="line.1661"></a>
+<span class="sourceLineNo">1662</span>      .setTotalCompactingKVs(totalCompactingKVs)<a name="line.1662"></a>
+<span class="sourceLineNo">1663</span>      .setCurrentCompactedKVs(currentCompactedKVs)<a name="line.1663"></a>
+<span class="sourceLineNo">1664</span>      .setDataLocality(dataLocality)<a name="line.1664"></a>
+<span class="sourceLineNo">1665</span>      .setLastMajorCompactionTs(r.getOldestHfileTs(true));<a name="line.1665"></a>
+<span class="sourceLineNo">1666</span>    ((HRegion)r).setCompleteSequenceId(regionLoadBldr);<a name="line.1666"></a>
+<span class="sourceLineNo">1667</span><a name="line.1667"></a>
+<span class="sourceLineNo">1668</span>    return regionLoadBldr.build();<a name="line.1668"></a>
+<span class="sourceLineNo">1669</span>  }<a name="line.1669"></a>
+<span class="sourceLineNo">1670</span><a name="line.1670"></a>
+<span class="sourceLineNo">1671</span>  /**<a name="line.1671"></a>
+<span class="sourceLineNo">1672</span>   * @param encodedRegionName<a name="line.1672"></a>
+<span class="sourceLineNo">1673</span>   * @return An instance of RegionLoad.<a name="line.1673"></a>
+<span class="sourceLineNo">1674</span>   */<a name="line.1674"></a>
+<span class="sourceLineNo">1675</span>  public RegionLoad createRegionLoad(final String encodedRegionName) throws IOException {<a name="line.1675"></a>
+<span class="sourceLineNo">1676</span>    HRegion r = onlineRegions.get(encodedRegionName);<a name="line.1676"></a>
+<span class="sourceLineNo">1677</span>    return r != null ? createRegionLoad(r, null, null) : null;<a name="line.1677"></a>
+<span class="sourceLineNo">1678</span>  }<a name="line.1678"></a>
+<span class="sourceLineNo">1679</span><a name="line.1679"></a>
+<span class="sourceLineNo">1680</span>  /*<a name="line.1680"></a>
+<span class="sourceLineNo">1681</span>   * Inner class that runs on a long period checking if regions need compaction.<a name="line.1681"></a>
+<span class="sourceLineNo">1682</span>   */<a name="line.1682"></a>
+<span class="sourceLineNo">1683</span>  private static class CompactionChecker extends ScheduledChore {<a name="line.1683"></a>
+<span class="sourceLineNo">1684</span>    private final HRegionServer instance;<a name="line.1684"></a>
+<span class="sourceLineNo">1685</span>    private final int majorCompactPriority;<a name="line.1685"></a>
+<span class="sourceLineNo">1686</span>    private final static int DEFAULT_PRIORITY = Integer.MAX_VALUE;<a name="line.1686"></a>
+<span class="sourceLineNo">1687</span>    //Iteration is 1-based rather than 0-based so we don't check for compaction<a name="line.1687"></a>
+<span class="sourceLineNo">1688</span>    // immediately upon region server startup<a name="line.1688"></a>
+<span class="sourceLineNo">1689</span>    private long iteration = 1;<a name="line.1689"></a>
+<span class="sourceLineNo">1690</span><a name="line.1690"></a>
+<span class="sourceLineNo">1691</span>    CompactionChecker(final HRegionServer h, final int sleepTime, final Stoppable stopper) {<a name="line.1691"></a>
+<span class="sourceLineNo">1692</span>      super("CompactionChecker", stopper, sleepTime);<a name="line.1692"></a>
+<span class="sourceLineNo">1693</span>      this.instance = h;<a name="line.1693"></a>
+<span class="sourceLineNo">1694</span>      LOG.info(this.getName() + " runs every " + StringUtils.formatTime(sleepTime));<a name="line.1694"></a>
+<span class="sourceLineNo">1695</span><a name="line.1695"></a>
+<span class="sourceLineNo">1696</span>      /* MajorCompactPriority is configurable.<a name="line.1696"></a>
+<span class="sourceLineNo">1697</span>       * If not set, the compaction will use default priority.<a name="line.1697"></a>
+<span class="sourceLineNo">1698</span>       */<a name="line.1698"></a>
+<span class="sourceLineNo">1699</span>      this.majorCompactPriority = this.instance.conf.<a name="line.1699"></a>
+<span class="sourceLineNo">1700</span>          getInt("hbase.regionserver.compactionChecker.majorCompactPriority",<a name="line.1700"></a>
+<span class="sourceLineNo">1701</span>              DEFAULT_PRIORITY);<a name="line.1701"></a>
+<span class="sourceLineNo">1702</span>    }<a name="line.1702"></a>
+<span class="sourceLineNo">1703</span><a name="line.1703"></a>
+<span class="sourceLineNo">1704</span>    @Override<a name="line.1704"></a>
+<span class="sourceLineNo">1705</span>    protected void chore() {<a name="line.1705"></a>
+<span class="sourceLineNo">1706</span>      for (Region r : this.instance.onlineRegions.values()) {<a name="line.1706"></a>
+<span class="sourceLineNo">1707</span>        if (r == null) {<a name="line.1707"></a>
+<span class="sourceLineNo">1708</span>          continue;<a name="line.1708"></a>
+<span class="sourceLineNo">1709</span>        }<a name="line.1709"></a>
+<span class="sourceLineNo">1710</span>        HRegion hr = (HRegion) r;<a name="line.1710"></a>
+<span class="sourceLineNo">1711</span>        for (HStore s : hr.stores.values()) {<a name="line.1711"></a>
+<span class="sourceLineNo">1712</span>          try {<a name="line.1712"></a>
+<span class="sourceLineNo">1713</span>            long multiplier = s.getCompactionCheckMultiplier();<a name="line.1713"></a>
+<span class="sourceLineNo">1714</span>            assert multiplier &gt; 0;<a name="line.1714"></a>
+<span class="sourceLineNo">1715</span>            if (iteration % multiplier != 0) {<a name="line.1715"></a>
+<span class="sourceLineNo">1716</span>              continue;<a name="line.1716"></a>
+<span class="sourceLineNo">1717</span>            }<a name="line.1717"></a>
+<span class="sourceLineNo">1718</span>            if (s.needsCompaction()) {<a name="line.1718"></a>
+<span class="sourceLineNo">1719</span>              // Queue a compaction. Will recognize if major is needed.<a name="line.1719"></a>
+<span class="sourceLineNo">1720</span>              this.instance.compactSplitThread.requestSystemCompaction(hr, s,<a name="line.1720"></a>
+<span class="sourceLineNo">1721</span>                getName() + " requests compaction");<a name="line.1721"></a>
+<span class="sourceLineNo">1722</span>            } else if (s.shouldPerformMajorCompaction()) {<a name="line.1722"></a>
+<span class="sourceLineNo">1723</span>              s.triggerMajorCompaction();<a name="line.1723"></a>
+<span class="sourceLineNo">1724</span>              if (majorCompactPriority == DEFAULT_PRIORITY ||<a name="line.1724"></a>
+<span class="sourceLineNo">1725</span>                  majorCompactPriority &gt; hr.getCompactPriority()) {<a name="line.1725"></a>
+<span class="sourceLineNo">1726</span>                this.instance.compactSplitThread.requestCompaction(hr, s,<a name="line.1726"></a>
+<span class="sourceLineNo">1727</span>                    getName() + " requests major compaction; use default priority",<a name="line.1727"></a>
+<span class="sourceLineNo">1728</span>                    Store.NO_PRIORITY,<a name="line.1728"></a>
+<span class="sourceLineNo">1729</span>                CompactionLifeCycleTracker.DUMMY, null);<a name="line.1729"></a>
+<span class="sourceLineNo">1730</span>              } else {<a name="line.1730"></a>
+<span class="sourceLineNo">1731</span>                this.instance.compactSplitThread.requestCompaction(hr, s,<a name="line.1731"></a>
+<span class="sourceLineNo">1732</span>                    getName() + " requests major compaction; use configured priority",<a name="line.1732"></a>
+<span class="sourceLineNo">1733</span>                    this.majorCompactPriority, CompactionLifeCycleTracker.DUMMY, null);<a name="line.1733"></a>
+<span class="sourceLineNo">1734</span>              }<a name="line.1734"></a>
+<span class="sourceLineNo">1735</span>            }<a name="line.1735"></a>
+<span class="sourceLineNo">1736</span>          } catch (IOException e) {<a name="line.1736"></a>
+<span class="sourceLineNo">1737</span>            LOG.warn("Failed major compaction check on " + r, e);<a name="line.1737"></a>
+<span class="sourceLineNo">1738</span>          }<a name="line.1738"></a>
+<span class="sourceLineNo">1739</span>        }<a name="line.1739"></a>
+<span class="sourceLineNo">1740</span>      }<a name="line.1740"></a>
+<span class="sourceLineNo">1741</span>      iteration = (iteration == Long.MAX_VALUE) ? 0 : (iteration + 1);<a name="line.1741"></a>
+<span class="sourceLineNo">1742</span>    }<a name="line.1742"></a>
+<span class="sourceLineNo">1743</span>  }<a name="line.1743"></a>
+<span class="sourceLineNo">1744</span><a name="line.1744"></a>
+<span class="sourceLineNo">1745</span>  static class PeriodicMemStoreFlusher extends ScheduledChore {<a name="line.1745"></a>
+<span class="sourceLineNo">1746</span>    final HRegionServer server;<a name="line.1746"></a>
+<span class="sourceLineNo">1747</span>    final static int RANGE_OF_DELAY = 5 * 60 * 1000; // 5 min in milliseconds<a name="line.1747"></a>
+<span class="sourceLineNo">1748</span>    final static int MIN_DELAY_TIME = 0; // millisec<a name="line.1748"></a>
+<span class="sourceLineNo">1749</span>    public PeriodicMemStoreFlusher(int cacheFlushInterval, final HRegionServer server) {<a name="line.1749"></a>
+<span class="sourceLineNo">1750</span>      super("MemstoreFlusherChore", server, cacheFlushInterval);<a name="line.1750"></a>
+<span class="sourceLineNo">1751</span>      this.server = server;<a name="line.1751"></a>
+<span class="sourceLineNo">1752</span>    }<a name="line.1752"></a>
+<span class="sourceLineNo">1753</span><a name="line.1753"></a>
+<span class="sourceLineNo">1754</span>    @Override<a name="line.1754"></a>
+<span class="sourceLineNo">1755</span>    protected void chore() {<a name="line.1755"></a>
+<span class="sourceLineNo">1756</span>      final StringBuffer whyFlush = new StringBuffer();<a name="line.1756"></a>
+<span class="sourceLineNo">1757</span>      for (HRegion r : this.server.onlineRegions.values()) {<a name="line.1757"></a>
+<span class="sourceLineNo">1758</span>        if (r == null) continue;<a name="line.1758"></a>
+<span class="sourceLineNo">1759</span>        if (r.shouldFlush(whyFlush)) {<a name="line.1759"></a>
+<span class="sourceLineNo">1760</span>          FlushRequester requester = server.getFlushRequester();<a name="line.1760"></a>
+<span class="sourceLineNo">1761</span>          if (requester != null) {<a name="line.1761"></a>
+<span class="sourceLineNo">1762</span>            long randomDelay = RandomUtils.nextInt(0, RANGE_OF_DELAY) + MIN_DELAY_TIME;<a name="line.1762"></a>
+<span class="sourceLineNo">1763</span>            LOG.info(getName() + " requesting flush of " +<a name="line.1763"></a>
+<span class="sourceLineNo">1764</span>              r.getRegionInfo().getRegionNameAsString() + " because " +<a name="line.1764"></a>
+<span class="sourceLineNo">1765</span>              whyFlush.toString() +<a name="line.1765"></a>
+<span class="sourceLineNo">1766</span>              " after random delay " + randomDelay + "ms");<a name="line.1766"></a>
+<span class="sourceLineNo">1767</span>            //Throttle the flushes by putting a delay. If we don't throttle, and there<a name="line.1767"></a>
+<span class="sourceLineNo">1768</span>            //is a balanced write-load on the regions in a table, we might end up<a name="line.1768"></a>
+<span class="sourceLineNo">1769</span>            //overwhelming the filesystem with too many flushes at once.<a name="line.1769"></a>
+<span class="sourceLineNo">1770</span>            requester.requestDelayedFlush(r, randomDelay, false);<a name="line.1770"></a>
+<span class="sourceLineNo">1771</span>          }<a name="line.1771"></a>
+<span class="sourceLineNo">1772</span>        }<a name="line.1772"></a>
+<span class="sourceLineNo">1773</span>      }<a name="line.1773"></a>
+<span class="sourceLineNo">1774</span>    }<a name="line.1774"></a>
+<span class="sourceLineNo">1775</span>  }<a name="line.1775"></a>
+<span class="sourceLineNo">1776</span><a name="line.1776"></a>
+<span class="sourceLineNo">1777</span>  /**<a name="line.1777"></a>
+<span class="sourceLineNo">1778</span>   * Report the status of the server. A server is online once all the startup is<a name="line.1778"></a>
+<span class="sourceLineNo">1779</span>   * completed (setting up filesystem, starting executorService threads, etc.). This<a name="line.1779"></a>
+<span class="sourceLineNo">1780</span>   * method is designed mostly to be useful in tests.<a name="line.1780"></a>
+<span class="sourceLineNo">1781</span>   *<a name="line.1781"></a>
+<span class="sourceLineNo">1782</span>   * @return true if online, false if not.<a name="line.1782"></a>
+<span class="sourceLineNo">1783</span>   */<a name="line.1783"></a>
+<span class="sourceLineNo">1784</span>  public boolean isOnline() {<a name="line.1784"></a>
+<span class="sourceLineNo">1785</span>    return online.get();<a name="line.1785"></a>
+<span class="sourceLineNo">1786</span>  }<a name="line.1786"></a>
+<span class="sourceLineNo">1787</span><a name="line.1787"></a>
+<span class="sourceLineNo">1788</span>  /**<a name="line.1788"></a>
+<span class="sourceLineNo">1789</span>   * Setup WAL log and replication if enabled.<a name="line.1789"></a>
+<span class="sourceLineNo">1790</span>   * Replication setup is done in here because it wants to be hooked up to WAL.<a name="line.1790"></a>
+<span class="sourceLineNo">1791</span>   *<a name="line.1791"></a>
+<span class="sourceLineNo">1792</span>   * @throws IOException<a name="line.1792"></a>
+<span class="sourceLineNo">1793</span>   */<a name="line.1793"></a>
+<span class="sourceLineNo">1794</span>  private void setupWALAndReplication() throws IOException {<a name="line.1794"></a>
+<span class="sourceLineNo">1795</span>    // TODO Replication make assumptions here based on the default filesystem impl<a name="line.1795"></a>
+<span class="sourceLineNo">1796</span>    Path oldLogDir = new Path(walRootDir, HConstants.HREGION_OLDLOGDIR_NAME);<a name="line.1796"></a>
+<span class="sourceLineNo">1797</span>    String logName = AbstractFSWALProvider.getWALDirectoryName(this.serverName.toString());<a name="line.1797"></a>
+<span class="sourceLineNo">1798</span><a name="line.1798"></a>
+<span class="sourceLineNo">1799</span>    Path logDir = new Path(walRootDir, logName);<a name="line.1799"></a>
+<span class="sourceLineNo">1800</span>    if (LOG.isDebugEnabled()) LOG.debug("logDir=" + logDir);<a name="line.1800"></a>
+<span class="sourceLineNo">1801</span>    if (this.walFs.exists(logDir)) {<a name="line.1801"></a>
+<span class="sourceLineNo">1802</span>      throw new RegionServerRunningException("Region server has already " +<a name="line.1802"></a>
+<span class="sourceLineNo">1803</span>          "created directory at " + this.serverName.toString());<a name="line.1803"></a>
+<span class="sourceLineNo">1804</span>    }<a name="line.1804"></a>
+<span class="sourceLineNo">1805</span><a name="line.1805"></a>
+<span class="sourceLineNo">1806</span>    // Instantiate replication if replication enabled.  Pass it the log directories.<a name="line.1806"></a>
+<span class="sourceLineNo">1807</span>    // In here we create the Replication instances. Later they are initialized and started up.<a name="line.1807"></a>
+<span class="sourceLineNo">1808</span>    createNewReplicationInstance(conf, this, this.walFs, logDir, oldLogDir);<a name="line.1808"></a>
+<span class="sourceLineNo">1809</span><a name="line.1809"></a>
+<span class="sourceLineNo">1810</span>    // listeners the wal factory will add to wals it creates.<a name="line.1810"></a>
+<span class="sourceLineNo">1811</span>    List&lt;WALActionsListener&gt; listeners = new ArrayList&lt;&gt;();<a name="line.1811"></a>
+<span class="sourceLineNo">1812</span>    listeners.add(new MetricsWAL());<a name="line.1812"></a>
+<span class="sourceLineNo">1813</span>    if (this.replicationSourceHandler != null &amp;&amp;<a name="line.1813"></a>
+<span class="sourceLineNo">1814</span>        this.replicationSourceHandler.getWALActionsListener() != null) {<a name="line.1814"></a>
+<span class="sourceLineNo">1815</span>      // Replication handler is an implementation of WALActionsListener.<a name="line.1815"></a>
+<span class="sourceLineNo">1816</span>      listeners.add(this.replicationSourceHandler.getWALActionsListener());<a name="line.1816"></a>
+<span class="sourceLineNo">1817</span>    }<a name="line.1817"></a>
+<span class="sourceLineNo">1818</span><a name="line.1818"></a>
+<span class="sourceLineNo">1819</span>    // There is a cyclic dependency between ReplicationSourceHandler and WALFactory.<a name="line.1819"></a>
+<span class="sourceLineNo">1820</span>    // We use WALActionsListener to get the newly rolled WALs, so we need to get the<a name="line.1820"></a>
+<span class="sourceLineNo">1821</span>    // WALActionsListeners from ReplicationSourceHandler before constructing WALFactory. And then<a name="line.1821"></a>
+<span class="sourceLineNo">1822</span>    // ReplicationSourceHandler need to use WALFactory get the length of the wal file being written.<a name="line.1822"></a>
+<span class="sourceLineNo">1823</span>    // So we here we need to construct WALFactory first, and then pass it to the initialized method<a name="line.1823"></a>
+<span class="sourceLineNo">1824</span>    // of ReplicationSourceHandler.<a name="line.1824"></a>
+<span class="sourceLineNo">1825</span>    // TODO: I can't follow replication; it has initialize and then later on we start it!<a name="line.1825"></a>
+<span class="sourceLineNo">1826</span>    WALFactory factory = new WALFactory(conf, listeners, serverName.toString());<a name="line.1826"></a>
+<span class="sourceLineNo">1827</span>    this.walFactory = factory;<a name="line.1827"></a>
+<span class="sourceLineNo">1828</span>    if (this.replicationSourceHandler != null) {<a name="line.1828"></a>
+<span class="sourceLineNo">1829</span>      this.replicationSourceHandler.initialize(this, walFs, logDir, oldLogDir, factory);<a name="line.1829"></a>
+<span class="sourceLineNo">1830</span>    }<a name="line.1830"></a>
+<span class="sourceLineNo">1831</span>    if (this.replicationSinkHandler != null &amp;&amp;<a name="line.1831"></a>
+<span class="sourceLineNo">1832</span>        this.replicationSinkHandler != this.replicationSourceHandler) {<a name="line.1832"></a>
+<span class="sourceLineNo">1833</span>      this.replicationSinkHandler.initialize(this, walFs, logDir, oldLogDir, factory);<a name="line.1833"></a>
+<span class="sourceLineNo">1834</span>    }<a name="line.1834"></a>
+<span class="sourceLineNo">1835</span>  }<a name="line.1835"></a>
+<span class="sourceLineNo">1836</span><a name="line.1836"></a>
+<span class="sourceLineNo">1837</span>  /**<a name="line.1837"></a>
+<span class="sourceLineNo">1838</span>   * Start up replication source and sink handlers.<a name="line.1838"></a>
+<span class="sourceLineNo">1839</span>   * @throws IOException<a name="line.1839"></a>
+<span class="sourceLineNo">1840</span>   */<a name="line.1840"></a>
+<span class="sourceLineNo">1841</span>  private void startReplicationService() throws IOException {<a name="line.1841"></a>
+<span class="sourceLineNo">1842</span>    if (this.replicationSourceHandler == this.replicationSinkHandler &amp;&amp;<a name="line.1842"></a>
+<span class="sourceLineNo">1843</span>        this.replicationSourceHandler != null) {<a name="line.1843"></a>
+<span class="sourceLineNo">1844</span>      this.replicationSourceHandler.startReplicationService();<a name="line.1844"></a>
+<span class="sourceLineNo">1845</span>    } else {<a name="line.1845"></a>
+<span class="sourceLineNo">1846</span>      if (this.replicationSourceHandler != null) {<a name="line.1846"></a>
+<span class="sourceLineNo">1847</span>        this.replicationSourceHandler.startReplicationService();<a name="line.1847"></a>
+<span class="sourceLineNo">1848</span>      }<a name="line.1848"></a>
+<span class="sourceLineNo">1849</span>      if (this.replicationSinkHandler != null) {<a name="line.1849"></a>
+<span class="sourceLineNo">1850</span>        this.replicationSinkHandler.startReplicationService();<a name="line.1850"></a>
+<span class="sourceLineNo">1851</span>      }<a name="line.1851"></a>
+<span class="sourceLineNo">1852</span>    }<a name="line.1852"></a>
+<span class="sourceLineNo">1853</span>  }<a name="line.1853"></a>
 <span class="sourceLineNo">1854</span><a name="line.1854"></a>
-<span class="sourceLineNo">1855</span>  public MetricsRegionServer getRegionServerMetrics() {<a name="line.1855"></a>
-<span class="sourceLineNo">1856</span>    return this.metricsRegionServer;<a name="line.1856"></a>
-<span class="sourceLineNo">1857</span>  }<a name="line.1857"></a>
-<span class="sourceLineNo">1858</span><a name="line.1858"></a>
-<span class="sourceLineNo">1859</span>  /**<a name="line.1859"></a>
-<span class="sourceLineNo">1860</span>   * @return Master address tracker instance.<a name="line.1860"></a>
-<span class="sourceLineNo">1861</span>   */<a name="line.1861"></a>
-<span class="sourceLineNo">1862</span>  public MasterAddressTracker getMasterAddressTracker() {<a name="line.1862"></a>
-<span class="sourceLineNo">1863</span>    return this.masterAddressTracker;<a name="line.1863"></a>
-<span class="sourceLineNo">1864</span>  }<a name="line.1864"></a>
-<span class="sourceLineNo">1865</span><a name="line.1865"></a>
-<span class="sourceLineNo">1866</span>  /*<a name="line.1866"></a>
-<span class="sourceLineNo">1867</span>   * Start maintenance Threads, Server, Worker and lease checker threads.<a name="line.1867"></a>
-<span class="sourceLineNo">1868</span>   * Start all threads we need to run. This is called after we've successfully<a name="line.1868"></a>
-<span class="sourceLineNo">1869</span>   * registered with the Master.<a name="line.1869"></a>
-<span class="sourceLineNo">1870</span>   * Install an UncaughtExceptionHandler that calls abort of RegionServer if we<a name="line.1870"></a>
-<span class="sourceLineNo">1871</span>   * get an unhandled exception. We cannot set the handler on all threads.<a name="line.1871"></a>
-<span class="sourceLineNo">1872</span>   * Server's internal Listener thread is off limits. For Server, if an OOME, it<a name="line.1872"></a>
-<span class="sourceLineNo">1873</span>   * waits a while then retries. Meantime, a flush or a compaction that tries to<a name="line.1873"></a>
-<span class="sourceLineNo">1874</span>   * run should trigger same critical condition and the shutdown will run. On<a name="line.1874"></a>
-<span class="sourceLineNo">1875</span>   * its way out, this server will shut down Server. Leases are sort of<a name="line.1875"></a>
-<span class="sourceLineNo">1876</span>   * inbetween. It has an internal thread that while it inherits from Chore, it<a name="line.1876"></a>
-<span class="sourceLineNo">1877</span>   * keeps its own internal stop mechanism so needs to be stopped by this<a name="line.1877"></a>
-<span class="sourceLineNo">1878</span>   * hosting server. Worker logs the exception and exits.<a name="line.1878"></a>
-<span class="sourceLineNo">1879</span>   */<a name="line.1879"></a>
-<span class="sourceLineNo">1880</span>  private void startServices() throws IOException {<a name="line.1880"></a>
-<span class="sourceLineNo">1881</span>    if (!isStopped() &amp;&amp; !isAborted()) {<a name="line.1881"></a>
-<span class="sourceLineNo">1882</span>      initializeThreads();<a name="line.1882"></a>
-<span class="sourceLineNo">1883</span>    }<a name="line.1883"></a>
-<span class="sourceLineNo">1884</span>    this.secureBulkLoadManager = new SecureBulkLoadManager(this.conf, clusterConnection);<a name="line.1884"></a>
-<span class="sourceLineNo">1885</span>    this.secureBulkLoadManager.start();<a name="line.1885"></a>
-<span class="sourceLineNo">1886</span><a name="line.1886"></a>
-<span class="sourceLineNo">1887</span>    // Health checker thread.<a name="line.1887"></a>
-<span class="sourceLineNo">1888</span>    if (isHealthCheckerConfigured()) {<a name="line.1888"></a>
-<span class="sourceLineNo">1889</span>      int sleepTime = this.conf.getInt(HConstants.HEALTH_CHORE_WAKE_FREQ,<a name="line.1889"></a>
-<span class="sourceLineNo">1890</span>      HConstants.DEFAULT_THREAD_WAKE_FREQUENCY);<a name="line.1890"></a>
-<span class="sourceLineNo">1891</span>      healthCheckChore = new HealthCheckChore(sleepTime, this, getConfiguration());<a name="line.1891"></a>
-<span class="sourceLineNo">1892</span>    }<a name="line.1892"></a>
-<span class="sourceLineNo">1893</span><a name="line.1893"></a>
-<span class="sourceLineNo">1894</span>    this.walRoller = new LogRoller(this, this);<a name="line.1894"></a>
-<span class="sourceLineNo">1895</span>    this.flushThroughputController = FlushThroughputControllerFactory.create(this, conf);<a name="line.1895"></a>
-<span class="sourceLineNo">1896</span><a name="line.1896"></a>
-<span class="sourceLineNo">1897</span>    // Create the CompactedFileDischarger chore executorService. This chore helps to<a name="line.1897"></a>
-<span class="sourceLineNo">1898</span>    // remove the compacted files<a name="line.1898"></a>
-<span class="sourceLineNo">1899</span>    // that will no longer be used in reads.<a name="line.1899"></a>
-<span class="sourceLineNo">1900</span>    // Default is 2 mins. The default value for TTLCleaner is 5 mins so we set this to<a name="line.1900"></a>
-<span class="sourceLineNo">1901</span>    // 2 mins so that compacted files can be archived before the TTLCleaner runs<a name="line.1901"></a>
-<span class="sourceLineNo">1902</span>    int cleanerInterval =<a name="line.1902"></a>
-<span class="sourceLineNo">1903</span>    conf.getInt("hbase.hfile.compaction.discharger.interval", 2 * 60 * 1000);<a name="line.1903"></a>
-<span class="sourceLineNo">1904</span>    this.compactedFileDischarger =<a name="line.1904"></a>
-<span class="sourceLineNo">1905</span>    new CompactedHFilesDischarger(cleanerInterval, this, this);<a name="line.1905"></a>
-<span class="sourceLineNo">1906</span>    choreService.scheduleChore(compactedFileDischarger);<a name="line.1906"></a>
-<span class="sourceLineNo">1907</span><a name="line.1907"></a>
-<span class="sourceLineNo">1908</span>    // Start executor services<a name="line.1908"></a>
-<span class="sourceLineNo">1909</span>    this.executorService.startExecutorService(ExecutorType.RS_OPEN_REGION,<a name="line.1909"></a>
-<span class="sourceLineNo">1910</span>        conf.getInt("hbase.regionserver.executor.openregion.threads", 3));<a name="line.1910"></a>
-<span class="sourceLineNo">1911</span>    this.executorService.startExecutorService(ExecutorType.RS_OPEN_META,<a name="line.1911"></a>
-<span class="sourceLineNo">1912</span>        conf.getInt("hbase.regionserver.executor.openmeta.threads", 1));<a name="line.1912"></a>
-<span class="sourceLineNo">1913</span>    this.executorService.startExecutorService(ExecutorType.RS_OPEN_PRIORITY_REGION,<a name="line.1913"></a>
-<span class="sourceLineNo">1914</span>        conf.getInt("hbase.regionserver.executor.openpriorityregion.threads", 3));<a name="line.1914"></a>
-<span class="sourceLineNo">1915</span>    this.executorService.startExecutorService(ExecutorType.RS_CLOSE_REGION,<a name="line.1915"></a>
-<span class="sourceLineNo">1916</span>        conf.getInt("hbase.regionserver.executor.closeregion.threads", 3));<a name="line.1916"></a>
-<span class="sourceLineNo">1917</span>    this.executorService.startExecutorService(ExecutorType.RS_CLOSE_META,<a name="line.1917"></a>
-<span class="sourceLineNo">1918</span>        conf.getInt("hbase.regionserver.executor.closemeta.threads", 1));<a name="line.1918"></a>
-<span class="sourceLineNo">1919</span>    if (conf.getBoolean(StoreScanner.STORESCANNER_PARALLEL_SEEK_ENABLE, false)) {<a name="line.1919"></a>
-<span class="sourceLineNo">1920</span>      this.executorService.startExecutorService(ExecutorType.RS_PARALLEL_SEEK,<a name="line.1920"></a>
-<span class="sourceLineNo">1921</span>          conf.getInt("hbase.storescanner.parallel.seek.threads", 10));<a name="line.1921"></a>
-<span class="sourceLineNo">1922</span>    }<a name="line.1922"></a>
-<span class="sourceLineNo">1923</span>    this.executorService.startExecutorService(ExecutorType.RS_LOG_REPLAY_OPS, conf.getInt(<a name="line.1923"></a>
-<span class="sourceLineNo">1924</span>    "hbase.regionserver.wal.max.splitters", SplitLogWorkerCoordination.DEFAULT_MAX_SPLITTERS));<a name="line.1924"></a>
-<span class="sourceLineNo">1925</span>    // Start the threads for compacted files discharger<a name="line.1925"></a>
-<span class="sourceLineNo">1926</span>    this.executorService.startExecutorService(ExecutorType.RS_COMPACTED_FILES_DISCHARGER,<a name="line.1926"></a>
-<span class="sourceLineNo">1927</span>        conf.getInt(CompactionConfiguration.HBASE_HFILE_COMPACTION_DISCHARGER_THREAD_COUNT, 10));<a name="line.1927"></a>
-<span class="sourceLineNo">1928</span>    if (ServerRegionReplicaUtil.isRegionReplicaWaitForPrimaryFlushEnabled(conf)) {<a name="line.1928"></a>
-<span class="sourceLineNo">1929</span>      this.executorService.startExecutorService(ExecutorType.RS_REGION_REPLICA_FLUSH_OPS,<a name="line.1929"></a>
-<span class="sourceLineNo">1930</span>          conf.getInt("hbase.regionserver.region.replica.flusher.threads",<a name="line.1930"></a>
-<span class="sourceLineNo">1931</span>              conf.getInt("hbase.regionserver.executor.openregion.threads", 3)));<a name="line.1931"></a>
-<span class="sourceLineNo">1932</span>    }<a name="line.1932"></a>
-<span class="sourceLineNo">1933</span><a name="line.1933"></a>
-<span class="sourceLineNo">1934</span>    Threads.setDaemonThreadRunning(this.walRoller.getThread(), getName() + ".logRoller",<a name="line.1934"></a>
-<span class="sourceLineNo">1935</span>    uncaughtExceptionHandler);<a name="line.1935"></a>
-<span class="sourceLineNo">1936</span>    this.cacheFlusher.start(uncaughtExceptionHandler);<a name="line.1936"></a>
-<span class="sourceLineNo">1937</span><a name="line.1937"></a>
-<span class="sourceLineNo">1938</span>    if (this.compactionChecker != null) choreService.scheduleChore(compactionChecker);<a name="line.1938"></a>
-<span class="sourceLineNo">1939</span>    if (this.periodicFlusher != null) choreService.scheduleChore(periodicFlusher);<a name="line.1939"></a>
-<span class="sourceLineNo">1940</span>    if (this.healthCheckChore != null) choreService.scheduleChore(healthCheckChore);<a name="line.1940"></a>
-<span class="sourceLineNo">1941</span>    if (this.nonceManagerChore != null) choreService.scheduleChore(nonceManagerChore);<a name="line.1941"></a>
-<span class="sourceLineNo">1942</span>    if (this.storefileRefresher != null) choreService.scheduleChore(storefileRefresher);<a name="line.1942"></a>
-<span class="sourceLineNo">1943</span>    if (this.movedRegionsCleaner != null) choreService.scheduleChore(movedRegionsCleaner);<a name="line.1943"></a>
-<span class="sourceLineNo">1944</span>    if (this.fsUtilizationChore != null) choreService.scheduleChore(fsUtilizationChore);<a name="line.1944"></a>
-<span class="sourceLineNo">1945</span><a name="line.1945"></a>
-<span class="sourceLineNo">1946</span>    // Leases is not a Thread. Internally it runs a daemon thread. If it gets<a name="line.1946"></a>
-<span class="sourceLineNo">1947</span>    // an unhandled exception, it will just exit.<a name="line.1947"></a>
-<span class="sourceLineNo">1948</span>    Threads.setDaemonThreadRunning(this.leases.getThread(), getName() + ".leaseChecker",<a name="line.1948"></a>
-<span class="sourceLineNo">1949</span>    uncaughtExceptionHandler);<a name="line.1949"></a>
-<span class="sourceLineNo">1950</span><a name="line.1950"></a>
-<span class="sourceLineNo">1951</span>    // Create the log splitting worker and start it<a name="line.1951"></a>
-<span class="sourceLineNo">1952</span>    // set a smaller retries to fast fail otherwise splitlogworker could be blocked for<a name="line.1952"></a>
-<span class="sourceLineNo">1953</span>    // quite a while inside Connection layer. The worker won't be available for other<a name="line.1953"></a>
-<span class="sourceLineNo">1954</span>    // tasks even after current task is preempted after a split task times out.<a name="line.1954"></a>
-<span class="sourceLineNo">1955</span>    Configuration sinkConf = HBaseConfiguration.create(conf);<a name="line.1955"></a>
-<span class="sourceLineNo">1956</span>    sinkConf.setInt(HConstants.HBASE_CLIENT_RETRIES_NUMBER,<a name="line.1956"></a>
-<span class="sourceLineNo">1957</span>        conf.getInt("hbase.log.replay.retries.number", 8)); // 8 retries take about 23 seconds<a name="line.1957"></a>
-<span class="sourceLineNo">1958</span>    sinkConf.setInt(HConstants.HBASE_RPC_TIMEOUT_KEY,<a name="line.1958"></a>
-<span class="sourceLineNo">1959</span>        conf.getInt("hbase.log.replay.rpc.timeout", 30000)); // default 30 seconds<a name="line.1959"></a>
-<span class="sourceLineNo">1960</span>    sinkConf.setInt(HConstants.HBASE_CLIENT_SERVERSIDE_RETRIES_MULTIPLIER, 1);<a name="line.1960"></a>
-<span class="sourceLineNo">1961</span>    if (this.csm != null) {<a name="line.1961"></a>
-<span class="sourceLineNo">1962</span>      // SplitLogWorker needs csm. If none, don't start this.<a name="line.1962"></a>
-<span class="sourceLineNo">1963</span>      this.splitLogWorker = new SplitLogWorker(this, sinkConf, this,<a name="line.1963"></a>
-<span class="sourceLineNo">1964</span>          this, walFactory);<a name="line.1964"></a>
-<span class="sourceLineNo">1965</span>      splitLogWorker.start();<a name="line.1965"></a>
-<span class="sourceLineNo">1966</span>    } else {<a name="line.1966"></a>
-<span class="sourceLineNo">1967</span>      LOG.warn("SplitLogWorker Service NOT started; CoordinatedStateManager is null");<a name="line.1967"></a>
-<span class="sourceLineNo">1968</span>    }<a name="line.1968"></a>
-<span class="sourceLineNo">1969</span><a name="line.1969"></a>
-<span class="sourceLineNo">1970</span>    // Memstore services.<a name="line.1970"></a>
-<span class="sourceLineNo">1971</span>    startHeapMemoryManager();<a name="line.1971"></a>
-<span class="sourceLineNo">1972</span>    // Call it after starting HeapMemoryManager.<a name="line.1972"></a>
-<span class="sourceLineNo">1973</span>    initializeMemStoreChunkCreator();<a name="line.1973"></a>
-<span class="sourceLineNo">1974</span>  }<a name="line.1974"></a>
-<span class="sourceLineNo">1975</span><a name="line.1975"></a>
-<span class="sourceLineNo">1976</span>  private void initializeThreads() throws IOException {<a name="line.1976"></a>
-<span class="sourceLineNo">1977</span>    // Cache flushing thread.<a name="line.1977"></a>
-<span class="sourceLineNo">1978</span>    this.cacheFlusher = new MemStoreFlusher(conf, this);<a name="line.1978"></a>
-<span class="sourceLineNo">1979</span><a name="line.1979"></a>
-<span class="sourceLineNo">1980</span>    // Compaction thread<a name="line.1980"></a>
-<span class="sourceLineNo">1981</span>    this.compactSplitThread = new CompactSplit(this);<a name="line.1981"></a>
-<span class="sourceLineNo">1982</span><a name="line.1982"></a>
-<span class="sourceLineNo">1983</span>    // Background thread to check for compactions; needed if region has not gotten updates<a name="line.1983"></a>
-<span class="sourceLineNo">1984</span>    // in a while. It will take care of not checking too frequently on store-by-store basis.<a name="line.1984"></a>
-<span class="sourceLineNo">1985</span>    this.compactionChecker = new CompactionChecker(this, this.threadWakeFrequency, this);<a name="line.1985"></a>
-<span class="sourceLineNo">1986</span>    this.periodicFlusher = new PeriodicMemStoreFlusher(this.threadWakeFrequency, this);<a name="line.1986"></a>
-<span class="sourceLineNo">1987</span>    this.leases = new Leases(this.threadWakeFrequency);<a name="line.1987"></a>
-<span class="sourceLineNo">1988</span><a name="line.1988"></a>
-<span class="sourceLineNo">1989</span>    // Create the thread to clean the moved regions list<a name="line.1989"></a>
-<span class="sourceLineNo">1990</span>    movedRegionsCleaner = MovedRegionsCleaner.create(this);<a name="line.1990"></a>
-<span class="sourceLineNo">1991</span><a name="line.1991"></a>
-<span class="sourceLineNo">1992</span>    if (this.nonceManager != null) {<a name="line.1992"></a>
-<span class="sourceLineNo">1993</span>      // Create the scheduled chore that cleans up nonces.<a name="line.1993"></a>
-<span class="sourceLineNo">1994</span>      nonceManagerChore = this.nonceManager.createCleanupScheduledChore(this);<a name="line.1994"></a>
-<span class="sourceLineNo">1995</span>    }<a name="line.1995"></a>
-<span class="sourceLineNo">1996</span><a name="line.1996"></a>
-<span class="sourceLineNo">1997</span>    // Setup the Quota Manager<a name="line.1997"></a>
-<span class="sourceLineNo">1998</span>    rsQuotaManager = new RegionServerRpcQuotaManager(this);<a name="line.1998"></a>
-<span class="sourceLineNo">1999</span>    rsSpaceQuotaManager = new RegionServerSpaceQuotaManager(this);<a name="line.1999"></a>
-<span class="sourceLineNo">2000</span><a name="line.2000"></a>
-<span class="sourceLineNo">2001</span>    if (QuotaUtil.isQuotaEnabled(conf)) {<a name="line.2001"></a>
-<span class="sourceLineNo">2002</span>      this.fsUtilizationChore = new FileSystemUtilizationChore(this);<a name="line.2002"></a>
-<span class="sourceLineNo">2003</span>    }<a name="line.2003"></a>
-<span class="sourceLineNo">2004</span><a name="line.2004"></a>
+<span class="sourceLineNo">1855</span><a name="line.1855"></a>
+<span class="sourceLineNo">1856</span>  public MetricsRegionServer getRegionServerMetrics() {<a name="line.1856"></a>
+<span class="sourceLineNo">1857</

<TRUNCATED>

[28/32] hbase-site git commit: Published site at .

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/29b27596/devapidocs/org/apache/hadoop/hbase/backup/package-tree.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/backup/package-tree.html b/devapidocs/org/apache/hadoop/hbase/backup/package-tree.html
index e918bd9..7d49754 100644
--- a/devapidocs/org/apache/hadoop/hbase/backup/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/backup/package-tree.html
@@ -167,10 +167,10 @@
 <ul>
 <li type="circle">java.lang.<a href="http://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="http://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="http://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/BackupRestoreConstants.BackupCommand.html" title="enum in org.apache.hadoop.hbase.backup"><span class="typeNameLink">BackupRestoreConstants.BackupCommand</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.backup.<a href="../../../../../org/apache/hadoop/hbase/backup/BackupInfo.BackupPhase.html" title="enum in org.apache.hadoop.hbase.backup"><span class="typeNameLink">BackupInfo.BackupPhase</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.backup.<a href="../../../../../org/apache/hadoop/hbase/backup/BackupInfo.BackupState.html" title="enum in org.apache.hadoop.hbase.backup"><span class="typeNameLink">BackupInfo.BackupState</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.backup.<a href="../../../../../org/apache/hadoop/hbase/backup/BackupType.html" title="enum in org.apache.hadoop.hbase.backup"><span class="typeNameLink">BackupType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.backup.<a href="../../../../../org/apache/hadoop/hbase/backup/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/BackupRestoreConstants.BackupCommand.html" title="enum in org.apache.hadoop.hbase.backup"><span class="typeNameLink">BackupRestoreConstants.BackupCommand</span></a></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/29b27596/devapidocs/org/apache/hadoop/hbase/class-use/TableName.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/class-use/TableName.html b/devapidocs/org/apache/hadoop/hbase/class-use/TableName.html
index 6d59a2e..d21d294 100644
--- a/devapidocs/org/apache/hadoop/hbase/class-use/TableName.html
+++ b/devapidocs/org/apache/hadoop/hbase/class-use/TableName.html
@@ -8822,6 +8822,10 @@ service.</div>
 </tr>
 <tbody>
 <tr class="altColor">
+<td class="colFirst"><code>private <a href="http://docs.oracle.com/javase/8/docs/api/java/util/HashMap.html?is-external=true" title="class or interface in java.util">HashMap</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>,<a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableLatenciesImpl.TableHistograms.html" title="class in org.apache.hadoop.hbase.regionserver">MetricsTableLatenciesImpl.TableHistograms</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">MetricsTableLatenciesImpl.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableLatenciesImpl.html#histogramsByTable">histogramsByTable</a></span></code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
 <td class="colFirst"><code>private <a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ConcurrentHashMap.html?is-external=true" title="class or interface in java.util.concurrent">ConcurrentHashMap</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>,<a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregateImpl.MetricsTableValues.html" title="class in org.apache.hadoop.hbase.regionserver">MetricsTableWrapperAggregateImpl.MetricsTableValues</a>&gt;</code></td>
 <td class="colLast"><span class="typeNameLabel">MetricsTableWrapperAggregateImpl.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregateImpl.html#metricsTableMap">metricsTableMap</a></span></code>&nbsp;</td>
 </tr>
@@ -8884,6 +8888,113 @@ service.</div>
 <div class="block">Gets the online regions of the specified table.</div>
 </td>
 </tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="http://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"><span class="typeNameLabel">MetricsTableLatenciesImpl.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableLatenciesImpl.html#qualifyMetricsName-org.apache.hadoop.hbase.TableName-java.lang.String-">qualifyMetricsName</a></span>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName,
+                  <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;metric)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="typeNameLabel">RegionServerTableMetrics.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionServerTableMetrics.html#updateAppend-org.apache.hadoop.hbase.TableName-long-">updateAppend</a></span>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;table,
+            long&nbsp;time)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="typeNameLabel">MetricsRegionServer.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html#updateAppend-org.apache.hadoop.hbase.TableName-long-">updateAppend</a></span>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tn,
+            long&nbsp;t)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="typeNameLabel">RegionServerTableMetrics.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionServerTableMetrics.html#updateDelete-org.apache.hadoop.hbase.TableName-long-">updateDelete</a></span>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;table,
+            long&nbsp;time)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="typeNameLabel">MetricsRegionServer.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html#updateDelete-org.apache.hadoop.hbase.TableName-long-">updateDelete</a></span>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tn,
+            long&nbsp;t)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="typeNameLabel">RegionServerTableMetrics.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionServerTableMetrics.html#updateDeleteBatch-org.apache.hadoop.hbase.TableName-long-">updateDeleteBatch</a></span>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;table,
+                 long&nbsp;time)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="typeNameLabel">MetricsRegionServer.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html#updateDeleteBatch-org.apache.hadoop.hbase.TableName-long-">updateDeleteBatch</a></span>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tn,
+                 long&nbsp;t)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="typeNameLabel">RegionServerTableMetrics.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionServerTableMetrics.html#updateGet-org.apache.hadoop.hbase.TableName-long-">updateGet</a></span>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;table,
+         long&nbsp;time)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="typeNameLabel">MetricsRegionServer.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html#updateGet-org.apache.hadoop.hbase.TableName-long-">updateGet</a></span>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tn,
+         long&nbsp;t)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="typeNameLabel">RegionServerTableMetrics.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionServerTableMetrics.html#updateIncrement-org.apache.hadoop.hbase.TableName-long-">updateIncrement</a></span>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;table,
+               long&nbsp;time)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="typeNameLabel">MetricsRegionServer.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html#updateIncrement-org.apache.hadoop.hbase.TableName-long-">updateIncrement</a></span>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tn,
+               long&nbsp;t)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="typeNameLabel">RegionServerTableMetrics.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionServerTableMetrics.html#updatePut-org.apache.hadoop.hbase.TableName-long-">updatePut</a></span>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;table,
+         long&nbsp;time)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="typeNameLabel">MetricsRegionServer.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html#updatePut-org.apache.hadoop.hbase.TableName-long-">updatePut</a></span>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tn,
+         long&nbsp;t)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="typeNameLabel">RegionServerTableMetrics.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionServerTableMetrics.html#updatePutBatch-org.apache.hadoop.hbase.TableName-long-">updatePutBatch</a></span>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;table,
+              long&nbsp;time)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="typeNameLabel">MetricsRegionServer.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html#updatePutBatch-org.apache.hadoop.hbase.TableName-long-">updatePutBatch</a></span>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tn,
+              long&nbsp;t)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="typeNameLabel">RegionServerTableMetrics.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionServerTableMetrics.html#updateScanSize-org.apache.hadoop.hbase.TableName-long-">updateScanSize</a></span>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;table,
+              long&nbsp;size)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="typeNameLabel">MetricsRegionServer.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html#updateScanSize-org.apache.hadoop.hbase.TableName-long-">updateScanSize</a></span>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tn,
+              long&nbsp;scanSize)</code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="typeNameLabel">RegionServerTableMetrics.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionServerTableMetrics.html#updateScanTime-org.apache.hadoop.hbase.TableName-long-">updateScanTime</a></span>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;table,
+              long&nbsp;time)</code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><span class="typeNameLabel">MetricsRegionServer.</span><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html#updateScanTime-org.apache.hadoop.hbase.TableName-long-">updateScanTime</a></span>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tn,
+              long&nbsp;t)</code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing constructors, and an explanation">
+<caption><span>Constructors in <a href="../../../../../org/apache/hadoop/hbase/regionserver/package-summary.html">org.apache.hadoop.hbase.regionserver</a> with parameters of type <a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableLatenciesImpl.TableHistograms.html#TableHistograms-org.apache.hadoop.metrics2.lib.DynamicMetricsRegistry-org.apache.hadoop.hbase.TableName-">TableHistograms</a></span>(<a href="../../../../../org/apache/hadoop/metrics2/lib/DynamicMetricsRegistry.html" title="class in org.apache.hadoop.metrics2.lib">DynamicMetricsRegistry</a>&nbsp;registry,
+               <a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tn)</code>&nbsp;</td>
+</tr>
 </tbody>
 </table>
 </li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/29b27596/devapidocs/org/apache/hadoop/hbase/client/package-tree.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/client/package-tree.html b/devapidocs/org/apache/hadoop/hbase/client/package-tree.html
index 25ec5c3..efe6f5a 100644
--- a/devapidocs/org/apache/hadoop/hbase/client/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/client/package-tree.html
@@ -542,24 +542,24 @@
 <ul>
 <li type="circle">java.lang.<a href="http://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="http://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="http://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/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/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/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/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/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/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/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/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/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/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/TableState.State.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">TableState.State</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/Consistency.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">Consistency</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/AsyncScanSingleRegionRpcRetryingCaller.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/Durability.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">Durability</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/AsyncScanSingleRegionRpcRetryingCaller.ScanResumerState.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">AsyncScanSingleRegionRpcRetryingCaller.ScanResumerState</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/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/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/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/SnapshotType.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">SnapshotType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/RegionLocateType.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">RegionLocateType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/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/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/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/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/Consistency.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">Consistency</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/AsyncScanSingleRegionRpcRetryingCaller.ScanResumerState.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">AsyncScanSingleRegionRpcRetryingCaller.ScanResumerState</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.client.<a href="../../../../../org/apache/hadoop/hbase/client/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/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/TableState.State.html" title="enum in org.apache.hadoop.hbase.client"><span class="typeNameLink">TableState.State</span></a></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/29b27596/devapidocs/org/apache/hadoop/hbase/executor/package-tree.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/executor/package-tree.html b/devapidocs/org/apache/hadoop/hbase/executor/package-tree.html
index bbf68db..5bdab95 100644
--- a/devapidocs/org/apache/hadoop/hbase/executor/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/executor/package-tree.html
@@ -104,8 +104,8 @@
 <ul>
 <li type="circle">java.lang.<a href="http://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="http://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="http://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
 <ul>
-<li type="circle">org.apache.hadoop.hbase.executor.<a href="../../../../../org/apache/hadoop/hbase/executor/EventType.html" title="enum in org.apache.hadoop.hbase.executor"><span class="typeNameLink">EventType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.executor.<a href="../../../../../org/apache/hadoop/hbase/executor/ExecutorType.html" title="enum in org.apache.hadoop.hbase.executor"><span class="typeNameLink">ExecutorType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.executor.<a href="../../../../../org/apache/hadoop/hbase/executor/EventType.html" title="enum in org.apache.hadoop.hbase.executor"><span class="typeNameLink">EventType</span></a></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/29b27596/devapidocs/org/apache/hadoop/hbase/filter/package-tree.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/filter/package-tree.html b/devapidocs/org/apache/hadoop/hbase/filter/package-tree.html
index 9acb3f2..2eb2f74 100644
--- a/devapidocs/org/apache/hadoop/hbase/filter/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/filter/package-tree.html
@@ -182,14 +182,14 @@
 <ul>
 <li type="circle">java.lang.<a href="http://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="http://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="http://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
 <ul>
+<li type="circle">org.apache.hadoop.hbase.filter.<a href="../../../../../org/apache/hadoop/hbase/filter/FuzzyRowFilter.SatisfiesCode.html" title="enum in org.apache.hadoop.hbase.filter"><span class="typeNameLink">FuzzyRowFilter.SatisfiesCode</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.filter.<a href="../../../../../org/apache/hadoop/hbase/filter/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/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/RegexStringComparator.EngineType.html" title="enum in org.apache.hadoop.hbase.filter"><span class="typeNameLink">RegexStringComparator.EngineType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.filter.<a href="../../../../../org/apache/hadoop/hbase/filter/Filter.ReturnCode.html" title="enum in org.apache.hadoop.hbase.filter"><span class="typeNameLink">Filter.ReturnCode</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.filter.<a href="../../../../../org/apache/hadoop/hbase/filter/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/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/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/CompareFilter.CompareOp.html" title="enum in org.apache.hadoop.hbase.filter"><span class="typeNameLink">CompareFilter.CompareOp</span></a></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/29b27596/devapidocs/org/apache/hadoop/hbase/http/AdminAuthorizedServlet.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/http/AdminAuthorizedServlet.html b/devapidocs/org/apache/hadoop/hbase/http/AdminAuthorizedServlet.html
index dd6d400..53ae7f3 100644
--- a/devapidocs/org/apache/hadoop/hbase/http/AdminAuthorizedServlet.html
+++ b/devapidocs/org/apache/hadoop/hbase/http/AdminAuthorizedServlet.html
@@ -124,7 +124,7 @@ var activeTableTab = "activeTableTab";
 <li class="blockList">
 <dl>
 <dt>All Implemented Interfaces:</dt>
-<dd><a href="http://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>, javax.servlet.Servlet, javax.servlet.ServletConfig, org.eclipse.jetty.server.ResourceService.WelcomeFactory, org.eclipse.jetty.util.resource.ResourceFactory</dd>
+<dd><a href="http://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>, javax.servlet.Servlet, javax.servlet.ServletConfig, org.eclipse.jetty.util.resource.ResourceFactory</dd>
 </dl>
 <hr>
 <br>
@@ -160,13 +160,6 @@ extends org.eclipse.jetty.servlet.DefaultServlet</pre>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/http/AdminAuthorizedServlet.html#serialVersionUID">serialVersionUID</a></span></code>&nbsp;</td>
 </tr>
 </table>
-<ul class="blockList">
-<li class="blockList"><a name="fields.inherited.from.class.org.eclipse.jetty.servlet.DefaultServlet">
-<!--   -->
-</a>
-<h3>Fields inherited from class&nbsp;org.eclipse.jetty.servlet.DefaultServlet</h3>
-<code>CONTEXT_INIT</code></li>
-</ul>
 </li>
 </ul>
 <!-- ======== CONSTRUCTOR SUMMARY ======== -->
@@ -209,7 +202,7 @@ extends org.eclipse.jetty.servlet.DefaultServlet</pre>
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.eclipse.jetty.servlet.DefaultServlet</h3>
-<code>destroy, doOptions, doPost, doTrace, getInitParameter, getResource, getWelcomeFile, init, initContextHandler</code></li>
+<code>destroy, doOptions, doPost, doTrace, getInitParameter, getResource, init, initContextHandler, isGzippedContent, passConditionalHeaders, putHeaders, sendData, sendDirectory, sendWelcome</code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.javax.servlet.http.HttpServlet">

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/29b27596/devapidocs/org/apache/hadoop/hbase/http/package-tree.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/http/package-tree.html b/devapidocs/org/apache/hadoop/hbase/http/package-tree.html
index ae6416b..8257018 100644
--- a/devapidocs/org/apache/hadoop/hbase/http/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/http/package-tree.html
@@ -92,7 +92,7 @@
 <ul>
 <li type="circle">javax.servlet.http.HttpServlet (implements java.io.<a href="http://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.eclipse.jetty.servlet.DefaultServlet (implements org.eclipse.jetty.util.resource.ResourceFactory, org.eclipse.jetty.server.ResourceService.WelcomeFactory)
+<li type="circle">org.eclipse.jetty.servlet.DefaultServlet (implements org.eclipse.jetty.util.resource.ResourceFactory)
 <ul>
 <li type="circle">org.apache.hadoop.hbase.http.<a href="../../../../../org/apache/hadoop/hbase/http/AdminAuthorizedServlet.html" title="class in org.apache.hadoop.hbase.http"><span class="typeNameLink">AdminAuthorizedServlet</span></a></li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/29b27596/devapidocs/org/apache/hadoop/hbase/io/hfile/package-tree.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/io/hfile/package-tree.html b/devapidocs/org/apache/hadoop/hbase/io/hfile/package-tree.html
index a776584..79b4a97 100644
--- a/devapidocs/org/apache/hadoop/hbase/io/hfile/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/io/hfile/package-tree.html
@@ -273,12 +273,12 @@
 <ul>
 <li type="circle">java.lang.<a href="http://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="http://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="http://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.html" title="enum in org.apache.hadoop.hbase.io.hfile"><span class="typeNameLink">BlockType</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.io.hfile.<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/HFileBlock.Writer.State.html" title="enum in org.apache.hadoop.hbase.io.hfile"><span class="typeNameLink">HFileBlock.Writer.State</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.io.hfile.<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/CacheConfig.ExternalBlockCaches.html" title="enum in org.apache.hadoop.hbase.io.hfile"><span class="typeNameLink">CacheConfig.ExternalBlockCaches</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.io.hfile.<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockType.BlockCategory.html" title="enum in org.apache.hadoop.hbase.io.hfile"><span class="typeNameLink">BlockType.BlockCategory</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.io.hfile.<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/Cacheable.MemoryType.html" title="enum in org.apache.hadoop.hbase.io.hfile"><span class="typeNameLink">Cacheable.MemoryType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.io.hfile.<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/BlockPriority.html" title="enum in org.apache.hadoop.hbase.io.hfile"><span class="typeNameLink">BlockPriority</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.io.hfile.<a href="../../../../../../org/apache/hadoop/hbase/io/hfile/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/CacheConfig.ExternalBlockCaches.html" title="enum in org.apache.hadoop.hbase.io.hfile"><span class="typeNameLink">CacheConfig.ExternalBlockCaches</span></a></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/29b27596/devapidocs/org/apache/hadoop/hbase/ipc/package-tree.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/ipc/package-tree.html b/devapidocs/org/apache/hadoop/hbase/ipc/package-tree.html
index 9e5e319..b6878c2 100644
--- a/devapidocs/org/apache/hadoop/hbase/ipc/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/ipc/package-tree.html
@@ -348,8 +348,8 @@
 <ul>
 <li type="circle">java.lang.<a href="http://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="http://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="http://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/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/CallEvent.Type.html" title="enum in org.apache.hadoop.hbase.ipc"><span class="typeNameLink">CallEvent.Type</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.ipc.<a href="../../../../../org/apache/hadoop/hbase/ipc/BufferCallBeforeInitHandler.BufferCallAction.html" title="enum in org.apache.hadoop.hbase.ipc"><span class="typeNameLink">BufferCallBeforeInitHandler.BufferCallAction</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.ipc.<a href="../../../../../org/apache/hadoop/hbase/ipc/MetricsHBaseServerSourceFactoryImpl.SourceStorage.html" title="enum in org.apache.hadoop.hbase.ipc"><span class="typeNameLink">MetricsHBaseServerSourceFactoryImpl.SourceStorage</span></a></li>
 </ul>
 </li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/29b27596/devapidocs/org/apache/hadoop/hbase/mapreduce/package-tree.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/mapreduce/package-tree.html b/devapidocs/org/apache/hadoop/hbase/mapreduce/package-tree.html
index 6eba229..b371b2d 100644
--- a/devapidocs/org/apache/hadoop/hbase/mapreduce/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/mapreduce/package-tree.html
@@ -293,10 +293,10 @@
 <ul>
 <li type="circle">java.lang.<a href="http://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="http://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="http://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/TableSplit.Version.html" title="enum in org.apache.hadoop.hbase.mapreduce"><span class="typeNameLink">TableSplit.Version</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.mapreduce.<a href="../../../../../org/apache/hadoop/hbase/mapreduce/SyncTable.SyncMapper.Counter.html" title="enum in org.apache.hadoop.hbase.mapreduce"><span class="typeNameLink">SyncTable.SyncMapper.Counter</span></a></li>
+<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/TableSplit.Version.html" title="enum in org.apache.hadoop.hbase.mapreduce"><span class="typeNameLink">TableSplit.Version</span></a></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/29b27596/devapidocs/org/apache/hadoop/hbase/master/balancer/package-tree.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/master/balancer/package-tree.html b/devapidocs/org/apache/hadoop/hbase/master/balancer/package-tree.html
index a01cdad..2450aaa 100644
--- a/devapidocs/org/apache/hadoop/hbase/master/balancer/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/master/balancer/package-tree.html
@@ -197,8 +197,8 @@
 <ul>
 <li type="circle">java.lang.<a href="http://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="http://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="http://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.Action.Type.html" title="enum in org.apache.hadoop.hbase.master.balancer"><span class="typeNameLink">BaseLoadBalancer.Cluster.Action.Type</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.master.balancer.<a href="../../../../../../org/apache/hadoop/hbase/master/balancer/BaseLoadBalancer.Cluster.LocalityType.html" title="enum in org.apache.hadoop.hbase.master.balancer"><span class="typeNameLink">BaseLoadBalancer.Cluster.LocalityType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.master.balancer.<a href="../../../../../../org/apache/hadoop/hbase/master/balancer/BaseLoadBalancer.Cluster.Action.Type.html" title="enum in org.apache.hadoop.hbase.master.balancer"><span class="typeNameLink">BaseLoadBalancer.Cluster.Action.Type</span></a></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/29b27596/devapidocs/org/apache/hadoop/hbase/master/package-tree.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/master/package-tree.html b/devapidocs/org/apache/hadoop/hbase/master/package-tree.html
index f7a89ac..f4d158c 100644
--- a/devapidocs/org/apache/hadoop/hbase/master/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/master/package-tree.html
@@ -332,11 +332,11 @@
 <ul>
 <li type="circle">java.lang.<a href="http://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="http://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="http://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/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/MasterRpcServices.BalanceSwitchMode.html" title="enum in org.apache.hadoop.hbase.master"><span class="typeNameLink">MasterRpcServices.BalanceSwitchMode</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.master.<a href="../../../../../org/apache/hadoop/hbase/master/SplitLogManager.TerminationStatus.html" title="enum in org.apache.hadoop.hbase.master"><span class="typeNameLink">SplitLogManager.TerminationStatus</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.master.<a href="../../../../../org/apache/hadoop/hbase/master/SplitLogManager.ResubmitDirective.html" title="enum in org.apache.hadoop.hbase.master"><span class="typeNameLink">SplitLogManager.ResubmitDirective</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.master.<a href="../../../../../org/apache/hadoop/hbase/master/MetricsMasterSourceFactoryImpl.FactoryStorage.html" title="enum in org.apache.hadoop.hbase.master"><span class="typeNameLink">MetricsMasterSourceFactoryImpl.FactoryStorage</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.master.<a href="../../../../../org/apache/hadoop/hbase/master/MasterRpcServices.BalanceSwitchMode.html" title="enum in org.apache.hadoop.hbase.master"><span class="typeNameLink">MasterRpcServices.BalanceSwitchMode</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.master.<a href="../../../../../org/apache/hadoop/hbase/master/RegionState.State.html" title="enum in org.apache.hadoop.hbase.master"><span class="typeNameLink">RegionState.State</span></a></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/29b27596/devapidocs/org/apache/hadoop/hbase/metrics/BaseSource.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/metrics/BaseSource.html b/devapidocs/org/apache/hadoop/hbase/metrics/BaseSource.html
index 2feba71..5535946 100644
--- a/devapidocs/org/apache/hadoop/hbase/metrics/BaseSource.html
+++ b/devapidocs/org/apache/hadoop/hbase/metrics/BaseSource.html
@@ -105,7 +105,7 @@ var activeTableTab = "activeTableTab";
 </dl>
 <dl>
 <dt>All Known Implementing Classes:</dt>
-<dd><a href="../../../../../org/apache/hadoop/hbase/metrics/BaseSourceImpl.html" title="class in org.apache.hadoop.hbase.metrics">BaseSourceImpl</a>, <a href="../../../../../org/apache/hadoop/hbase/metrics/ExceptionTrackingSourceImpl.html" title="class in org.apache.hadoop.hbase.metrics">ExceptionTrackingSourceImpl</a>, <a href="../../../../../org/apache/hadoop/hbase/master/MetricsAssignmentManagerSourceImpl.html" title="class in org.apache.hadoop.hbase.master">MetricsAssignmentManagerSourceImpl</a>, <a href="../../../../../org/apache/hadoop/hbase/master/balancer/MetricsBalancerSourceImpl.html" title="class in org.apache.hadoop.hbase.master.balancer">MetricsBalancerSourceImpl</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/MetricsHBaseServerSourceImpl.html" title="class in org.apache.hadoop.hbase.ipc">MetricsHBaseServerSourceImpl</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsHeapMemoryManagerSourceImpl.html" title="class in org.apache.hadoop.hbase
 .regionserver">MetricsHeapMemoryManagerSourceImpl</a>, <a href="../../../../../org/apache/hadoop/hbase/io/MetricsIOSourceImpl.html" title="class in org.apache.hadoop.hbase.io">MetricsIOSourceImpl</a>, <a href="../../../../../org/apache/hadoop/hbase/master/MetricsMasterFilesystemSourceImpl.html" title="class in org.apache.hadoop.hbase.master">MetricsMasterFilesystemSourceImpl</a>, <a href="../../../../../org/apache/hadoop/hbase/master/MetricsMasterProcSourceImpl.html" title="class in org.apache.hadoop.hbase.master">MetricsMasterProcSourceImpl</a>, <a href="../../../../../org/apache/hadoop/hbase/master/MetricsMasterQuotaSourceImpl.html" title="class in org.apache.hadoop.hbase.master">MetricsMasterQuotaSourceImpl</a>, <a href="../../../../../org/apache/hadoop/hbase/master/MetricsMasterSourceImpl.html" title="class in org.apache.hadoop.hbase.master">MetricsMasterSourceImpl</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionAggregateSourceImpl.html" title="cla
 ss in org.apache.hadoop.hbase.regionserver">MetricsRegionAggregateSourceImpl</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.html" title="class in org.apache.hadoop.hbase.regionserver">MetricsRegionServerSourceImpl</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/regionserver/MetricsReplicationGlobalSourceSource.html" title="class in org.apache.hadoop.hbase.replication.regionserver">MetricsReplicationGlobalSourceSource</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/regionserver/MetricsReplicationSourceImpl.html" title="class in org.apache.hadoop.hbase.replication.regionserver">MetricsReplicationSourceImpl</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/regionserver/MetricsReplicationSourceSourceImpl.html" title="class in org.apache.hadoop.hbase.replication.regionserver">MetricsReplicationSourceSourceImpl</a>, <a href="../../../../../org/apache/hadoop/hbase/rest/MetricsRESTSourceImpl.ht
 ml" title="class in org.apache.hadoop.hbase.rest">MetricsRESTSourceImpl</a>, <a href="../../../../../org/apache/hadoop/hbase/master/MetricsSnapshotSourceImpl.html" title="class in org.apache.hadoop.hbase.master">MetricsSnapshotSourceImpl</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/regionserver/MetricsSource.html" title="class in org.apache.hadoop.hbase.replication.regionserver">MetricsSource</a>, <a href="../../../../../org/apache/hadoop/hbase/master/balancer/MetricsStochasticBalancerSourceImpl.html" title="class in org.apache.hadoop.hbase.master.balancer">MetricsStochasticBalancerSourceImpl</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableAggregateSourceImpl.html" title="class in org.apache.hadoop.hbase.regionserver">MetricsTableAggregateSourceImpl</a>, <a href="../../../../../org/apache/hadoop/hbase/thrift/MetricsThriftServerSourceImpl.html" title="class in org.apache.hadoop.hbase.thrift">MetricsThriftServerSourceImpl</a>, <a href=
 "../../../../../org/apache/hadoop/hbase/regionserver/wal/MetricsWALSourceImpl.html" title="class in org.apache.hadoop.hbase.regionserver.wal">MetricsWALSourceImpl</a>, <a href="../../../../../org/apache/hadoop/hbase/zookeeper/MetricsZooKeeperSourceImpl.html" title="class in org.apache.hadoop.hbase.zookeeper">MetricsZooKeeperSourceImpl</a></dd>
+<dd><a href="../../../../../org/apache/hadoop/hbase/metrics/BaseSourceImpl.html" title="class in org.apache.hadoop.hbase.metrics">BaseSourceImpl</a>, <a href="../../../../../org/apache/hadoop/hbase/metrics/ExceptionTrackingSourceImpl.html" title="class in org.apache.hadoop.hbase.metrics">ExceptionTrackingSourceImpl</a>, <a href="../../../../../org/apache/hadoop/hbase/master/MetricsAssignmentManagerSourceImpl.html" title="class in org.apache.hadoop.hbase.master">MetricsAssignmentManagerSourceImpl</a>, <a href="../../../../../org/apache/hadoop/hbase/master/balancer/MetricsBalancerSourceImpl.html" title="class in org.apache.hadoop.hbase.master.balancer">MetricsBalancerSourceImpl</a>, <a href="../../../../../org/apache/hadoop/hbase/ipc/MetricsHBaseServerSourceImpl.html" title="class in org.apache.hadoop.hbase.ipc">MetricsHBaseServerSourceImpl</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsHeapMemoryManagerSourceImpl.html" title="class in org.apache.hadoop.hbase
 .regionserver">MetricsHeapMemoryManagerSourceImpl</a>, <a href="../../../../../org/apache/hadoop/hbase/io/MetricsIOSourceImpl.html" title="class in org.apache.hadoop.hbase.io">MetricsIOSourceImpl</a>, <a href="../../../../../org/apache/hadoop/hbase/master/MetricsMasterFilesystemSourceImpl.html" title="class in org.apache.hadoop.hbase.master">MetricsMasterFilesystemSourceImpl</a>, <a href="../../../../../org/apache/hadoop/hbase/master/MetricsMasterProcSourceImpl.html" title="class in org.apache.hadoop.hbase.master">MetricsMasterProcSourceImpl</a>, <a href="../../../../../org/apache/hadoop/hbase/master/MetricsMasterQuotaSourceImpl.html" title="class in org.apache.hadoop.hbase.master">MetricsMasterQuotaSourceImpl</a>, <a href="../../../../../org/apache/hadoop/hbase/master/MetricsMasterSourceImpl.html" title="class in org.apache.hadoop.hbase.master">MetricsMasterSourceImpl</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionAggregateSourceImpl.html" title="cla
 ss in org.apache.hadoop.hbase.regionserver">MetricsRegionAggregateSourceImpl</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.html" title="class in org.apache.hadoop.hbase.regionserver">MetricsRegionServerSourceImpl</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/regionserver/MetricsReplicationGlobalSourceSource.html" title="class in org.apache.hadoop.hbase.replication.regionserver">MetricsReplicationGlobalSourceSource</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/regionserver/MetricsReplicationSourceImpl.html" title="class in org.apache.hadoop.hbase.replication.regionserver">MetricsReplicationSourceImpl</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/regionserver/MetricsReplicationSourceSourceImpl.html" title="class in org.apache.hadoop.hbase.replication.regionserver">MetricsReplicationSourceSourceImpl</a>, <a href="../../../../../org/apache/hadoop/hbase/rest/MetricsRESTSourceImpl.ht
 ml" title="class in org.apache.hadoop.hbase.rest">MetricsRESTSourceImpl</a>, <a href="../../../../../org/apache/hadoop/hbase/master/MetricsSnapshotSourceImpl.html" title="class in org.apache.hadoop.hbase.master">MetricsSnapshotSourceImpl</a>, <a href="../../../../../org/apache/hadoop/hbase/replication/regionserver/MetricsSource.html" title="class in org.apache.hadoop.hbase.replication.regionserver">MetricsSource</a>, <a href="../../../../../org/apache/hadoop/hbase/master/balancer/MetricsStochasticBalancerSourceImpl.html" title="class in org.apache.hadoop.hbase.master.balancer">MetricsStochasticBalancerSourceImpl</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableAggregateSourceImpl.html" title="class in org.apache.hadoop.hbase.regionserver">MetricsTableAggregateSourceImpl</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableLatenciesImpl.html" title="class in org.apache.hadoop.hbase.regionserver">MetricsTableLatenciesImpl</a>, <a h
 ref="../../../../../org/apache/hadoop/hbase/thrift/MetricsThriftServerSourceImpl.html" title="class in org.apache.hadoop.hbase.thrift">MetricsThriftServerSourceImpl</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/wal/MetricsWALSourceImpl.html" title="class in org.apache.hadoop.hbase.regionserver.wal">MetricsWALSourceImpl</a>, <a href="../../../../../org/apache/hadoop/hbase/zookeeper/MetricsZooKeeperSourceImpl.html" title="class in org.apache.hadoop.hbase.zookeeper">MetricsZooKeeperSourceImpl</a></dd>
 </dl>
 <hr>
 <br>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/29b27596/devapidocs/org/apache/hadoop/hbase/metrics/BaseSourceImpl.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/metrics/BaseSourceImpl.html b/devapidocs/org/apache/hadoop/hbase/metrics/BaseSourceImpl.html
index 284a8f7..6132e64 100644
--- a/devapidocs/org/apache/hadoop/hbase/metrics/BaseSourceImpl.html
+++ b/devapidocs/org/apache/hadoop/hbase/metrics/BaseSourceImpl.html
@@ -113,7 +113,7 @@ var activeTableTab = "activeTableTab";
 </dl>
 <dl>
 <dt>Direct Known Subclasses:</dt>
-<dd><a href="../../../../../org/apache/hadoop/hbase/metrics/ExceptionTrackingSourceImpl.html" title="class in org.apache.hadoop.hbase.metrics">ExceptionTrackingSourceImpl</a>, <a href="../../../../../org/apache/hadoop/hbase/master/MetricsAssignmentManagerSourceImpl.html" title="class in org.apache.hadoop.hbase.master">MetricsAssignmentManagerSourceImpl</a>, <a href="../../../../../org/apache/hadoop/hbase/master/balancer/MetricsBalancerSourceImpl.html" title="class in org.apache.hadoop.hbase.master.balancer">MetricsBalancerSourceImpl</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsHeapMemoryManagerSourceImpl.html" title="class in org.apache.hadoop.hbase.regionserver">MetricsHeapMemoryManagerSourceImpl</a>, <a href="../../../../../org/apache/hadoop/hbase/io/MetricsIOSourceImpl.html" title="class in org.apache.hadoop.hbase.io">MetricsIOSourceImpl</a>, <a href="../../../../../org/apache/hadoop/hbase/master/MetricsMasterFilesystemSourceImpl.html" title="class in 
 org.apache.hadoop.hbase.master">MetricsMasterFilesystemSourceImpl</a>, <a href="../../../../../org/apache/hadoop/hbase/master/MetricsMasterProcSourceImpl.html" title="class in org.apache.hadoop.hbase.master">MetricsMasterProcSourceImpl</a>, <a href="../../../../../org/apache/hadoop/hbase/master/MetricsMasterQuotaSourceImpl.html" title="class in org.apache.hadoop.hbase.master">MetricsMasterQuotaSourceImpl</a>, <a href="../../../../../org/apache/hadoop/hbase/master/MetricsMasterSourceImpl.html" title="class in org.apache.hadoop.hbase.master">MetricsMasterSourceImpl</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionAggregateSourceImpl.html" title="class in org.apache.hadoop.hbase.regionserver">MetricsRegionAggregateSourceImpl</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.html" title="class in org.apache.hadoop.hbase.regionserver">MetricsRegionServerSourceImpl</a>, <a href="../../../../../org/apache/hadoop/hb
 ase/replication/regionserver/MetricsReplicationSourceImpl.html" title="class in org.apache.hadoop.hbase.replication.regionserver">MetricsReplicationSourceImpl</a>, <a href="../../../../../org/apache/hadoop/hbase/rest/MetricsRESTSourceImpl.html" title="class in org.apache.hadoop.hbase.rest">MetricsRESTSourceImpl</a>, <a href="../../../../../org/apache/hadoop/hbase/master/MetricsSnapshotSourceImpl.html" title="class in org.apache.hadoop.hbase.master">MetricsSnapshotSourceImpl</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableAggregateSourceImpl.html" title="class in org.apache.hadoop.hbase.regionserver">MetricsTableAggregateSourceImpl</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/wal/MetricsWALSourceImpl.html" title="class in org.apache.hadoop.hbase.regionserver.wal">MetricsWALSourceImpl</a>, <a href="../../../../../org/apache/hadoop/hbase/zookeeper/MetricsZooKeeperSourceImpl.html" title="class in org.apache.hadoop.hbase.zookeeper">Metri
 csZooKeeperSourceImpl</a></dd>
+<dd><a href="../../../../../org/apache/hadoop/hbase/metrics/ExceptionTrackingSourceImpl.html" title="class in org.apache.hadoop.hbase.metrics">ExceptionTrackingSourceImpl</a>, <a href="../../../../../org/apache/hadoop/hbase/master/MetricsAssignmentManagerSourceImpl.html" title="class in org.apache.hadoop.hbase.master">MetricsAssignmentManagerSourceImpl</a>, <a href="../../../../../org/apache/hadoop/hbase/master/balancer/MetricsBalancerSourceImpl.html" title="class in org.apache.hadoop.hbase.master.balancer">MetricsBalancerSourceImpl</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsHeapMemoryManagerSourceImpl.html" title="class in org.apache.hadoop.hbase.regionserver">MetricsHeapMemoryManagerSourceImpl</a>, <a href="../../../../../org/apache/hadoop/hbase/io/MetricsIOSourceImpl.html" title="class in org.apache.hadoop.hbase.io">MetricsIOSourceImpl</a>, <a href="../../../../../org/apache/hadoop/hbase/master/MetricsMasterFilesystemSourceImpl.html" title="class in 
 org.apache.hadoop.hbase.master">MetricsMasterFilesystemSourceImpl</a>, <a href="../../../../../org/apache/hadoop/hbase/master/MetricsMasterProcSourceImpl.html" title="class in org.apache.hadoop.hbase.master">MetricsMasterProcSourceImpl</a>, <a href="../../../../../org/apache/hadoop/hbase/master/MetricsMasterQuotaSourceImpl.html" title="class in org.apache.hadoop.hbase.master">MetricsMasterQuotaSourceImpl</a>, <a href="../../../../../org/apache/hadoop/hbase/master/MetricsMasterSourceImpl.html" title="class in org.apache.hadoop.hbase.master">MetricsMasterSourceImpl</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionAggregateSourceImpl.html" title="class in org.apache.hadoop.hbase.regionserver">MetricsRegionAggregateSourceImpl</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.html" title="class in org.apache.hadoop.hbase.regionserver">MetricsRegionServerSourceImpl</a>, <a href="../../../../../org/apache/hadoop/hb
 ase/replication/regionserver/MetricsReplicationSourceImpl.html" title="class in org.apache.hadoop.hbase.replication.regionserver">MetricsReplicationSourceImpl</a>, <a href="../../../../../org/apache/hadoop/hbase/rest/MetricsRESTSourceImpl.html" title="class in org.apache.hadoop.hbase.rest">MetricsRESTSourceImpl</a>, <a href="../../../../../org/apache/hadoop/hbase/master/MetricsSnapshotSourceImpl.html" title="class in org.apache.hadoop.hbase.master">MetricsSnapshotSourceImpl</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableAggregateSourceImpl.html" title="class in org.apache.hadoop.hbase.regionserver">MetricsTableAggregateSourceImpl</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableLatenciesImpl.html" title="class in org.apache.hadoop.hbase.regionserver">MetricsTableLatenciesImpl</a>, <a href="../../../../../org/apache/hadoop/hbase/regionserver/wal/MetricsWALSourceImpl.html" title="class in org.apache.hadoop.hbase.regionserver.
 wal">MetricsWALSourceImpl</a>, <a href="../../../../../org/apache/hadoop/hbase/zookeeper/MetricsZooKeeperSourceImpl.html" title="class in org.apache.hadoop.hbase.zookeeper">MetricsZooKeeperSourceImpl</a></dd>
 </dl>
 <hr>
 <br>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/29b27596/devapidocs/org/apache/hadoop/hbase/metrics/class-use/BaseSource.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/metrics/class-use/BaseSource.html b/devapidocs/org/apache/hadoop/hbase/metrics/class-use/BaseSource.html
index c363fa4..1eb2793 100644
--- a/devapidocs/org/apache/hadoop/hbase/metrics/class-use/BaseSource.html
+++ b/devapidocs/org/apache/hadoop/hbase/metrics/class-use/BaseSource.html
@@ -444,6 +444,13 @@ service.</div>
 <td class="colFirst"><code>class&nbsp;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableAggregateSourceImpl.html" title="class in org.apache.hadoop.hbase.regionserver">MetricsTableAggregateSourceImpl</a></span></code>&nbsp;</td>
 </tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableLatenciesImpl.html" title="class in org.apache.hadoop.hbase.regionserver">MetricsTableLatenciesImpl</a></span></code>
+<div class="block">Implementation of <a href="../../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableLatencies.html" title="interface in org.apache.hadoop.hbase.regionserver"><code>MetricsTableLatencies</code></a> to track latencies for one table in a
+ RegionServer.</div>
+</td>
+</tr>
 </tbody>
 </table>
 </li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/29b27596/devapidocs/org/apache/hadoop/hbase/metrics/class-use/BaseSourceImpl.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/metrics/class-use/BaseSourceImpl.html b/devapidocs/org/apache/hadoop/hbase/metrics/class-use/BaseSourceImpl.html
index 5e1a458..35188f0 100644
--- a/devapidocs/org/apache/hadoop/hbase/metrics/class-use/BaseSourceImpl.html
+++ b/devapidocs/org/apache/hadoop/hbase/metrics/class-use/BaseSourceImpl.html
@@ -295,6 +295,13 @@ service.</div>
 <td class="colFirst"><code>class&nbsp;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableAggregateSourceImpl.html" title="class in org.apache.hadoop.hbase.regionserver">MetricsTableAggregateSourceImpl</a></span></code>&nbsp;</td>
 </tr>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableLatenciesImpl.html" title="class in org.apache.hadoop.hbase.regionserver">MetricsTableLatenciesImpl</a></span></code>
+<div class="block">Implementation of <a href="../../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableLatencies.html" title="interface in org.apache.hadoop.hbase.regionserver"><code>MetricsTableLatencies</code></a> to track latencies for one table in a
+ RegionServer.</div>
+</td>
+</tr>
 </tbody>
 </table>
 </li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/29b27596/devapidocs/org/apache/hadoop/hbase/monitoring/package-tree.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/monitoring/package-tree.html b/devapidocs/org/apache/hadoop/hbase/monitoring/package-tree.html
index d264c19..c43c370 100644
--- a/devapidocs/org/apache/hadoop/hbase/monitoring/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/monitoring/package-tree.html
@@ -125,8 +125,8 @@
 <ul>
 <li type="circle">java.lang.<a href="http://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="http://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="http://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.monitoring.<a href="../../../../../org/apache/hadoop/hbase/monitoring/MonitoredTask.State.html" title="enum in org.apache.hadoop.hbase.monitoring"><span class="typeNameLink">MonitoredTask.State</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.monitoring.<a href="../../../../../org/apache/hadoop/hbase/monitoring/TaskMonitor.TaskFilter.TaskType.html" title="enum in org.apache.hadoop.hbase.monitoring"><span class="typeNameLink">TaskMonitor.TaskFilter.TaskType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.monitoring.<a href="../../../../../org/apache/hadoop/hbase/monitoring/MonitoredTask.State.html" title="enum in org.apache.hadoop.hbase.monitoring"><span class="typeNameLink">MonitoredTask.State</span></a></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/29b27596/devapidocs/org/apache/hadoop/hbase/package-tree.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/package-tree.html b/devapidocs/org/apache/hadoop/hbase/package-tree.html
index 58169bb..1733fb6 100644
--- a/devapidocs/org/apache/hadoop/hbase/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/package-tree.html
@@ -438,19 +438,19 @@
 <ul>
 <li type="circle">java.lang.<a href="http://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="http://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="http://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/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/HConstants.OperationStatusCode.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">HConstants.OperationStatusCode</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/CompatibilitySingletonFactory.SingletonStorage.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">CompatibilitySingletonFactory.SingletonStorage</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/CellBuilder.DataType.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">CellBuilder.DataType</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/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/ProcedureState.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">ProcedureState</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/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/ClusterStatus.Option.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">ClusterStatus.Option</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/ProcedureState.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">ProcedureState</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/CompatibilitySingletonFactory.SingletonStorage.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">CompatibilitySingletonFactory.SingletonStorage</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/Coprocessor.State.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">Coprocessor.State</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/CellBuilder.DataType.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">CellBuilder.DataType</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/MemoryCompactionPolicy.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">MemoryCompactionPolicy</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/CompareOperator.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">CompareOperator</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/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/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/KeyValue.Type.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">KeyValue.Type</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/CompareOperator.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">CompareOperator</span></a></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/29b27596/devapidocs/org/apache/hadoop/hbase/procedure2/package-tree.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/procedure2/package-tree.html b/devapidocs/org/apache/hadoop/hbase/procedure2/package-tree.html
index 560dfd9..8598438 100644
--- a/devapidocs/org/apache/hadoop/hbase/procedure2/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/procedure2/package-tree.html
@@ -203,11 +203,11 @@
 <ul>
 <li type="circle">java.lang.<a href="http://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="http://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="http://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/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>
-<li type="circle">org.apache.hadoop.hbase.procedure2.<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.LockState.html" title="enum in org.apache.hadoop.hbase.procedure2"><span class="typeNameLink">Procedure.LockState</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.procedure2.<a href="../../../../../org/apache/hadoop/hbase/procedure2/LockedResourceType.html" title="enum in org.apache.hadoop.hbase.procedure2"><span class="typeNameLink">LockedResourceType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.procedure2.<a href="../../../../../org/apache/hadoop/hbase/procedure2/Procedure.LockState.html" title="enum in org.apache.hadoop.hbase.procedure2"><span class="typeNameLink">Procedure.LockState</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.procedure2.<a href="../../../../../org/apache/hadoop/hbase/procedure2/RootProcedureState.State.html" title="enum in org.apache.hadoop.hbase.procedure2"><span class="typeNameLink">RootProcedureState.State</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.procedure2.<a href="../../../../../org/apache/hadoop/hbase/procedure2/LockType.html" title="enum in org.apache.hadoop.hbase.procedure2"><span class="typeNameLink">LockType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.procedure2.<a href="../../../../../org/apache/hadoop/hbase/procedure2/StateMachineProcedure.Flow.html" title="enum in org.apache.hadoop.hbase.procedure2"><span class="typeNameLink">StateMachineProcedure.Flow</span></a></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/29b27596/devapidocs/org/apache/hadoop/hbase/quotas/package-tree.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/quotas/package-tree.html b/devapidocs/org/apache/hadoop/hbase/quotas/package-tree.html
index 47b41f5..7f92e7a 100644
--- a/devapidocs/org/apache/hadoop/hbase/quotas/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/quotas/package-tree.html
@@ -208,10 +208,10 @@
 <ul>
 <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/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/OperationQuota.OperationType.html" title="enum in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">OperationQuota.OperationType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.quotas.<a href="../../../../../org/apache/hadoop/hbase/quotas/ThrottleType.html" title="enum in org.apache.hadoop.hbase.quotas"><span class="typeNameLink">ThrottleType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.quotas.<a href="../../../../../org/apache/hadoop/hbase/quotas/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>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/29b27596/devapidocs/org/apache/hadoop/hbase/regionserver/HRegionServer.CompactionChecker.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/regionserver/HRegionServer.CompactionChecker.html b/devapidocs/org/apache/hadoop/hbase/regionserver/HRegionServer.CompactionChecker.html
index 45b21a9..20e2c6a 100644
--- a/devapidocs/org/apache/hadoop/hbase/regionserver/HRegionServer.CompactionChecker.html
+++ b/devapidocs/org/apache/hadoop/hbase/regionserver/HRegionServer.CompactionChecker.html
@@ -122,7 +122,7 @@ var activeTableTab = "activeTableTab";
 </dl>
 <hr>
 <br>
-<pre>private static class <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.1682">HRegionServer.CompactionChecker</a>
+<pre>private static class <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.1683">HRegionServer.CompactionChecker</a>
 extends <a href="../../../../../org/apache/hadoop/hbase/ScheduledChore.html" title="class in org.apache.hadoop.hbase">ScheduledChore</a></pre>
 </li>
 </ul>
@@ -233,7 +233,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/ScheduledChore.html" tit
 <ul class="blockList">
 <li class="blockList">
 <h4>instance</h4>
-<pre>private final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html" title="class in org.apache.hadoop.hbase.regionserver">HRegionServer</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.CompactionChecker.html#line.1683">instance</a></pre>
+<pre>private final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html" title="class in org.apache.hadoop.hbase.regionserver">HRegionServer</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.CompactionChecker.html#line.1684">instance</a></pre>
 </li>
 </ul>
 <a name="majorCompactPriority">
@@ -242,7 +242,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/ScheduledChore.html" tit
 <ul class="blockList">
 <li class="blockList">
 <h4>majorCompactPriority</h4>
-<pre>private final&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.CompactionChecker.html#line.1684">majorCompactPriority</a></pre>
+<pre>private final&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.CompactionChecker.html#line.1685">majorCompactPriority</a></pre>
 </li>
 </ul>
 <a name="DEFAULT_PRIORITY">
@@ -251,7 +251,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/ScheduledChore.html" tit
 <ul class="blockList">
 <li class="blockList">
 <h4>DEFAULT_PRIORITY</h4>
-<pre>private static final&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.CompactionChecker.html#line.1685">DEFAULT_PRIORITY</a></pre>
+<pre>private static final&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.CompactionChecker.html#line.1686">DEFAULT_PRIORITY</a></pre>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
 <dd><a href="../../../../../constant-values.html#org.apache.hadoop.hbase.regionserver.HRegionServer.CompactionChecker.DEFAULT_PRIORITY">Constant Field Values</a></dd>
@@ -264,7 +264,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/ScheduledChore.html" tit
 <ul class="blockListLast">
 <li class="blockList">
 <h4>iteration</h4>
-<pre>private&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.CompactionChecker.html#line.1688">iteration</a></pre>
+<pre>private&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.CompactionChecker.html#line.1689">iteration</a></pre>
 </li>
 </ul>
 </li>
@@ -281,7 +281,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/ScheduledChore.html" tit
 <ul class="blockListLast">
 <li class="blockList">
 <h4>CompactionChecker</h4>
-<pre><a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.CompactionChecker.html#line.1690">CompactionChecker</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html" title="class in org.apache.hadoop.hbase.regionserver">HRegionServer</a>&nbsp;h,
+<pre><a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.CompactionChecker.html#line.1691">CompactionChecker</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html" title="class in org.apache.hadoop.hbase.regionserver">HRegionServer</a>&nbsp;h,
                   int&nbsp;sleepTime,
                   <a href="../../../../../org/apache/hadoop/hbase/Stoppable.html" title="interface in org.apache.hadoop.hbase">Stoppable</a>&nbsp;stopper)</pre>
 </li>
@@ -300,7 +300,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/ScheduledChore.html" tit
 <ul class="blockListLast">
 <li class="blockList">
 <h4>chore</h4>
-<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.CompactionChecker.html#line.1704">chore</a>()</pre>
+<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.CompactionChecker.html#line.1705">chore</a>()</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/ScheduledChore.html#chore--">ScheduledChore</a></code></span></div>
 <div class="block">The task to execute on each scheduled execution of the Chore</div>
 <dl>


[06/32] hbase-site git commit: Published site at .

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/29b27596/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/RegionServerTableMetrics.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/RegionServerTableMetrics.html b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/RegionServerTableMetrics.html
new file mode 100644
index 0000000..bd61bcf
--- /dev/null
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/RegionServerTableMetrics.html
@@ -0,0 +1,143 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+<title>Source code</title>
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<div class="sourceContainer">
+<pre><span class="sourceLineNo">001</span>/*<a name="line.1"></a>
+<span class="sourceLineNo">002</span> * Licensed to the Apache Software Foundation (ASF) under one or more<a name="line.2"></a>
+<span class="sourceLineNo">003</span> * contributor license agreements.  See the NOTICE file distributed with<a name="line.3"></a>
+<span class="sourceLineNo">004</span> * this work for additional information regarding copyright ownership.<a name="line.4"></a>
+<span class="sourceLineNo">005</span> * The ASF licenses this file to you under the Apache License, Version 2.0<a name="line.5"></a>
+<span class="sourceLineNo">006</span> * (the "License"); you may not use this file except in compliance with<a name="line.6"></a>
+<span class="sourceLineNo">007</span> * the License.  You may obtain a copy of the License at<a name="line.7"></a>
+<span class="sourceLineNo">008</span> *<a name="line.8"></a>
+<span class="sourceLineNo">009</span> * http://www.apache.org/licenses/LICENSE-2.0<a name="line.9"></a>
+<span class="sourceLineNo">010</span> *<a name="line.10"></a>
+<span class="sourceLineNo">011</span> * Unless required by applicable law or agreed to in writing, software<a name="line.11"></a>
+<span class="sourceLineNo">012</span> * distributed under the License is distributed on an "AS IS" BASIS,<a name="line.12"></a>
+<span class="sourceLineNo">013</span> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.<a name="line.13"></a>
+<span class="sourceLineNo">014</span> * See the License for the specific language governing permissions and<a name="line.14"></a>
+<span class="sourceLineNo">015</span> * limitations under the License.<a name="line.15"></a>
+<span class="sourceLineNo">016</span> */<a name="line.16"></a>
+<span class="sourceLineNo">017</span>package org.apache.hadoop.hbase.regionserver;<a name="line.17"></a>
+<span class="sourceLineNo">018</span><a name="line.18"></a>
+<span class="sourceLineNo">019</span>import org.apache.hadoop.hbase.CompatibilitySingletonFactory;<a name="line.19"></a>
+<span class="sourceLineNo">020</span>import org.apache.hadoop.hbase.TableName;<a name="line.20"></a>
+<span class="sourceLineNo">021</span>import org.apache.yetus.audience.InterfaceAudience;<a name="line.21"></a>
+<span class="sourceLineNo">022</span><a name="line.22"></a>
+<span class="sourceLineNo">023</span>/**<a name="line.23"></a>
+<span class="sourceLineNo">024</span> * Captures operation metrics by table. Separates metrics collection for table metrics away from<a name="line.24"></a>
+<span class="sourceLineNo">025</span> * {@link MetricsRegionServer} for encapsulation and ease of testing.<a name="line.25"></a>
+<span class="sourceLineNo">026</span> */<a name="line.26"></a>
+<span class="sourceLineNo">027</span>@InterfaceAudience.Private<a name="line.27"></a>
+<span class="sourceLineNo">028</span>public class RegionServerTableMetrics {<a name="line.28"></a>
+<span class="sourceLineNo">029</span><a name="line.29"></a>
+<span class="sourceLineNo">030</span>  private final MetricsTableLatencies latencies;<a name="line.30"></a>
+<span class="sourceLineNo">031</span><a name="line.31"></a>
+<span class="sourceLineNo">032</span>  public RegionServerTableMetrics() {<a name="line.32"></a>
+<span class="sourceLineNo">033</span>    latencies = CompatibilitySingletonFactory.getInstance(MetricsTableLatencies.class);<a name="line.33"></a>
+<span class="sourceLineNo">034</span>  }<a name="line.34"></a>
+<span class="sourceLineNo">035</span><a name="line.35"></a>
+<span class="sourceLineNo">036</span>  public void updatePut(TableName table, long time) {<a name="line.36"></a>
+<span class="sourceLineNo">037</span>    latencies.updatePut(table.getNameAsString(), time);<a name="line.37"></a>
+<span class="sourceLineNo">038</span>  }<a name="line.38"></a>
+<span class="sourceLineNo">039</span><a name="line.39"></a>
+<span class="sourceLineNo">040</span>  public void updatePutBatch(TableName table, long time) {<a name="line.40"></a>
+<span class="sourceLineNo">041</span>    latencies.updatePutBatch(table.getNameAsString(), time);<a name="line.41"></a>
+<span class="sourceLineNo">042</span>  }<a name="line.42"></a>
+<span class="sourceLineNo">043</span><a name="line.43"></a>
+<span class="sourceLineNo">044</span>  public void updateGet(TableName table, long time) {<a name="line.44"></a>
+<span class="sourceLineNo">045</span>    latencies.updateGet(table.getNameAsString(), time);<a name="line.45"></a>
+<span class="sourceLineNo">046</span>  }<a name="line.46"></a>
+<span class="sourceLineNo">047</span><a name="line.47"></a>
+<span class="sourceLineNo">048</span>  public void updateIncrement(TableName table, long time) {<a name="line.48"></a>
+<span class="sourceLineNo">049</span>    latencies.updateIncrement(table.getNameAsString(), time);<a name="line.49"></a>
+<span class="sourceLineNo">050</span>  }<a name="line.50"></a>
+<span class="sourceLineNo">051</span><a name="line.51"></a>
+<span class="sourceLineNo">052</span>  public void updateAppend(TableName table, long time) {<a name="line.52"></a>
+<span class="sourceLineNo">053</span>    latencies.updateAppend(table.getNameAsString(), time);<a name="line.53"></a>
+<span class="sourceLineNo">054</span>  }<a name="line.54"></a>
+<span class="sourceLineNo">055</span><a name="line.55"></a>
+<span class="sourceLineNo">056</span>  public void updateDelete(TableName table, long time) {<a name="line.56"></a>
+<span class="sourceLineNo">057</span>    latencies.updateDelete(table.getNameAsString(), time);<a name="line.57"></a>
+<span class="sourceLineNo">058</span>  }<a name="line.58"></a>
+<span class="sourceLineNo">059</span><a name="line.59"></a>
+<span class="sourceLineNo">060</span>  public void updateDeleteBatch(TableName table, long time) {<a name="line.60"></a>
+<span class="sourceLineNo">061</span>    latencies.updateDeleteBatch(table.getNameAsString(), time);<a name="line.61"></a>
+<span class="sourceLineNo">062</span>  }<a name="line.62"></a>
+<span class="sourceLineNo">063</span><a name="line.63"></a>
+<span class="sourceLineNo">064</span>  public void updateScanTime(TableName table, long time) {<a name="line.64"></a>
+<span class="sourceLineNo">065</span>    latencies.updateScanTime(table.getNameAsString(), time);<a name="line.65"></a>
+<span class="sourceLineNo">066</span>  }<a name="line.66"></a>
+<span class="sourceLineNo">067</span><a name="line.67"></a>
+<span class="sourceLineNo">068</span>  public void updateScanSize(TableName table, long size) {<a name="line.68"></a>
+<span class="sourceLineNo">069</span>    latencies.updateScanSize(table.getNameAsString(), size);<a name="line.69"></a>
+<span class="sourceLineNo">070</span>  }<a name="line.70"></a>
+<span class="sourceLineNo">071</span>}<a name="line.71"></a>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/29b27596/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/compactions/CompactionRequestImpl.DisplayCompactionType.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/compactions/CompactionRequestImpl.DisplayCompactionType.html b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/compactions/CompactionRequestImpl.DisplayCompactionType.html
index b11999f..cd10659 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/compactions/CompactionRequestImpl.DisplayCompactionType.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/compactions/CompactionRequestImpl.DisplayCompactionType.html
@@ -145,26 +145,100 @@
 <span class="sourceLineNo">137</span>  }<a name="line.137"></a>
 <span class="sourceLineNo">138</span><a name="line.138"></a>
 <span class="sourceLineNo">139</span>  @Override<a name="line.139"></a>
-<span class="sourceLineNo">140</span>  public String toString() {<a name="line.140"></a>
-<span class="sourceLineNo">141</span>    String fsList = filesToCompact.stream().filter(f -&gt; f.getReader() != null)<a name="line.141"></a>
-<span class="sourceLineNo">142</span>        .map(f -&gt; TraditionalBinaryPrefix.long2String(f.getReader().length(), "", 1))<a name="line.142"></a>
-<span class="sourceLineNo">143</span>        .collect(Collectors.joining(", "));<a name="line.143"></a>
-<span class="sourceLineNo">144</span><a name="line.144"></a>
-<span class="sourceLineNo">145</span>    return "regionName=" + regionName + ", storeName=" + storeName + ", fileCount=" +<a name="line.145"></a>
-<span class="sourceLineNo">146</span>        this.getFiles().size() + ", fileSize=" +<a name="line.146"></a>
-<span class="sourceLineNo">147</span>        TraditionalBinaryPrefix.long2String(totalSize, "", 1) +<a name="line.147"></a>
-<span class="sourceLineNo">148</span>        ((fsList.isEmpty()) ? "" : " (" + fsList + ")") + ", priority=" + priority + ", time=" +<a name="line.148"></a>
-<span class="sourceLineNo">149</span>        selectionTime;<a name="line.149"></a>
-<span class="sourceLineNo">150</span>  }<a name="line.150"></a>
-<span class="sourceLineNo">151</span><a name="line.151"></a>
-<span class="sourceLineNo">152</span>  /**<a name="line.152"></a>
-<span class="sourceLineNo">153</span>   * Recalculate the size of the compaction based on current files.<a name="line.153"></a>
-<span class="sourceLineNo">154</span>   */<a name="line.154"></a>
-<span class="sourceLineNo">155</span>  private void recalculateSize() {<a name="line.155"></a>
-<span class="sourceLineNo">156</span>    this.totalSize = filesToCompact.stream().map(HStoreFile::getReader)<a name="line.156"></a>
-<span class="sourceLineNo">157</span>        .mapToLong(r -&gt; r != null ? r.length() : 0L).sum();<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">140</span>  public int hashCode() {<a name="line.140"></a>
+<span class="sourceLineNo">141</span>    final int prime = 31;<a name="line.141"></a>
+<span class="sourceLineNo">142</span>    int result = 1;<a name="line.142"></a>
+<span class="sourceLineNo">143</span>    result = prime * result + ((filesToCompact == null) ? 0 : filesToCompact.hashCode());<a name="line.143"></a>
+<span class="sourceLineNo">144</span>    result = prime * result + ((isMajor == null) ? 0 : isMajor.hashCode());<a name="line.144"></a>
+<span class="sourceLineNo">145</span>    result = prime * result + (isOffPeak ? 1231 : 1237);<a name="line.145"></a>
+<span class="sourceLineNo">146</span>    result = prime * result + priority;<a name="line.146"></a>
+<span class="sourceLineNo">147</span>    result = prime * result + ((regionName == null) ? 0 : regionName.hashCode());<a name="line.147"></a>
+<span class="sourceLineNo">148</span>    result = prime * result + (int) (selectionTime ^ (selectionTime &gt;&gt;&gt; 32));<a name="line.148"></a>
+<span class="sourceLineNo">149</span>    result = prime * result + ((storeName == null) ? 0 : storeName.hashCode());<a name="line.149"></a>
+<span class="sourceLineNo">150</span>    result = prime * result + (int) (totalSize ^ (totalSize &gt;&gt;&gt; 32));<a name="line.150"></a>
+<span class="sourceLineNo">151</span>    result = prime * result + ((tracker == null) ? 0 : tracker.hashCode());<a name="line.151"></a>
+<span class="sourceLineNo">152</span>    return result;<a name="line.152"></a>
+<span class="sourceLineNo">153</span>  }<a name="line.153"></a>
+<span class="sourceLineNo">154</span><a name="line.154"></a>
+<span class="sourceLineNo">155</span>  @Override<a name="line.155"></a>
+<span class="sourceLineNo">156</span>  public boolean equals(Object obj) {<a name="line.156"></a>
+<span class="sourceLineNo">157</span>    if (this == obj) {<a name="line.157"></a>
+<span class="sourceLineNo">158</span>      return true;<a name="line.158"></a>
+<span class="sourceLineNo">159</span>    }<a name="line.159"></a>
+<span class="sourceLineNo">160</span>    if (obj == null) {<a name="line.160"></a>
+<span class="sourceLineNo">161</span>      return false;<a name="line.161"></a>
+<span class="sourceLineNo">162</span>    }<a name="line.162"></a>
+<span class="sourceLineNo">163</span>    if (getClass() != obj.getClass()) {<a name="line.163"></a>
+<span class="sourceLineNo">164</span>      return false;<a name="line.164"></a>
+<span class="sourceLineNo">165</span>    }<a name="line.165"></a>
+<span class="sourceLineNo">166</span>    CompactionRequestImpl other = (CompactionRequestImpl) obj;<a name="line.166"></a>
+<span class="sourceLineNo">167</span>    if (filesToCompact == null) {<a name="line.167"></a>
+<span class="sourceLineNo">168</span>      if (other.filesToCompact != null) {<a name="line.168"></a>
+<span class="sourceLineNo">169</span>        return false;<a name="line.169"></a>
+<span class="sourceLineNo">170</span>      }<a name="line.170"></a>
+<span class="sourceLineNo">171</span>    } else if (!filesToCompact.equals(other.filesToCompact)) {<a name="line.171"></a>
+<span class="sourceLineNo">172</span>      return false;<a name="line.172"></a>
+<span class="sourceLineNo">173</span>    }<a name="line.173"></a>
+<span class="sourceLineNo">174</span>    if (isMajor != other.isMajor) {<a name="line.174"></a>
+<span class="sourceLineNo">175</span>      return false;<a name="line.175"></a>
+<span class="sourceLineNo">176</span>    }<a name="line.176"></a>
+<span class="sourceLineNo">177</span>    if (isOffPeak != other.isOffPeak) {<a name="line.177"></a>
+<span class="sourceLineNo">178</span>      return false;<a name="line.178"></a>
+<span class="sourceLineNo">179</span>    }<a name="line.179"></a>
+<span class="sourceLineNo">180</span>    if (priority != other.priority) {<a name="line.180"></a>
+<span class="sourceLineNo">181</span>      return false;<a name="line.181"></a>
+<span class="sourceLineNo">182</span>    }<a name="line.182"></a>
+<span class="sourceLineNo">183</span>    if (regionName == null) {<a name="line.183"></a>
+<span class="sourceLineNo">184</span>      if (other.regionName != null) {<a name="line.184"></a>
+<span class="sourceLineNo">185</span>        return false;<a name="line.185"></a>
+<span class="sourceLineNo">186</span>      }<a name="line.186"></a>
+<span class="sourceLineNo">187</span>    } else if (!regionName.equals(other.regionName)) {<a name="line.187"></a>
+<span class="sourceLineNo">188</span>      return false;<a name="line.188"></a>
+<span class="sourceLineNo">189</span>    }<a name="line.189"></a>
+<span class="sourceLineNo">190</span>    if (selectionTime != other.selectionTime) {<a name="line.190"></a>
+<span class="sourceLineNo">191</span>      return false;<a name="line.191"></a>
+<span class="sourceLineNo">192</span>    }<a name="line.192"></a>
+<span class="sourceLineNo">193</span>    if (storeName == null) {<a name="line.193"></a>
+<span class="sourceLineNo">194</span>      if (other.storeName != null) {<a name="line.194"></a>
+<span class="sourceLineNo">195</span>        return false;<a name="line.195"></a>
+<span class="sourceLineNo">196</span>      }<a name="line.196"></a>
+<span class="sourceLineNo">197</span>    } else if (!storeName.equals(other.storeName)) {<a name="line.197"></a>
+<span class="sourceLineNo">198</span>      return false;<a name="line.198"></a>
+<span class="sourceLineNo">199</span>    }<a name="line.199"></a>
+<span class="sourceLineNo">200</span>    if (totalSize != other.totalSize) {<a name="line.200"></a>
+<span class="sourceLineNo">201</span>      return false;<a name="line.201"></a>
+<span class="sourceLineNo">202</span>    }<a name="line.202"></a>
+<span class="sourceLineNo">203</span>    if (tracker == null) {<a name="line.203"></a>
+<span class="sourceLineNo">204</span>      if (other.tracker != null) {<a name="line.204"></a>
+<span class="sourceLineNo">205</span>        return false;<a name="line.205"></a>
+<span class="sourceLineNo">206</span>      }<a name="line.206"></a>
+<span class="sourceLineNo">207</span>    } else if (!tracker.equals(other.tracker)) {<a name="line.207"></a>
+<span class="sourceLineNo">208</span>      return false;<a name="line.208"></a>
+<span class="sourceLineNo">209</span>    }<a name="line.209"></a>
+<span class="sourceLineNo">210</span>    return true;<a name="line.210"></a>
+<span class="sourceLineNo">211</span>  }<a name="line.211"></a>
+<span class="sourceLineNo">212</span><a name="line.212"></a>
+<span class="sourceLineNo">213</span>  @Override<a name="line.213"></a>
+<span class="sourceLineNo">214</span>  public String toString() {<a name="line.214"></a>
+<span class="sourceLineNo">215</span>    String fsList = filesToCompact.stream().filter(f -&gt; f.getReader() != null)<a name="line.215"></a>
+<span class="sourceLineNo">216</span>        .map(f -&gt; TraditionalBinaryPrefix.long2String(f.getReader().length(), "", 1))<a name="line.216"></a>
+<span class="sourceLineNo">217</span>        .collect(Collectors.joining(", "));<a name="line.217"></a>
+<span class="sourceLineNo">218</span><a name="line.218"></a>
+<span class="sourceLineNo">219</span>    return "regionName=" + regionName + ", storeName=" + storeName + ", fileCount=" +<a name="line.219"></a>
+<span class="sourceLineNo">220</span>        this.getFiles().size() + ", fileSize=" +<a name="line.220"></a>
+<span class="sourceLineNo">221</span>        TraditionalBinaryPrefix.long2String(totalSize, "", 1) +<a name="line.221"></a>
+<span class="sourceLineNo">222</span>        ((fsList.isEmpty()) ? "" : " (" + fsList + ")") + ", priority=" + priority + ", time=" +<a name="line.222"></a>
+<span class="sourceLineNo">223</span>        selectionTime;<a name="line.223"></a>
+<span class="sourceLineNo">224</span>  }<a name="line.224"></a>
+<span class="sourceLineNo">225</span><a name="line.225"></a>
+<span class="sourceLineNo">226</span>  /**<a name="line.226"></a>
+<span class="sourceLineNo">227</span>   * Recalculate the size of the compaction based on current files.<a name="line.227"></a>
+<span class="sourceLineNo">228</span>   */<a name="line.228"></a>
+<span class="sourceLineNo">229</span>  private void recalculateSize() {<a name="line.229"></a>
+<span class="sourceLineNo">230</span>    this.totalSize = filesToCompact.stream().map(HStoreFile::getReader)<a name="line.230"></a>
+<span class="sourceLineNo">231</span>        .mapToLong(r -&gt; r != null ? r.length() : 0L).sum();<a name="line.231"></a>
+<span class="sourceLineNo">232</span>  }<a name="line.232"></a>
+<span class="sourceLineNo">233</span>}<a name="line.233"></a>
 
 
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/29b27596/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/compactions/CompactionRequestImpl.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/compactions/CompactionRequestImpl.html b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/compactions/CompactionRequestImpl.html
index b11999f..cd10659 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/compactions/CompactionRequestImpl.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/compactions/CompactionRequestImpl.html
@@ -145,26 +145,100 @@
 <span class="sourceLineNo">137</span>  }<a name="line.137"></a>
 <span class="sourceLineNo">138</span><a name="line.138"></a>
 <span class="sourceLineNo">139</span>  @Override<a name="line.139"></a>
-<span class="sourceLineNo">140</span>  public String toString() {<a name="line.140"></a>
-<span class="sourceLineNo">141</span>    String fsList = filesToCompact.stream().filter(f -&gt; f.getReader() != null)<a name="line.141"></a>
-<span class="sourceLineNo">142</span>        .map(f -&gt; TraditionalBinaryPrefix.long2String(f.getReader().length(), "", 1))<a name="line.142"></a>
-<span class="sourceLineNo">143</span>        .collect(Collectors.joining(", "));<a name="line.143"></a>
-<span class="sourceLineNo">144</span><a name="line.144"></a>
-<span class="sourceLineNo">145</span>    return "regionName=" + regionName + ", storeName=" + storeName + ", fileCount=" +<a name="line.145"></a>
-<span class="sourceLineNo">146</span>        this.getFiles().size() + ", fileSize=" +<a name="line.146"></a>
-<span class="sourceLineNo">147</span>        TraditionalBinaryPrefix.long2String(totalSize, "", 1) +<a name="line.147"></a>
-<span class="sourceLineNo">148</span>        ((fsList.isEmpty()) ? "" : " (" + fsList + ")") + ", priority=" + priority + ", time=" +<a name="line.148"></a>
-<span class="sourceLineNo">149</span>        selectionTime;<a name="line.149"></a>
-<span class="sourceLineNo">150</span>  }<a name="line.150"></a>
-<span class="sourceLineNo">151</span><a name="line.151"></a>
-<span class="sourceLineNo">152</span>  /**<a name="line.152"></a>
-<span class="sourceLineNo">153</span>   * Recalculate the size of the compaction based on current files.<a name="line.153"></a>
-<span class="sourceLineNo">154</span>   */<a name="line.154"></a>
-<span class="sourceLineNo">155</span>  private void recalculateSize() {<a name="line.155"></a>
-<span class="sourceLineNo">156</span>    this.totalSize = filesToCompact.stream().map(HStoreFile::getReader)<a name="line.156"></a>
-<span class="sourceLineNo">157</span>        .mapToLong(r -&gt; r != null ? r.length() : 0L).sum();<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">140</span>  public int hashCode() {<a name="line.140"></a>
+<span class="sourceLineNo">141</span>    final int prime = 31;<a name="line.141"></a>
+<span class="sourceLineNo">142</span>    int result = 1;<a name="line.142"></a>
+<span class="sourceLineNo">143</span>    result = prime * result + ((filesToCompact == null) ? 0 : filesToCompact.hashCode());<a name="line.143"></a>
+<span class="sourceLineNo">144</span>    result = prime * result + ((isMajor == null) ? 0 : isMajor.hashCode());<a name="line.144"></a>
+<span class="sourceLineNo">145</span>    result = prime * result + (isOffPeak ? 1231 : 1237);<a name="line.145"></a>
+<span class="sourceLineNo">146</span>    result = prime * result + priority;<a name="line.146"></a>
+<span class="sourceLineNo">147</span>    result = prime * result + ((regionName == null) ? 0 : regionName.hashCode());<a name="line.147"></a>
+<span class="sourceLineNo">148</span>    result = prime * result + (int) (selectionTime ^ (selectionTime &gt;&gt;&gt; 32));<a name="line.148"></a>
+<span class="sourceLineNo">149</span>    result = prime * result + ((storeName == null) ? 0 : storeName.hashCode());<a name="line.149"></a>
+<span class="sourceLineNo">150</span>    result = prime * result + (int) (totalSize ^ (totalSize &gt;&gt;&gt; 32));<a name="line.150"></a>
+<span class="sourceLineNo">151</span>    result = prime * result + ((tracker == null) ? 0 : tracker.hashCode());<a name="line.151"></a>
+<span class="sourceLineNo">152</span>    return result;<a name="line.152"></a>
+<span class="sourceLineNo">153</span>  }<a name="line.153"></a>
+<span class="sourceLineNo">154</span><a name="line.154"></a>
+<span class="sourceLineNo">155</span>  @Override<a name="line.155"></a>
+<span class="sourceLineNo">156</span>  public boolean equals(Object obj) {<a name="line.156"></a>
+<span class="sourceLineNo">157</span>    if (this == obj) {<a name="line.157"></a>
+<span class="sourceLineNo">158</span>      return true;<a name="line.158"></a>
+<span class="sourceLineNo">159</span>    }<a name="line.159"></a>
+<span class="sourceLineNo">160</span>    if (obj == null) {<a name="line.160"></a>
+<span class="sourceLineNo">161</span>      return false;<a name="line.161"></a>
+<span class="sourceLineNo">162</span>    }<a name="line.162"></a>
+<span class="sourceLineNo">163</span>    if (getClass() != obj.getClass()) {<a name="line.163"></a>
+<span class="sourceLineNo">164</span>      return false;<a name="line.164"></a>
+<span class="sourceLineNo">165</span>    }<a name="line.165"></a>
+<span class="sourceLineNo">166</span>    CompactionRequestImpl other = (CompactionRequestImpl) obj;<a name="line.166"></a>
+<span class="sourceLineNo">167</span>    if (filesToCompact == null) {<a name="line.167"></a>
+<span class="sourceLineNo">168</span>      if (other.filesToCompact != null) {<a name="line.168"></a>
+<span class="sourceLineNo">169</span>        return false;<a name="line.169"></a>
+<span class="sourceLineNo">170</span>      }<a name="line.170"></a>
+<span class="sourceLineNo">171</span>    } else if (!filesToCompact.equals(other.filesToCompact)) {<a name="line.171"></a>
+<span class="sourceLineNo">172</span>      return false;<a name="line.172"></a>
+<span class="sourceLineNo">173</span>    }<a name="line.173"></a>
+<span class="sourceLineNo">174</span>    if (isMajor != other.isMajor) {<a name="line.174"></a>
+<span class="sourceLineNo">175</span>      return false;<a name="line.175"></a>
+<span class="sourceLineNo">176</span>    }<a name="line.176"></a>
+<span class="sourceLineNo">177</span>    if (isOffPeak != other.isOffPeak) {<a name="line.177"></a>
+<span class="sourceLineNo">178</span>      return false;<a name="line.178"></a>
+<span class="sourceLineNo">179</span>    }<a name="line.179"></a>
+<span class="sourceLineNo">180</span>    if (priority != other.priority) {<a name="line.180"></a>
+<span class="sourceLineNo">181</span>      return false;<a name="line.181"></a>
+<span class="sourceLineNo">182</span>    }<a name="line.182"></a>
+<span class="sourceLineNo">183</span>    if (regionName == null) {<a name="line.183"></a>
+<span class="sourceLineNo">184</span>      if (other.regionName != null) {<a name="line.184"></a>
+<span class="sourceLineNo">185</span>        return false;<a name="line.185"></a>
+<span class="sourceLineNo">186</span>      }<a name="line.186"></a>
+<span class="sourceLineNo">187</span>    } else if (!regionName.equals(other.regionName)) {<a name="line.187"></a>
+<span class="sourceLineNo">188</span>      return false;<a name="line.188"></a>
+<span class="sourceLineNo">189</span>    }<a name="line.189"></a>
+<span class="sourceLineNo">190</span>    if (selectionTime != other.selectionTime) {<a name="line.190"></a>
+<span class="sourceLineNo">191</span>      return false;<a name="line.191"></a>
+<span class="sourceLineNo">192</span>    }<a name="line.192"></a>
+<span class="sourceLineNo">193</span>    if (storeName == null) {<a name="line.193"></a>
+<span class="sourceLineNo">194</span>      if (other.storeName != null) {<a name="line.194"></a>
+<span class="sourceLineNo">195</span>        return false;<a name="line.195"></a>
+<span class="sourceLineNo">196</span>      }<a name="line.196"></a>
+<span class="sourceLineNo">197</span>    } else if (!storeName.equals(other.storeName)) {<a name="line.197"></a>
+<span class="sourceLineNo">198</span>      return false;<a name="line.198"></a>
+<span class="sourceLineNo">199</span>    }<a name="line.199"></a>
+<span class="sourceLineNo">200</span>    if (totalSize != other.totalSize) {<a name="line.200"></a>
+<span class="sourceLineNo">201</span>      return false;<a name="line.201"></a>
+<span class="sourceLineNo">202</span>    }<a name="line.202"></a>
+<span class="sourceLineNo">203</span>    if (tracker == null) {<a name="line.203"></a>
+<span class="sourceLineNo">204</span>      if (other.tracker != null) {<a name="line.204"></a>
+<span class="sourceLineNo">205</span>        return false;<a name="line.205"></a>
+<span class="sourceLineNo">206</span>      }<a name="line.206"></a>
+<span class="sourceLineNo">207</span>    } else if (!tracker.equals(other.tracker)) {<a name="line.207"></a>
+<span class="sourceLineNo">208</span>      return false;<a name="line.208"></a>
+<span class="sourceLineNo">209</span>    }<a name="line.209"></a>
+<span class="sourceLineNo">210</span>    return true;<a name="line.210"></a>
+<span class="sourceLineNo">211</span>  }<a name="line.211"></a>
+<span class="sourceLineNo">212</span><a name="line.212"></a>
+<span class="sourceLineNo">213</span>  @Override<a name="line.213"></a>
+<span class="sourceLineNo">214</span>  public String toString() {<a name="line.214"></a>
+<span class="sourceLineNo">215</span>    String fsList = filesToCompact.stream().filter(f -&gt; f.getReader() != null)<a name="line.215"></a>
+<span class="sourceLineNo">216</span>        .map(f -&gt; TraditionalBinaryPrefix.long2String(f.getReader().length(), "", 1))<a name="line.216"></a>
+<span class="sourceLineNo">217</span>        .collect(Collectors.joining(", "));<a name="line.217"></a>
+<span class="sourceLineNo">218</span><a name="line.218"></a>
+<span class="sourceLineNo">219</span>    return "regionName=" + regionName + ", storeName=" + storeName + ", fileCount=" +<a name="line.219"></a>
+<span class="sourceLineNo">220</span>        this.getFiles().size() + ", fileSize=" +<a name="line.220"></a>
+<span class="sourceLineNo">221</span>        TraditionalBinaryPrefix.long2String(totalSize, "", 1) +<a name="line.221"></a>
+<span class="sourceLineNo">222</span>        ((fsList.isEmpty()) ? "" : " (" + fsList + ")") + ", priority=" + priority + ", time=" +<a name="line.222"></a>
+<span class="sourceLineNo">223</span>        selectionTime;<a name="line.223"></a>
+<span class="sourceLineNo">224</span>  }<a name="line.224"></a>
+<span class="sourceLineNo">225</span><a name="line.225"></a>
+<span class="sourceLineNo">226</span>  /**<a name="line.226"></a>
+<span class="sourceLineNo">227</span>   * Recalculate the size of the compaction based on current files.<a name="line.227"></a>
+<span class="sourceLineNo">228</span>   */<a name="line.228"></a>
+<span class="sourceLineNo">229</span>  private void recalculateSize() {<a name="line.229"></a>
+<span class="sourceLineNo">230</span>    this.totalSize = filesToCompact.stream().map(HStoreFile::getReader)<a name="line.230"></a>
+<span class="sourceLineNo">231</span>        .mapToLong(r -&gt; r != null ? r.length() : 0L).sum();<a name="line.231"></a>
+<span class="sourceLineNo">232</span>  }<a name="line.232"></a>
+<span class="sourceLineNo">233</span>}<a name="line.233"></a>
 
 
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/29b27596/export_control.html
----------------------------------------------------------------------
diff --git a/export_control.html b/export_control.html
index 490297e..a03f9cc 100644
--- a/export_control.html
+++ b/export_control.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="20171201" />
+    <meta name="Date-Revision-yyyymmdd" content="20171202" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; 
       Export Control
@@ -336,7 +336,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: 2017-12-01</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-02</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/29b27596/hbase-annotations/checkstyle.html
----------------------------------------------------------------------
diff --git a/hbase-annotations/checkstyle.html b/hbase-annotations/checkstyle.html
index c8e5c98..c566ac7 100644
--- a/hbase-annotations/checkstyle.html
+++ b/hbase-annotations/checkstyle.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="20171201" />
+    <meta name="Date-Revision-yyyymmdd" content="20171202" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Annotations &#x2013; Checkstyle Results</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -178,7 +178,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-02</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/29b27596/hbase-annotations/dependencies.html
----------------------------------------------------------------------
diff --git a/hbase-annotations/dependencies.html b/hbase-annotations/dependencies.html
index 40bec43..79938f1 100644
--- a/hbase-annotations/dependencies.html
+++ b/hbase-annotations/dependencies.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="20171201" />
+    <meta name="Date-Revision-yyyymmdd" content="20171202" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Annotations &#x2013; Project Dependencies</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -272,7 +272,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-02</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/29b27596/hbase-annotations/dependency-convergence.html
----------------------------------------------------------------------
diff --git a/hbase-annotations/dependency-convergence.html b/hbase-annotations/dependency-convergence.html
index 7239cd8..91be68d 100644
--- a/hbase-annotations/dependency-convergence.html
+++ b/hbase-annotations/dependency-convergence.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="20171201" />
+    <meta name="Date-Revision-yyyymmdd" content="20171202" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Annotations &#x2013; Reactor Dependency Convergence</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -838,7 +838,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-02</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/29b27596/hbase-annotations/dependency-info.html
----------------------------------------------------------------------
diff --git a/hbase-annotations/dependency-info.html b/hbase-annotations/dependency-info.html
index ff89a03..87dc799 100644
--- a/hbase-annotations/dependency-info.html
+++ b/hbase-annotations/dependency-info.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="20171201" />
+    <meta name="Date-Revision-yyyymmdd" content="20171202" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Annotations &#x2013; Dependency Information</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -147,7 +147,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-02</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/29b27596/hbase-annotations/dependency-management.html
----------------------------------------------------------------------
diff --git a/hbase-annotations/dependency-management.html b/hbase-annotations/dependency-management.html
index 685d44a..3762d87 100644
--- a/hbase-annotations/dependency-management.html
+++ b/hbase-annotations/dependency-management.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="20171201" />
+    <meta name="Date-Revision-yyyymmdd" content="20171202" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Annotations &#x2013; Project Dependency Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -545,19 +545,19 @@
 <tr class="a">
 <td>org.eclipse.jetty</td>
 <td><a class="externalLink" href="http://www.eclipse.org/jetty">jetty-http</a></td>
-<td>9.4.6.v20170531</td>
+<td>9.3.19.v20170502</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache Software License - Version 2.0</a>, <a class="externalLink" href="http://www.eclipse.org/org/documents/epl-v10.php">Eclipse Public License - Version 1.0</a></td></tr>
 <tr class="b">
 <td>org.eclipse.jetty</td>
 <td><a class="externalLink" href="http://www.eclipse.org/jetty">jetty-io</a></td>
-<td>9.4.6.v20170531</td>
+<td>9.3.19.v20170502</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache Software License - Version 2.0</a>, <a class="externalLink" href="http://www.eclipse.org/org/documents/epl-v10.php">Eclipse Public License - Version 1.0</a></td></tr>
 <tr class="a">
 <td>org.eclipse.jetty</td>
 <td><a class="externalLink" href="http://www.eclipse.org/jetty">jetty-jmx</a></td>
-<td>9.4.6.v20170531</td>
+<td>9.3.19.v20170502</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache Software License - Version 2.0</a>, <a class="externalLink" href="http://www.eclipse.org/org/documents/epl-v10.php">Eclipse Public License - Version 1.0</a></td></tr>
 <tr class="b">
@@ -569,37 +569,37 @@
 <tr class="a">
 <td>org.eclipse.jetty</td>
 <td><a class="externalLink" href="http://www.eclipse.org/jetty">jetty-security</a></td>
-<td>9.4.6.v20170531</td>
+<td>9.3.19.v20170502</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache Software License - Version 2.0</a>, <a class="externalLink" href="http://www.eclipse.org/org/documents/epl-v10.php">Eclipse Public License - Version 1.0</a></td></tr>
 <tr class="b">
 <td>org.eclipse.jetty</td>
 <td><a class="externalLink" href="http://www.eclipse.org/jetty">jetty-server</a></td>
-<td>9.4.6.v20170531</td>
+<td>9.3.19.v20170502</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache Software License - Version 2.0</a>, <a class="externalLink" href="http://www.eclipse.org/org/documents/epl-v10.php">Eclipse Public License - Version 1.0</a></td></tr>
 <tr class="a">
 <td>org.eclipse.jetty</td>
 <td><a class="externalLink" href="http://www.eclipse.org/jetty">jetty-servlet</a></td>
-<td>9.4.6.v20170531</td>
+<td>9.3.19.v20170502</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache Software License - Version 2.0</a>, <a class="externalLink" href="http://www.eclipse.org/org/documents/epl-v10.php">Eclipse Public License - Version 1.0</a></td></tr>
 <tr class="b">
 <td>org.eclipse.jetty</td>
 <td><a class="externalLink" href="http://www.eclipse.org/jetty">jetty-util</a></td>
-<td>9.4.6.v20170531</td>
+<td>9.3.19.v20170502</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache Software License - Version 2.0</a>, <a class="externalLink" href="http://www.eclipse.org/org/documents/epl-v10.php">Eclipse Public License - Version 1.0</a></td></tr>
 <tr class="a">
 <td>org.eclipse.jetty</td>
 <td><a class="externalLink" href="http://www.eclipse.org/jetty">jetty-util-ajax</a></td>
-<td>9.4.6.v20170531</td>
+<td>9.3.19.v20170502</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache Software License - Version 2.0</a>, <a class="externalLink" href="http://www.eclipse.org/org/documents/epl-v10.php">Eclipse Public License - Version 1.0</a></td></tr>
 <tr class="b">
 <td>org.eclipse.jetty</td>
 <td><a class="externalLink" href="http://www.eclipse.org/jetty">jetty-webapp</a></td>
-<td>9.4.6.v20170531</td>
+<td>9.3.19.v20170502</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache Software License - Version 2.0</a>, <a class="externalLink" href="http://www.eclipse.org/org/documents/epl-v10.php">Eclipse Public License - Version 1.0</a></td></tr>
 <tr class="a">
@@ -804,7 +804,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-02</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/29b27596/hbase-annotations/index.html
----------------------------------------------------------------------
diff --git a/hbase-annotations/index.html b/hbase-annotations/index.html
index 000def2..485bbad 100644
--- a/hbase-annotations/index.html
+++ b/hbase-annotations/index.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="20171201" />
+    <meta name="Date-Revision-yyyymmdd" content="20171202" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Annotations &#x2013; About</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -119,7 +119,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-02</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/29b27596/hbase-annotations/integration.html
----------------------------------------------------------------------
diff --git a/hbase-annotations/integration.html b/hbase-annotations/integration.html
index a48bd21..1be3ceb 100644
--- a/hbase-annotations/integration.html
+++ b/hbase-annotations/integration.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="20171201" />
+    <meta name="Date-Revision-yyyymmdd" content="20171202" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Annotations &#x2013; CI Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -126,7 +126,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-02</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/29b27596/hbase-annotations/issue-tracking.html
----------------------------------------------------------------------
diff --git a/hbase-annotations/issue-tracking.html b/hbase-annotations/issue-tracking.html
index 7e1d364..b057e14 100644
--- a/hbase-annotations/issue-tracking.html
+++ b/hbase-annotations/issue-tracking.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="20171201" />
+    <meta name="Date-Revision-yyyymmdd" content="20171202" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Annotations &#x2013; Issue Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -123,7 +123,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-02</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/29b27596/hbase-annotations/license.html
----------------------------------------------------------------------
diff --git a/hbase-annotations/license.html b/hbase-annotations/license.html
index b7820b8..3d419ad 100644
--- a/hbase-annotations/license.html
+++ b/hbase-annotations/license.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="20171201" />
+    <meta name="Date-Revision-yyyymmdd" content="20171202" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Annotations &#x2013; Project Licenses</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -326,7 +326,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-02</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/29b27596/hbase-annotations/mail-lists.html
----------------------------------------------------------------------
diff --git a/hbase-annotations/mail-lists.html b/hbase-annotations/mail-lists.html
index 8074fc8..32e613f 100644
--- a/hbase-annotations/mail-lists.html
+++ b/hbase-annotations/mail-lists.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="20171201" />
+    <meta name="Date-Revision-yyyymmdd" content="20171202" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Annotations &#x2013; Project Mailing Lists</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -176,7 +176,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-02</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/29b27596/hbase-annotations/plugin-management.html
----------------------------------------------------------------------
diff --git a/hbase-annotations/plugin-management.html b/hbase-annotations/plugin-management.html
index 5ba0e85..22d8e5e 100644
--- a/hbase-annotations/plugin-management.html
+++ b/hbase-annotations/plugin-management.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="20171201" />
+    <meta name="Date-Revision-yyyymmdd" content="20171202" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Annotations &#x2013; Project Plugin Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -271,7 +271,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-02</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/29b27596/hbase-annotations/plugins.html
----------------------------------------------------------------------
diff --git a/hbase-annotations/plugins.html b/hbase-annotations/plugins.html
index 676ec6e..19b53ae 100644
--- a/hbase-annotations/plugins.html
+++ b/hbase-annotations/plugins.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="20171201" />
+    <meta name="Date-Revision-yyyymmdd" content="20171202" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Annotations &#x2013; Project Plugins</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -222,7 +222,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-02</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/29b27596/hbase-annotations/project-info.html
----------------------------------------------------------------------
diff --git a/hbase-annotations/project-info.html b/hbase-annotations/project-info.html
index 13011bf..6fb5d04 100644
--- a/hbase-annotations/project-info.html
+++ b/hbase-annotations/project-info.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="20171201" />
+    <meta name="Date-Revision-yyyymmdd" content="20171202" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Annotations &#x2013; Project Information</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -167,7 +167,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-02</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/29b27596/hbase-annotations/project-reports.html
----------------------------------------------------------------------
diff --git a/hbase-annotations/project-reports.html b/hbase-annotations/project-reports.html
index e35d890..cd39407 100644
--- a/hbase-annotations/project-reports.html
+++ b/hbase-annotations/project-reports.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="20171201" />
+    <meta name="Date-Revision-yyyymmdd" content="20171202" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Annotations &#x2013; Generated Reports</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -128,7 +128,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-02</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/29b27596/hbase-annotations/project-summary.html
----------------------------------------------------------------------
diff --git a/hbase-annotations/project-summary.html b/hbase-annotations/project-summary.html
index dbed282..6cfb065 100644
--- a/hbase-annotations/project-summary.html
+++ b/hbase-annotations/project-summary.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="20171201" />
+    <meta name="Date-Revision-yyyymmdd" content="20171202" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Annotations &#x2013; Project Summary</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -166,7 +166,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-02</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/29b27596/hbase-annotations/source-repository.html
----------------------------------------------------------------------
diff --git a/hbase-annotations/source-repository.html b/hbase-annotations/source-repository.html
index af95766..326b9bb 100644
--- a/hbase-annotations/source-repository.html
+++ b/hbase-annotations/source-repository.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="20171201" />
+    <meta name="Date-Revision-yyyymmdd" content="20171202" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Annotations &#x2013; Source Code Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -134,7 +134,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-02</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/29b27596/hbase-annotations/team-list.html
----------------------------------------------------------------------
diff --git a/hbase-annotations/team-list.html b/hbase-annotations/team-list.html
index 40832e9..b5883d4 100644
--- a/hbase-annotations/team-list.html
+++ b/hbase-annotations/team-list.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="20171201" />
+    <meta name="Date-Revision-yyyymmdd" content="20171202" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Annotations &#x2013; Project Team</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -547,7 +547,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-02</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/29b27596/hbase-build-configuration/dependencies.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/dependencies.html b/hbase-build-configuration/dependencies.html
index 2633511..5290677 100644
--- a/hbase-build-configuration/dependencies.html
+++ b/hbase-build-configuration/dependencies.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="20171201" />
+    <meta name="Date-Revision-yyyymmdd" content="20171202" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Build Configuration &#x2013; Project Dependencies</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -330,7 +330,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-02</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/29b27596/hbase-build-configuration/dependency-convergence.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/dependency-convergence.html b/hbase-build-configuration/dependency-convergence.html
index 0c30f75..242a6cb 100644
--- a/hbase-build-configuration/dependency-convergence.html
+++ b/hbase-build-configuration/dependency-convergence.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="20171201" />
+    <meta name="Date-Revision-yyyymmdd" content="20171202" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Build Configuration &#x2013; Reactor Dependency Convergence</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -838,7 +838,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-02</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/29b27596/hbase-build-configuration/dependency-info.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/dependency-info.html b/hbase-build-configuration/dependency-info.html
index 332dea4..824d82d 100644
--- a/hbase-build-configuration/dependency-info.html
+++ b/hbase-build-configuration/dependency-info.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="20171201" />
+    <meta name="Date-Revision-yyyymmdd" content="20171202" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Build Configuration &#x2013; Dependency Information</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -148,7 +148,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-02</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/29b27596/hbase-build-configuration/dependency-management.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/dependency-management.html b/hbase-build-configuration/dependency-management.html
index ca04840..818f5ef 100644
--- a/hbase-build-configuration/dependency-management.html
+++ b/hbase-build-configuration/dependency-management.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="20171201" />
+    <meta name="Date-Revision-yyyymmdd" content="20171202" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Build Configuration &#x2013; Project Dependency Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -545,19 +545,19 @@
 <tr class="a">
 <td>org.eclipse.jetty</td>
 <td><a class="externalLink" href="http://www.eclipse.org/jetty">jetty-http</a></td>
-<td>9.4.6.v20170531</td>
+<td>9.3.19.v20170502</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache Software License - Version 2.0</a>, <a class="externalLink" href="http://www.eclipse.org/org/documents/epl-v10.php">Eclipse Public License - Version 1.0</a></td></tr>
 <tr class="b">
 <td>org.eclipse.jetty</td>
 <td><a class="externalLink" href="http://www.eclipse.org/jetty">jetty-io</a></td>
-<td>9.4.6.v20170531</td>
+<td>9.3.19.v20170502</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache Software License - Version 2.0</a>, <a class="externalLink" href="http://www.eclipse.org/org/documents/epl-v10.php">Eclipse Public License - Version 1.0</a></td></tr>
 <tr class="a">
 <td>org.eclipse.jetty</td>
 <td><a class="externalLink" href="http://www.eclipse.org/jetty">jetty-jmx</a></td>
-<td>9.4.6.v20170531</td>
+<td>9.3.19.v20170502</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache Software License - Version 2.0</a>, <a class="externalLink" href="http://www.eclipse.org/org/documents/epl-v10.php">Eclipse Public License - Version 1.0</a></td></tr>
 <tr class="b">
@@ -569,37 +569,37 @@
 <tr class="a">
 <td>org.eclipse.jetty</td>
 <td><a class="externalLink" href="http://www.eclipse.org/jetty">jetty-security</a></td>
-<td>9.4.6.v20170531</td>
+<td>9.3.19.v20170502</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache Software License - Version 2.0</a>, <a class="externalLink" href="http://www.eclipse.org/org/documents/epl-v10.php">Eclipse Public License - Version 1.0</a></td></tr>
 <tr class="b">
 <td>org.eclipse.jetty</td>
 <td><a class="externalLink" href="http://www.eclipse.org/jetty">jetty-server</a></td>
-<td>9.4.6.v20170531</td>
+<td>9.3.19.v20170502</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache Software License - Version 2.0</a>, <a class="externalLink" href="http://www.eclipse.org/org/documents/epl-v10.php">Eclipse Public License - Version 1.0</a></td></tr>
 <tr class="a">
 <td>org.eclipse.jetty</td>
 <td><a class="externalLink" href="http://www.eclipse.org/jetty">jetty-servlet</a></td>
-<td>9.4.6.v20170531</td>
+<td>9.3.19.v20170502</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache Software License - Version 2.0</a>, <a class="externalLink" href="http://www.eclipse.org/org/documents/epl-v10.php">Eclipse Public License - Version 1.0</a></td></tr>
 <tr class="b">
 <td>org.eclipse.jetty</td>
 <td><a class="externalLink" href="http://www.eclipse.org/jetty">jetty-util</a></td>
-<td>9.4.6.v20170531</td>
+<td>9.3.19.v20170502</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache Software License - Version 2.0</a>, <a class="externalLink" href="http://www.eclipse.org/org/documents/epl-v10.php">Eclipse Public License - Version 1.0</a></td></tr>
 <tr class="a">
 <td>org.eclipse.jetty</td>
 <td><a class="externalLink" href="http://www.eclipse.org/jetty">jetty-util-ajax</a></td>
-<td>9.4.6.v20170531</td>
+<td>9.3.19.v20170502</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache Software License - Version 2.0</a>, <a class="externalLink" href="http://www.eclipse.org/org/documents/epl-v10.php">Eclipse Public License - Version 1.0</a></td></tr>
 <tr class="b">
 <td>org.eclipse.jetty</td>
 <td><a class="externalLink" href="http://www.eclipse.org/jetty">jetty-webapp</a></td>
-<td>9.4.6.v20170531</td>
+<td>9.3.19.v20170502</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache Software License - Version 2.0</a>, <a class="externalLink" href="http://www.eclipse.org/org/documents/epl-v10.php">Eclipse Public License - Version 1.0</a></td></tr>
 <tr class="a">
@@ -804,7 +804,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-02</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/29b27596/hbase-build-configuration/hbase-archetypes/dependencies.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/dependencies.html b/hbase-build-configuration/hbase-archetypes/dependencies.html
index 3010e64..cad0015 100644
--- a/hbase-build-configuration/hbase-archetypes/dependencies.html
+++ b/hbase-build-configuration/hbase-archetypes/dependencies.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="20171201" />
+    <meta name="Date-Revision-yyyymmdd" content="20171202" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Archetypes &#x2013; Project Dependencies</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -330,7 +330,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-02</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/29b27596/hbase-build-configuration/hbase-archetypes/dependency-convergence.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/dependency-convergence.html b/hbase-build-configuration/hbase-archetypes/dependency-convergence.html
index 549e80f..2b0c6e6 100644
--- a/hbase-build-configuration/hbase-archetypes/dependency-convergence.html
+++ b/hbase-build-configuration/hbase-archetypes/dependency-convergence.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="20171201" />
+    <meta name="Date-Revision-yyyymmdd" content="20171202" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Archetypes &#x2013; Reactor Dependency Convergence</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -838,7 +838,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-02</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/29b27596/hbase-build-configuration/hbase-archetypes/dependency-info.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/dependency-info.html b/hbase-build-configuration/hbase-archetypes/dependency-info.html
index f36d77a..929f262 100644
--- a/hbase-build-configuration/hbase-archetypes/dependency-info.html
+++ b/hbase-build-configuration/hbase-archetypes/dependency-info.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="20171201" />
+    <meta name="Date-Revision-yyyymmdd" content="20171202" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Archetypes &#x2013; Dependency Information</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -148,7 +148,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-02</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/29b27596/hbase-build-configuration/hbase-archetypes/dependency-management.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/dependency-management.html b/hbase-build-configuration/hbase-archetypes/dependency-management.html
index f9c327d..ab9139a 100644
--- a/hbase-build-configuration/hbase-archetypes/dependency-management.html
+++ b/hbase-build-configuration/hbase-archetypes/dependency-management.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="20171201" />
+    <meta name="Date-Revision-yyyymmdd" content="20171202" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Archetypes &#x2013; Project Dependency Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -545,19 +545,19 @@
 <tr class="a">
 <td>org.eclipse.jetty</td>
 <td><a class="externalLink" href="http://www.eclipse.org/jetty">jetty-http</a></td>
-<td>9.4.6.v20170531</td>
+<td>9.3.19.v20170502</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache Software License - Version 2.0</a>, <a class="externalLink" href="http://www.eclipse.org/org/documents/epl-v10.php">Eclipse Public License - Version 1.0</a></td></tr>
 <tr class="b">
 <td>org.eclipse.jetty</td>
 <td><a class="externalLink" href="http://www.eclipse.org/jetty">jetty-io</a></td>
-<td>9.4.6.v20170531</td>
+<td>9.3.19.v20170502</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache Software License - Version 2.0</a>, <a class="externalLink" href="http://www.eclipse.org/org/documents/epl-v10.php">Eclipse Public License - Version 1.0</a></td></tr>
 <tr class="a">
 <td>org.eclipse.jetty</td>
 <td><a class="externalLink" href="http://www.eclipse.org/jetty">jetty-jmx</a></td>
-<td>9.4.6.v20170531</td>
+<td>9.3.19.v20170502</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache Software License - Version 2.0</a>, <a class="externalLink" href="http://www.eclipse.org/org/documents/epl-v10.php">Eclipse Public License - Version 1.0</a></td></tr>
 <tr class="b">
@@ -569,37 +569,37 @@
 <tr class="a">
 <td>org.eclipse.jetty</td>
 <td><a class="externalLink" href="http://www.eclipse.org/jetty">jetty-security</a></td>
-<td>9.4.6.v20170531</td>
+<td>9.3.19.v20170502</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache Software License - Version 2.0</a>, <a class="externalLink" href="http://www.eclipse.org/org/documents/epl-v10.php">Eclipse Public License - Version 1.0</a></td></tr>
 <tr class="b">
 <td>org.eclipse.jetty</td>
 <td><a class="externalLink" href="http://www.eclipse.org/jetty">jetty-server</a></td>
-<td>9.4.6.v20170531</td>
+<td>9.3.19.v20170502</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache Software License - Version 2.0</a>, <a class="externalLink" href="http://www.eclipse.org/org/documents/epl-v10.php">Eclipse Public License - Version 1.0</a></td></tr>
 <tr class="a">
 <td>org.eclipse.jetty</td>
 <td><a class="externalLink" href="http://www.eclipse.org/jetty">jetty-servlet</a></td>
-<td>9.4.6.v20170531</td>
+<td>9.3.19.v20170502</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache Software License - Version 2.0</a>, <a class="externalLink" href="http://www.eclipse.org/org/documents/epl-v10.php">Eclipse Public License - Version 1.0</a></td></tr>
 <tr class="b">
 <td>org.eclipse.jetty</td>
 <td><a class="externalLink" href="http://www.eclipse.org/jetty">jetty-util</a></td>
-<td>9.4.6.v20170531</td>
+<td>9.3.19.v20170502</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache Software License - Version 2.0</a>, <a class="externalLink" href="http://www.eclipse.org/org/documents/epl-v10.php">Eclipse Public License - Version 1.0</a></td></tr>
 <tr class="a">
 <td>org.eclipse.jetty</td>
 <td><a class="externalLink" href="http://www.eclipse.org/jetty">jetty-util-ajax</a></td>
-<td>9.4.6.v20170531</td>
+<td>9.3.19.v20170502</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache Software License - Version 2.0</a>, <a class="externalLink" href="http://www.eclipse.org/org/documents/epl-v10.php">Eclipse Public License - Version 1.0</a></td></tr>
 <tr class="b">
 <td>org.eclipse.jetty</td>
 <td><a class="externalLink" href="http://www.eclipse.org/jetty">jetty-webapp</a></td>
-<td>9.4.6.v20170531</td>
+<td>9.3.19.v20170502</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache Software License - Version 2.0</a>, <a class="externalLink" href="http://www.eclipse.org/org/documents/epl-v10.php">Eclipse Public License - Version 1.0</a></td></tr>
 <tr class="a">
@@ -804,7 +804,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-02</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/29b27596/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/dependencies.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/dependencies.html b/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/dependencies.html
index 0ef87fc..dd3ab70 100644
--- a/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/dependencies.html
+++ b/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/dependencies.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="20171201" />
+    <meta name="Date-Revision-yyyymmdd" content="20171202" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Archetype builder &#x2013; Project Dependencies</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -330,7 +330,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-02</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/29b27596/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/dependency-convergence.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/dependency-convergence.html b/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/dependency-convergence.html
index daf9c44..0b3cb90 100644
--- a/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/dependency-convergence.html
+++ b/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/dependency-convergence.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="20171201" />
+    <meta name="Date-Revision-yyyymmdd" content="20171202" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Archetype builder &#x2013; Reactor Dependency Convergence</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -838,7 +838,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-02</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/29b27596/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/dependency-info.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/dependency-info.html b/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/dependency-info.html
index 580e63e..75c20fc 100644
--- a/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/dependency-info.html
+++ b/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/dependency-info.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="20171201" />
+    <meta name="Date-Revision-yyyymmdd" content="20171202" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Archetype builder &#x2013; Dependency Information</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -148,7 +148,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-02</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/29b27596/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/dependency-management.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/dependency-management.html b/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/dependency-management.html
index f0eed41..f655fb8 100644
--- a/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/dependency-management.html
+++ b/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/dependency-management.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="20171201" />
+    <meta name="Date-Revision-yyyymmdd" content="20171202" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Archetype builder &#x2013; Project Dependency Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -545,19 +545,19 @@
 <tr class="a">
 <td>org.eclipse.jetty</td>
 <td><a class="externalLink" href="http://www.eclipse.org/jetty">jetty-http</a></td>
-<td>9.4.6.v20170531</td>
+<td>9.3.19.v20170502</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache Software License - Version 2.0</a>, <a class="externalLink" href="http://www.eclipse.org/org/documents/epl-v10.php">Eclipse Public License - Version 1.0</a></td></tr>
 <tr class="b">
 <td>org.eclipse.jetty</td>
 <td><a class="externalLink" href="http://www.eclipse.org/jetty">jetty-io</a></td>
-<td>9.4.6.v20170531</td>
+<td>9.3.19.v20170502</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache Software License - Version 2.0</a>, <a class="externalLink" href="http://www.eclipse.org/org/documents/epl-v10.php">Eclipse Public License - Version 1.0</a></td></tr>
 <tr class="a">
 <td>org.eclipse.jetty</td>
 <td><a class="externalLink" href="http://www.eclipse.org/jetty">jetty-jmx</a></td>
-<td>9.4.6.v20170531</td>
+<td>9.3.19.v20170502</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache Software License - Version 2.0</a>, <a class="externalLink" href="http://www.eclipse.org/org/documents/epl-v10.php">Eclipse Public License - Version 1.0</a></td></tr>
 <tr class="b">
@@ -569,37 +569,37 @@
 <tr class="a">
 <td>org.eclipse.jetty</td>
 <td><a class="externalLink" href="http://www.eclipse.org/jetty">jetty-security</a></td>
-<td>9.4.6.v20170531</td>
+<td>9.3.19.v20170502</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache Software License - Version 2.0</a>, <a class="externalLink" href="http://www.eclipse.org/org/documents/epl-v10.php">Eclipse Public License - Version 1.0</a></td></tr>
 <tr class="b">
 <td>org.eclipse.jetty</td>
 <td><a class="externalLink" href="http://www.eclipse.org/jetty">jetty-server</a></td>
-<td>9.4.6.v20170531</td>
+<td>9.3.19.v20170502</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache Software License - Version 2.0</a>, <a class="externalLink" href="http://www.eclipse.org/org/documents/epl-v10.php">Eclipse Public License - Version 1.0</a></td></tr>
 <tr class="a">
 <td>org.eclipse.jetty</td>
 <td><a class="externalLink" href="http://www.eclipse.org/jetty">jetty-servlet</a></td>
-<td>9.4.6.v20170531</td>
+<td>9.3.19.v20170502</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache Software License - Version 2.0</a>, <a class="externalLink" href="http://www.eclipse.org/org/documents/epl-v10.php">Eclipse Public License - Version 1.0</a></td></tr>
 <tr class="b">
 <td>org.eclipse.jetty</td>
 <td><a class="externalLink" href="http://www.eclipse.org/jetty">jetty-util</a></td>
-<td>9.4.6.v20170531</td>
+<td>9.3.19.v20170502</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache Software License - Version 2.0</a>, <a class="externalLink" href="http://www.eclipse.org/org/documents/epl-v10.php">Eclipse Public License - Version 1.0</a></td></tr>
 <tr class="a">
 <td>org.eclipse.jetty</td>
 <td><a class="externalLink" href="http://www.eclipse.org/jetty">jetty-util-ajax</a></td>
-<td>9.4.6.v20170531</td>
+<td>9.3.19.v20170502</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache Software License - Version 2.0</a>, <a class="externalLink" href="http://www.eclipse.org/org/documents/epl-v10.php">Eclipse Public License - Version 1.0</a></td></tr>
 <tr class="b">
 <td>org.eclipse.jetty</td>
 <td><a class="externalLink" href="http://www.eclipse.org/jetty">jetty-webapp</a></td>
-<td>9.4.6.v20170531</td>
+<td>9.3.19.v20170502</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache Software License - Version 2.0</a>, <a class="externalLink" href="http://www.eclipse.org/org/documents/epl-v10.php">Eclipse Public License - Version 1.0</a></td></tr>
 <tr class="a">
@@ -804,7 +804,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-02</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/29b27596/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/index.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/index.html b/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/index.html
index 95b9772..9f2b61d 100644
--- a/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/index.html
+++ b/hbase-build-configuration/hbase-archetypes/hbase-archetype-builder/index.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="20171201" />
+    <meta name="Date-Revision-yyyymmdd" content="20171202" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Archetype builder &#x2013; About</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -119,7 +119,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-02</li>
             </p>
                 </div>
 


[26/32] hbase-site git commit: Published site at .

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/29b27596/devapidocs/org/apache/hadoop/hbase/regionserver/HRegionServer.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/regionserver/HRegionServer.html b/devapidocs/org/apache/hadoop/hbase/regionserver/HRegionServer.html
index 9a11f10..8e9807d 100644
--- a/devapidocs/org/apache/hadoop/hbase/regionserver/HRegionServer.html
+++ b/devapidocs/org/apache/hadoop/hbase/regionserver/HRegionServer.html
@@ -2384,7 +2384,7 @@ protected static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/ja
 <ul class="blockList">
 <li class="blockList">
 <h4>UNSPECIFIED_REGION</h4>
-<pre>private static final&nbsp;byte[] <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.2106">UNSPECIFIED_REGION</a></pre>
+<pre>private static final&nbsp;byte[] <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.2107">UNSPECIFIED_REGION</a></pre>
 </li>
 </ul>
 <a name="movedRegions">
@@ -2393,7 +2393,7 @@ protected static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/ja
 <ul class="blockList">
 <li class="blockList">
 <h4>movedRegions</h4>
-<pre>protected&nbsp;<a href="http://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="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.MovedRegionInfo.html" title="class in org.apache.hadoop.hbase.regionserver">HRegionServer.MovedRegionInfo</a>&gt; <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.3429">movedRegions</a></pre>
+<pre>protected&nbsp;<a href="http://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="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.MovedRegionInfo.html" title="class in org.apache.hadoop.hbase.regionserver">HRegionServer.MovedRegionInfo</a>&gt; <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.3430">movedRegions</a></pre>
 </li>
 </ul>
 <a name="TIMEOUT_REGION_MOVED">
@@ -2402,7 +2402,7 @@ protected static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/ja
 <ul class="blockListLast">
 <li class="blockList">
 <h4>TIMEOUT_REGION_MOVED</h4>
-<pre>private static final&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.3433">TIMEOUT_REGION_MOVED</a></pre>
+<pre>private static final&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.3434">TIMEOUT_REGION_MOVED</a></pre>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
 <dd><a href="../../../../../constant-values.html#org.apache.hadoop.hbase.regionserver.HRegionServer.TIMEOUT_REGION_MOVED">Constant Field Values</a></dd>
@@ -2945,7 +2945,7 @@ protected static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/ja
 <ul class="blockList">
 <li class="blockList">
 <h4>initializeMemStoreChunkCreator</h4>
-<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.1553">initializeMemStoreChunkCreator</a>()</pre>
+<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.1554">initializeMemStoreChunkCreator</a>()</pre>
 </li>
 </ul>
 <a name="startHeapMemoryManager--">
@@ -2954,7 +2954,7 @@ protected static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/ja
 <ul class="blockList">
 <li class="blockList">
 <h4>startHeapMemoryManager</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.1574">startHeapMemoryManager</a>()</pre>
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.1575">startHeapMemoryManager</a>()</pre>
 </li>
 </ul>
 <a name="createMyEphemeralNode--">
@@ -2963,7 +2963,7 @@ protected static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/ja
 <ul class="blockList">
 <li class="blockList">
 <h4>createMyEphemeralNode</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.1582">createMyEphemeralNode</a>()
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.1583">createMyEphemeralNode</a>()
                             throws org.apache.zookeeper.KeeperException,
                                    <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
@@ -2979,7 +2979,7 @@ protected static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/ja
 <ul class="blockList">
 <li class="blockList">
 <h4>deleteMyEphemeralNode</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.1590">deleteMyEphemeralNode</a>()
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.1591">deleteMyEphemeralNode</a>()
                             throws org.apache.zookeeper.KeeperException</pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -2993,7 +2993,7 @@ protected static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/ja
 <ul class="blockList">
 <li class="blockList">
 <h4>getRegionServerAccounting</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionServerAccounting.html" title="class in org.apache.hadoop.hbase.regionserver">RegionServerAccounting</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.1595">getRegionServerAccounting</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionServerAccounting.html" title="class in org.apache.hadoop.hbase.regionserver">RegionServerAccounting</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.1596">getRegionServerAccounting</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionServerServices.html#getRegionServerAccounting--">getRegionServerAccounting</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionServerServices.html" title="interface in org.apache.hadoop.hbase.regionserver">RegionServerServices</a></code></dd>
@@ -3008,7 +3008,7 @@ protected static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/ja
 <ul class="blockList">
 <li class="blockList">
 <h4>createRegionLoad</h4>
-<pre>org.apache.hadoop.hbase.shaded.protobuf.generated.ClusterStatusProtos.RegionLoad&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.1607">createRegionLoad</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion</a>&nbsp;r,
+<pre>org.apache.hadoop.hbase.shaded.protobuf.generated.ClusterStatusProtos.RegionLoad&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.1608">createRegionLoad</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion</a>&nbsp;r,
                                                                                                   org.apache.hadoop.hbase.shaded.protobuf.generated.ClusterStatusProtos.RegionLoad.Builder&nbsp;regionLoadBldr,
                                                                                                   org.apache.hadoop.hbase.shaded.protobuf.generated.HBaseProtos.RegionSpecifier.Builder&nbsp;regionSpecifier)
                                                                                            throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
@@ -3024,7 +3024,7 @@ protected static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/ja
 <ul class="blockList">
 <li class="blockList">
 <h4>createRegionLoad</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.ClusterStatusProtos.RegionLoad&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.1674">createRegionLoad</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;encodedRegionName)
+<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.ClusterStatusProtos.RegionLoad&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.1675">createRegionLoad</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;encodedRegionName)
                                                                                                   throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
@@ -3042,7 +3042,7 @@ protected static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/ja
 <ul class="blockList">
 <li class="blockList">
 <h4>isOnline</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.1783">isOnline</a>()</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.1784">isOnline</a>()</pre>
 <div class="block">Report the status of the server. A server is online once all the startup is
  completed (setting up filesystem, starting executorService threads, etc.). This
  method is designed mostly to be useful in tests.</div>
@@ -3058,7 +3058,7 @@ protected static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/ja
 <ul class="blockList">
 <li class="blockList">
 <h4>setupWALAndReplication</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.1793">setupWALAndReplication</a>()
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.1794">setupWALAndReplication</a>()
                              throws <a href="http://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">Setup WAL log and replication if enabled.
  Replication setup is done in here because it wants to be hooked up to WAL.</div>
@@ -3074,7 +3074,7 @@ protected static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/ja
 <ul class="blockList">
 <li class="blockList">
 <h4>startReplicationService</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.1840">startReplicationService</a>()
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.1841">startReplicationService</a>()
                               throws <a href="http://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">Start up replication source and sink handlers.</div>
 <dl>
@@ -3089,7 +3089,7 @@ protected static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/ja
 <ul class="blockList">
 <li class="blockList">
 <h4>getRegionServerMetrics</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html" title="class in org.apache.hadoop.hbase.regionserver">MetricsRegionServer</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.1855">getRegionServerMetrics</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html" title="class in org.apache.hadoop.hbase.regionserver">MetricsRegionServer</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.1856">getRegionServerMetrics</a>()</pre>
 </li>
 </ul>
 <a name="getMasterAddressTracker--">
@@ -3098,7 +3098,7 @@ protected static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/ja
 <ul class="blockList">
 <li class="blockList">
 <h4>getMasterAddressTracker</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/zookeeper/MasterAddressTracker.html" title="class in org.apache.hadoop.hbase.zookeeper">MasterAddressTracker</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.1862">getMasterAddressTracker</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/zookeeper/MasterAddressTracker.html" title="class in org.apache.hadoop.hbase.zookeeper">MasterAddressTracker</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.1863">getMasterAddressTracker</a>()</pre>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>Master address tracker instance.</dd>
@@ -3111,7 +3111,7 @@ protected static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/ja
 <ul class="blockList">
 <li class="blockList">
 <h4>startServices</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.1880">startServices</a>()
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.1881">startServices</a>()
                     throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -3125,7 +3125,7 @@ protected static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/ja
 <ul class="blockList">
 <li class="blockList">
 <h4>initializeThreads</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.1976">initializeThreads</a>()
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.1977">initializeThreads</a>()
                         throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -3139,7 +3139,7 @@ protected static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/ja
 <ul class="blockList">
 <li class="blockList">
 <h4>registerConfigurationObservers</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.2023">registerConfigurationObservers</a>()</pre>
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.2024">registerConfigurationObservers</a>()</pre>
 </li>
 </ul>
 <a name="putUpWebUI--">
@@ -3148,7 +3148,7 @@ protected static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/ja
 <ul class="blockList">
 <li class="blockList">
 <h4>putUpWebUI</h4>
-<pre>private&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.2035">putUpWebUI</a>()
+<pre>private&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.2036">putUpWebUI</a>()
                 throws <a href="http://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">Puts up the webui.</div>
 <dl>
@@ -3165,7 +3165,7 @@ protected static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/ja
 <ul class="blockList">
 <li class="blockList">
 <h4>isHealthy</h4>
-<pre>private&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.2089">isHealthy</a>()</pre>
+<pre>private&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.2090">isHealthy</a>()</pre>
 </li>
 </ul>
 <a name="getWALs--">
@@ -3174,7 +3174,7 @@ protected static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/ja
 <ul class="blockList">
 <li class="blockList">
 <h4>getWALs</h4>
-<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/wal/WAL.html" title="interface in org.apache.hadoop.hbase.wal">WAL</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.2109">getWALs</a>()
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/wal/WAL.html" title="interface in org.apache.hadoop.hbase.wal">WAL</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.2110">getWALs</a>()
                   throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
@@ -3193,7 +3193,7 @@ protected static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/ja
 <ul class="blockList">
 <li class="blockList">
 <h4>getWAL</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/wal/WAL.html" title="interface in org.apache.hadoop.hbase.wal">WAL</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.2114">getWAL</a>(<a href="../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&nbsp;regionInfo)
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/wal/WAL.html" title="interface in org.apache.hadoop.hbase.wal">WAL</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.2115">getWAL</a>(<a href="../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&nbsp;regionInfo)
            throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
@@ -3212,7 +3212,7 @@ protected static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/ja
 <ul class="blockList">
 <li class="blockList">
 <h4>getWalRoller</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/LogRoller.html" title="class in org.apache.hadoop.hbase.regionserver">LogRoller</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.2132">getWalRoller</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/LogRoller.html" title="class in org.apache.hadoop.hbase.regionserver">LogRoller</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.2133">getWalRoller</a>()</pre>
 </li>
 </ul>
 <a name="getConnection--">
@@ -3221,7 +3221,7 @@ protected static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/ja
 <ul class="blockList">
 <li class="blockList">
 <h4>getConnection</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Connection.html" title="interface in org.apache.hadoop.hbase.client">Connection</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.2137">getConnection</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/Connection.html" title="interface in org.apache.hadoop.hbase.client">Connection</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.2138">getConnection</a>()</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/Server.html#getConnection--">Server</a></code></span></div>
 <div class="block">Returns a reference to the servers' connection.
 
@@ -3239,7 +3239,7 @@ protected static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/ja
 <ul class="blockList">
 <li class="blockList">
 <h4>getClusterConnection</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/ClusterConnection.html" title="interface in org.apache.hadoop.hbase.client">ClusterConnection</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.2142">getClusterConnection</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/ClusterConnection.html" title="interface in org.apache.hadoop.hbase.client">ClusterConnection</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.2143">getClusterConnection</a>()</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/Server.html#getClusterConnection--">Server</a></code></span></div>
 <div class="block">Returns a reference to the servers' cluster connection. Prefer <a href="../../../../../org/apache/hadoop/hbase/Server.html#getConnection--"><code>Server.getConnection()</code></a>.
 
@@ -3257,7 +3257,7 @@ protected static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/ja
 <ul class="blockList">
 <li class="blockList">
 <h4>getMetaTableLocator</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/zookeeper/MetaTableLocator.html" title="class in org.apache.hadoop.hbase.zookeeper">MetaTableLocator</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.2147">getMetaTableLocator</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/zookeeper/MetaTableLocator.html" title="class in org.apache.hadoop.hbase.zookeeper">MetaTableLocator</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.2148">getMetaTableLocator</a>()</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/Server.html#getMetaTableLocator--">Server</a></code></span></div>
 <div class="block">Returns instance of <a href="../../../../../org/apache/hadoop/hbase/zookeeper/MetaTableLocator.html" title="class in org.apache.hadoop.hbase.zookeeper"><code>MetaTableLocator</code></a>
  running inside this server. This MetaServerLocator is started and stopped by server, clients
@@ -3276,7 +3276,7 @@ protected static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/ja
 <ul class="blockList">
 <li class="blockList">
 <h4>stop</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.2152">stop</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;msg)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.2153">stop</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;msg)</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/Stoppable.html#stop-java.lang.String-">Stoppable</a></code></span></div>
 <div class="block">Stop this service.
  Implementers should favor logging errors over throwing RuntimeExceptions.</div>
@@ -3294,7 +3294,7 @@ protected static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/ja
 <ul class="blockList">
 <li class="blockList">
 <h4>stop</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.2162">stop</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;msg,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.2163">stop</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;msg,
                  boolean&nbsp;force,
                  <a href="../../../../../org/apache/hadoop/hbase/security/User.html" title="class in org.apache.hadoop.hbase.security">User</a>&nbsp;user)</pre>
 <div class="block">Stops the regionserver.</div>
@@ -3312,7 +3312,7 @@ protected static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/ja
 <ul class="blockList">
 <li class="blockList">
 <h4>waitForServerOnline</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.2184">waitForServerOnline</a>()</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.2185">waitForServerOnline</a>()</pre>
 </li>
 </ul>
 <a name="postOpenDeployTasks-org.apache.hadoop.hbase.regionserver.RegionServerServices.PostOpenDeployContext-">
@@ -3321,7 +3321,7 @@ protected static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/ja
 <ul class="blockList">
 <li class="blockList">
 <h4>postOpenDeployTasks</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.2198">postOpenDeployTasks</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionServerServices.PostOpenDeployContext.html" title="class in org.apache.hadoop.hbase.regionserver">RegionServerServices.PostOpenDeployContext</a>&nbsp;context)
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.2199">postOpenDeployTasks</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionServerServices.PostOpenDeployContext.html" title="class in org.apache.hadoop.hbase.regionserver">RegionServerServices.PostOpenDeployContext</a>&nbsp;context)
                          throws org.apache.zookeeper.KeeperException,
                                 <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionServerServices.html#postOpenDeployTasks-org.apache.hadoop.hbase.regionserver.RegionServerServices.PostOpenDeployContext-">RegionServerServices</a></code></span></div>
@@ -3344,7 +3344,7 @@ protected static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/ja
 <ul class="blockList">
 <li class="blockList">
 <h4>reportRegionStateTransition</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.2231">reportRegionStateTransition</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionServerServices.RegionStateTransitionContext.html" title="class in org.apache.hadoop.hbase.regionserver">RegionServerServices.RegionStateTransitionContext</a>&nbsp;context)</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.2232">reportRegionStateTransition</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionServerServices.RegionStateTransitionContext.html" title="class in org.apache.hadoop.hbase.regionserver">RegionServerServices.RegionStateTransitionContext</a>&nbsp;context)</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionServerServices.html#reportRegionStateTransition-org.apache.hadoop.hbase.regionserver.RegionServerServices.RegionStateTransitionContext-">RegionServerServices</a></code></span></div>
 <div class="block">Notify master that a handler requests to change a region state</div>
 <dl>
@@ -3359,7 +3359,7 @@ protected static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/ja
 <ul class="blockList">
 <li class="blockList">
 <h4>triggerFlushInPrimaryRegion</h4>
-<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.2329">triggerFlushInPrimaryRegion</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion</a>&nbsp;region)</pre>
+<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.2330">triggerFlushInPrimaryRegion</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion</a>&nbsp;region)</pre>
 <div class="block">Trigger a flush in the primary region replica if this region is a secondary replica. Does not
  block this thread. See RegionReplicaFlushHandler for details.</div>
 </li>
@@ -3370,7 +3370,7 @@ protected static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/ja
 <ul class="blockList">
 <li class="blockList">
 <h4>getRpcServer</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServerInterface.html" title="interface in org.apache.hadoop.hbase.ipc">RpcServerInterface</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.2351">getRpcServer</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/ipc/RpcServerInterface.html" title="interface in org.apache.hadoop.hbase.ipc">RpcServerInterface</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.2352">getRpcServer</a>()</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionServerServices.html#getRpcServer--">RegionServerServices</a></code></span></div>
 <div class="block">Returns a reference to the region server's RPC server</div>
 <dl>
@@ -3385,7 +3385,7 @@ protected static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/ja
 <ul class="blockList">
 <li class="blockList">
 <h4>getRSRpcServices</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/RSRpcServices.html" title="class in org.apache.hadoop.hbase.regionserver">RSRpcServices</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.2356">getRSRpcServices</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/RSRpcServices.html" title="class in org.apache.hadoop.hbase.regionserver">RSRpcServices</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.2357">getRSRpcServices</a>()</pre>
 </li>
 </ul>
 <a name="abort-java.lang.String-java.lang.Throwable-">
@@ -3394,7 +3394,7 @@ protected static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/ja
 <ul class="blockList">
 <li class="blockList">
 <h4>abort</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.2371">abort</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;reason,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.2372">abort</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;reason,
                   <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Throwable.html?is-external=true" title="class or interface in java.lang">Throwable</a>&nbsp;cause)</pre>
 <div class="block">Cause the server to exit without closing the regions it is serving, the log
  it is using and without notifying the master. Used unit testing and on
@@ -3414,7 +3414,7 @@ protected static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/ja
 <ul class="blockList">
 <li class="blockList">
 <h4>abort</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.2416">abort</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;reason)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.2417">abort</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;reason)</pre>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
 <dd><a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html#abort-java.lang.String-java.lang.Throwable-"><code>abort(String, Throwable)</code></a></dd>
@@ -3427,7 +3427,7 @@ protected static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/ja
 <ul class="blockList">
 <li class="blockList">
 <h4>isAborted</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.2421">isAborted</a>()</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.2422">isAborted</a>()</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/Abortable.html#isAborted--">Abortable</a></code></span></div>
 <div class="block">Check if the server or client was aborted.</div>
 <dl>
@@ -3444,7 +3444,7 @@ protected static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/ja
 <ul class="blockList">
 <li class="blockList">
 <h4>kill</h4>
-<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.2431">kill</a>()</pre>
+<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.2432">kill</a>()</pre>
 </li>
 </ul>
 <a name="sendShutdownInterrupt--">
@@ -3453,7 +3453,7 @@ protected static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/ja
 <ul class="blockList">
 <li class="blockList">
 <h4>sendShutdownInterrupt</h4>
-<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.2439">sendShutdownInterrupt</a>()</pre>
+<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.2440">sendShutdownInterrupt</a>()</pre>
 <div class="block">Called on stop/abort before closing the cluster connection and meta locator.</div>
 </li>
 </ul>
@@ -3463,7 +3463,7 @@ protected static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/ja
 <ul class="blockList">
 <li class="blockList">
 <h4>stopServiceThreads</h4>
-<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.2446">stopServiceThreads</a>()</pre>
+<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.2447">stopServiceThreads</a>()</pre>
 <div class="block">Wait on all threads to finish. Presumption is that all closes and stops
  have already been called.</div>
 </li>
@@ -3474,7 +3474,7 @@ protected static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/ja
 <ul class="blockList">
 <li class="blockList">
 <h4>getReplicationSourceService</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/ReplicationSourceService.html" title="interface in org.apache.hadoop.hbase.regionserver">ReplicationSourceService</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.2489">getReplicationSourceService</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/ReplicationSourceService.html" title="interface in org.apache.hadoop.hbase.regionserver">ReplicationSourceService</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.2490">getReplicationSourceService</a>()</pre>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>Return the object that implements the replication
@@ -3488,7 +3488,7 @@ protected static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/ja
 <ul class="blockList">
 <li class="blockList">
 <h4>getReplicationSinkService</h4>
-<pre><a href="../../../../../org/apache/hadoop/hbase/regionserver/ReplicationSinkService.html" title="interface in org.apache.hadoop.hbase.regionserver">ReplicationSinkService</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.2497">getReplicationSinkService</a>()</pre>
+<pre><a href="../../../../../org/apache/hadoop/hbase/regionserver/ReplicationSinkService.html" title="interface in org.apache.hadoop.hbase.regionserver">ReplicationSinkService</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.2498">getReplicationSinkService</a>()</pre>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>Return the object that implements the replication
@@ -3502,7 +3502,7 @@ protected static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/ja
 <ul class="blockList">
 <li class="blockList">
 <h4>createRegionServerStatusStub</h4>
-<pre>protected&nbsp;<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.2510">createRegionServerStatusStub</a>()</pre>
+<pre>protected&nbsp;<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.2511">createRegionServerStatusStub</a>()</pre>
 <div class="block">Get the current master from ZooKeeper and open the RPC connection to it.
  To get a fresh connection, the current rssStub must be null.
  Method will block until a master is available. You can break from this
@@ -3519,7 +3519,7 @@ protected static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/ja
 <ul class="blockList">
 <li class="blockList">
 <h4>createRegionServerStatusStub</h4>
-<pre>protected&nbsp;<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.2523">createRegionServerStatusStub</a>(boolean&nbsp;refresh)</pre>
+<pre>protected&nbsp;<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.2524">createRegionServerStatusStub</a>(boolean&nbsp;refresh)</pre>
 <div class="block">Get the current master from ZooKeeper and open the RPC connection to it. To get a fresh
  connection, the current rssStub must be null. Method will block until a master is available.
  You can break from this block by requesting the server stop.</div>
@@ -3537,7 +3537,7 @@ protected static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/ja
 <ul class="blockList">
 <li class="blockList">
 <h4>keepLooping</h4>
-<pre>private&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.2595">keepLooping</a>()</pre>
+<pre>private&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.2596">keepLooping</a>()</pre>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>True if we should break loop because cluster is going down or
@@ -3551,7 +3551,7 @@ protected static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/ja
 <ul class="blockList">
 <li class="blockList">
 <h4>reportForDuty</h4>
-<pre>private&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.RegionServerStatusProtos.RegionServerStartupResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.2606">reportForDuty</a>()
+<pre>private&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.RegionServerStatusProtos.RegionServerStartupResponse&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.2607">reportForDuty</a>()
                                                                                                                       throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -3565,7 +3565,7 @@ protected static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/ja
 <ul class="blockList">
 <li class="blockList">
 <h4>getLastSequenceId</h4>
-<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.ClusterStatusProtos.RegionStoreSequenceIds&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.2646">getLastSequenceId</a>(byte[]&nbsp;encodedRegionName)</pre>
+<pre>public&nbsp;org.apache.hadoop.hbase.shaded.protobuf.generated.ClusterStatusProtos.RegionStoreSequenceIds&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.2647">getLastSequenceId</a>(byte[]&nbsp;encodedRegionName)</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/LastSequenceId.html#getLastSequenceId-byte:A-">getLastSequenceId</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/LastSequenceId.html" title="interface in org.apache.hadoop.hbase.regionserver">LastSequenceId</a></code></dd>
@@ -3583,7 +3583,7 @@ protected static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/ja
 <ul class="blockList">
 <li class="blockList">
 <h4>closeAllRegions</h4>
-<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.2677">closeAllRegions</a>(boolean&nbsp;abort)</pre>
+<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.2678">closeAllRegions</a>(boolean&nbsp;abort)</pre>
 <div class="block">Closes all regions.  Called on our way out.
  Assumes that its not possible for new regions to be added to onlineRegions
  while this method runs.</div>
@@ -3595,7 +3595,7 @@ protected static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/ja
 <ul class="blockList">
 <li class="blockList">
 <h4>closeMetaTableRegions</h4>
-<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.2686">closeMetaTableRegions</a>(boolean&nbsp;abort)</pre>
+<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.2687">closeMetaTableRegions</a>(boolean&nbsp;abort)</pre>
 <div class="block">Close meta region if we carry it</div>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
@@ -3609,7 +3609,7 @@ protected static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/ja
 <ul class="blockList">
 <li class="blockList">
 <h4>closeUserRegions</h4>
-<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.2709">closeUserRegions</a>(boolean&nbsp;abort)</pre>
+<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.2710">closeUserRegions</a>(boolean&nbsp;abort)</pre>
 <div class="block">Schedule closes on all user regions.
  Should be safe calling multiple times because it wont' close regions
  that are already closed or that are closing.</div>
@@ -3625,7 +3625,7 @@ protected static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/ja
 <ul class="blockList">
 <li class="blockList">
 <h4>getInfoServer</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/http/InfoServer.html" title="class in org.apache.hadoop.hbase.http">InfoServer</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.2725">getInfoServer</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/http/InfoServer.html" title="class in org.apache.hadoop.hbase.http">InfoServer</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.2726">getInfoServer</a>()</pre>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>the info server</dd>
@@ -3638,7 +3638,7 @@ protected static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/ja
 <ul class="blockList">
 <li class="blockList">
 <h4>isStopped</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.2733">isStopped</a>()</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.2734">isStopped</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/Stoppable.html#isStopped--">isStopped</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/Stoppable.html" title="interface in org.apache.hadoop.hbase">Stoppable</a></code></dd>
@@ -3653,7 +3653,7 @@ protected static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/ja
 <ul class="blockList">
 <li class="blockList">
 <h4>isStopping</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.2738">isStopping</a>()</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.2739">isStopping</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/Server.html#isStopping--">isStopping</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/Server.html" title="interface in org.apache.hadoop.hbase">Server</a></code></dd>
@@ -3668,7 +3668,7 @@ protected static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/ja
 <ul class="blockList">
 <li class="blockList">
 <h4>getConfiguration</h4>
-<pre>public&nbsp;org.apache.hadoop.conf.Configuration&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.2747">getConfiguration</a>()</pre>
+<pre>public&nbsp;org.apache.hadoop.conf.Configuration&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.2748">getConfiguration</a>()</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/Server.html#getConfiguration--">Server</a></code></span></div>
 <div class="block">Gets the configuration object for this server.</div>
 <dl>
@@ -3685,7 +3685,7 @@ protected static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/ja
 <ul class="blockList">
 <li class="blockList">
 <h4>getWriteLock</h4>
-<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/locks/ReentrantReadWriteLock.WriteLock.html?is-external=true" title="class or interface in java.util.concurrent.locks">ReentrantReadWriteLock.WriteLock</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.2752">getWriteLock</a>()</pre>
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/locks/ReentrantReadWriteLock.WriteLock.html?is-external=true" title="class or interface in java.util.concurrent.locks">ReentrantReadWriteLock.WriteLock</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.2753">getWriteLock</a>()</pre>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>the write lock for the server</dd>
@@ -3698,7 +3698,7 @@ protected static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/ja
 <ul class="blockList">
 <li class="blockList">
 <h4>getNumberOfOnlineRegions</h4>
-<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.2756">getNumberOfOnlineRegions</a>()</pre>
+<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.2757">getNumberOfOnlineRegions</a>()</pre>
 </li>
 </ul>
 <a name="isOnlineRegionsEmpty--">
@@ -3707,7 +3707,7 @@ protected static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/ja
 <ul class="blockList">
 <li class="blockList">
 <h4>isOnlineRegionsEmpty</h4>
-<pre>boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.2760">isOnlineRegionsEmpty</a>()</pre>
+<pre>boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.2761">isOnlineRegionsEmpty</a>()</pre>
 </li>
 </ul>
 <a name="getOnlineRegionsLocalContext--">
@@ -3716,7 +3716,7 @@ protected static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/ja
 <ul class="blockList">
 <li class="blockList">
 <h4>getOnlineRegionsLocalContext</h4>
-<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.2769">getOnlineRegionsLocalContext</a>()</pre>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.2770">getOnlineRegionsLocalContext</a>()</pre>
 <div class="block">For tests, web ui and metrics.
  This method will only work if HRegionServer is in the same JVM as client;
  HRegion cannot be serialized to cross an rpc.</div>
@@ -3728,7 +3728,7 @@ protected static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/ja
 <ul class="blockList">
 <li class="blockList">
 <h4>addRegion</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.2775">addRegion</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion</a>&nbsp;region)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.2776">addRegion</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion</a>&nbsp;region)</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MutableOnlineRegions.html#addRegion-org.apache.hadoop.hbase.regionserver.HRegion-">MutableOnlineRegions</a></code></span></div>
 <div class="block">Add to online regions.</div>
 <dl>
@@ -3743,7 +3743,7 @@ protected static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/ja
 <ul class="blockList">
 <li class="blockList">
 <h4>getCopyOfOnlineRegionsSortedBySize</h4>
-<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/util/SortedMap.html?is-external=true" title="class or interface in java.util">SortedMap</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Long.html?is-external=true" title="class or interface in java.lang">Long</a>,<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.2785">getCopyOfOnlineRegionsSortedBySize</a>()</pre>
+<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/util/SortedMap.html?is-external=true" title="class or interface in java.util">SortedMap</a>&lt;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Long.html?is-external=true" title="class or interface in java.lang">Long</a>,<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.2786">getCopyOfOnlineRegionsSortedBySize</a>()</pre>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>A new Map of online regions sorted by region size with the first entry being the
@@ -3758,7 +3758,7 @@ protected static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/ja
 <ul class="blockList">
 <li class="blockList">
 <h4>getStartcode</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.2804">getStartcode</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.2805">getStartcode</a>()</pre>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>time stamp in millis of when this region server was started</dd>
@@ -3771,7 +3771,7 @@ protected static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/ja
 <ul class="blockList">
 <li class="blockList">
 <h4>getFlushRequester</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/FlushRequester.html" title="interface in org.apache.hadoop.hbase.regionserver">FlushRequester</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.2810">getFlushRequester</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/FlushRequester.html" title="interface in org.apache.hadoop.hbase.regionserver">FlushRequester</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.2811">getFlushRequester</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionServerServices.html#getFlushRequester--">getFlushRequester</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionServerServices.html" title="interface in org.apache.hadoop.hbase.regionserver">RegionServerServices</a></code></dd>
@@ -3786,7 +3786,7 @@ protected static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/ja
 <ul class="blockList">
 <li class="blockList">
 <h4>getCompactionRequestor</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/compactions/CompactionRequester.html" title="interface in org.apache.hadoop.hbase.regionserver.compactions">CompactionRequester</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.2815">getCompactionRequestor</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/compactions/CompactionRequester.html" title="interface in org.apache.hadoop.hbase.regionserver.compactions">CompactionRequester</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.2816">getCompactionRequestor</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionServerServices.html#getCompactionRequestor--">getCompactionRequestor</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionServerServices.html" title="interface in org.apache.hadoop.hbase.regionserver">RegionServerServices</a></code></dd>
@@ -3802,7 +3802,7 @@ protected static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/ja
 <ul class="blockList">
 <li class="blockList">
 <h4>getMostLoadedRegions</h4>
-<pre>protected&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>[]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.2825">getMostLoadedRegions</a>()</pre>
+<pre>protected&nbsp;<a href="../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>[]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.2826">getMostLoadedRegions</a>()</pre>
 <div class="block">Get the top N most loaded regions this server is serving so we can tell the
  master which regions it can reallocate if we're overloaded. TODO: actually
  calculate which regions are most loaded. (Right now, we're just grabbing
@@ -3815,7 +3815,7 @@ protected static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/ja
 <ul class="blockList">
 <li class="blockList">
 <h4>getLeases</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/Leases.html" title="class in org.apache.hadoop.hbase.regionserver">Leases</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.2841">getLeases</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/Leases.html" title="class in org.apache.hadoop.hbase.regionserver">Leases</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.2842">getLeases</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionServerServices.html#getLeases--">getLeases</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionServerServices.html" title="interface in org.apache.hadoop.hbase.regionserver">RegionServerServices</a></code></dd>
@@ -3830,7 +3830,7 @@ protected static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/ja
 <ul class="blockList">
 <li class="blockList">
 <h4>getRootDir</h4>
-<pre>protected&nbsp;org.apache.hadoop.fs.Path&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.2848">getRootDir</a>()</pre>
+<pre>protected&nbsp;org.apache.hadoop.fs.Path&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.2849">getRootDir</a>()</pre>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>Return the rootDir.</dd>
@@ -3843,7 +3843,7 @@ protected static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/ja
 <ul class="blockList">
 <li class="blockList">
 <h4>getFileSystem</h4>
-<pre>public&nbsp;org.apache.hadoop.fs.FileSystem&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.2856">getFileSystem</a>()</pre>
+<pre>public&nbsp;org.apache.hadoop.fs.FileSystem&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.2857">getFileSystem</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/Server.html#getFileSystem--">getFileSystem</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/Server.html" title="interface in org.apache.hadoop.hbase">Server</a></code></dd>
@@ -3858,7 +3858,7 @@ protected static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/ja
 <ul class="blockList">
 <li class="blockList">
 <h4>getWALRootDir</h4>
-<pre>protected&nbsp;org.apache.hadoop.fs.Path&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.2863">getWALRootDir</a>()</pre>
+<pre>protected&nbsp;org.apache.hadoop.fs.Path&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.2864">getWALRootDir</a>()</pre>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>Return the walRootDir.</dd>
@@ -3871,7 +3871,7 @@ protected static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/ja
 <ul class="blockList">
 <li class="blockList">
 <h4>getWALFileSystem</h4>
-<pre>protected&nbsp;org.apache.hadoop.fs.FileSystem&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.2870">getWALFileSystem</a>()</pre>
+<pre>protected&nbsp;org.apache.hadoop.fs.FileSystem&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.2871">getWALFileSystem</a>()</pre>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
 <dd>Return the walFs.</dd>
@@ -3884,7 +3884,7 @@ protected static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/ja
 <ul class="blockList">
 <li class="blockList">
 <h4>toString</h4>
-<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.2875">toString</a>()</pre>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.2876">toString</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
 <dd><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a></code>&nbsp;in class&nbsp;<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></dd>
@@ -3897,7 +3897,7 @@ protected static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/ja
 <ul class="blockList">
 <li class="blockList">
 <h4>getThreadWakeFrequency</h4>
-<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.2884">getThreadWakeFrequency</a>()</pre>
+<pre>public&nbsp;int&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.2885">getThreadWakeFrequency</a>()</pre>
 <div class="block">Interval at which threads should run</div>
 <dl>
 <dt><span class="returnLabel">Returns:</span></dt>
@@ -3911,7 +3911,7 @@ protected static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/ja
 <ul class="blockList">
 <li class="blockList">
 <h4>getZooKeeper</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/zookeeper/ZKWatcher.html" title="class in org.apache.hadoop.hbase.zookeeper">ZKWatcher</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.2889">getZooKeeper</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/zookeeper/ZKWatcher.html" title="class in org.apache.hadoop.hbase.zookeeper">ZKWatcher</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.2890">getZooKeeper</a>()</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/Server.html#getZooKeeper--">Server</a></code></span></div>
 <div class="block">Gets the ZooKeeper instance for this server.</div>
 <dl>
@@ -3926,7 +3926,7 @@ protected static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/ja
 <ul class="blockList">
 <li class="blockList">
 <h4>getCoordinatedStateManager</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/CoordinatedStateManager.html" title="interface in org.apache.hadoop.hbase">CoordinatedStateManager</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.2894">getCoordinatedStateManager</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/CoordinatedStateManager.html" title="interface in org.apache.hadoop.hbase">CoordinatedStateManager</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.2895">getCoordinatedStateManager</a>()</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/Server.html#getCoordinatedStateManager--">Server</a></code></span></div>
 <div class="block">Get CoordinatedStateManager instance for this server.</div>
 <dl>
@@ -3941,7 +3941,7 @@ protected static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/ja
 <ul class="blockList">
 <li class="blockList">
 <h4>getServerName</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.2899">getServerName</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.2900">getServerName</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/Server.html#getServerName--">getServerName</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/Server.html" title="interface in org.apache.hadoop.hbase">Server</a></code></dd>
@@ -3956,7 +3956,7 @@ protected static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/ja
 <ul class="blockList">
 <li class="blockList">
 <h4>getRegionServerCoprocessorHost</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionServerCoprocessorHost.html" title="class in org.apache.hadoop.hbase.regionserver">RegionServerCoprocessorHost</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.2903">getRegionServerCoprocessorHost</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionServerCoprocessorHost.html" title="class in org.apache.hadoop.hbase.regionserver">RegionServerCoprocessorHost</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.2904">getRegionServerCoprocessorHost</a>()</pre>
 </li>
 </ul>
 <a name="getRegionsInTransitionInRS--">
@@ -3965,7 +3965,7 @@ protected static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/ja
 <ul class="blockList">
 <li class="blockList">
 <h4>getRegionsInTransitionInRS</h4>
-<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ConcurrentMap.html?is-external=true" title="class or interface in java.util.concurrent">ConcurrentMap</a>&lt;byte[],<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.2908">getRegionsInTransitionInRS</a>()</pre>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ConcurrentMap.html?is-external=true" title="class or interface in java.util.concurrent">ConcurrentMap</a>&lt;byte[],<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html?is-external=true" title="class or interface in java.lang">Boolean</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.2909">getRegionsInTransitionInRS</a>()</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionServerServices.html#getRegionsInTransitionInRS--">RegionServerServices</a></code></span></div>
 <div class="block">Get the regions that are currently being opened or closed in the RS</div>
 <dl>
@@ -3982,7 +3982,7 @@ protected static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/ja
 <ul class="blockList">
 <li class="blockList">
 <h4>getExecutorService</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/executor/ExecutorService.html" title="class in org.apache.hadoop.hbase.executor">ExecutorService</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.2913">getExecutorService</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/executor/ExecutorService.html" title="class in org.apache.hadoop.hbase.executor">ExecutorService</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.2914">getExecutorService</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionServerServices.html#getExecutorService--">getExecutorService</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionServerServices.html" title="interface in org.apache.hadoop.hbase.regionserver">RegionServerServices</a></code></dd>
@@ -3997,7 +3997,7 @@ protected static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/ja
 <ul class="blockList">
 <li class="blockList">
 <h4>getChoreService</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/ChoreService.html" title="class in org.apache.hadoop.hbase">ChoreService</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.2918">getChoreService</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/ChoreService.html" title="class in org.apache.hadoop.hbase">ChoreService</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.2919">getChoreService</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/Server.html#getChoreService--">getChoreService</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/Server.html" title="interface in org.apache.hadoop.hbase">Server</a></code></dd>
@@ -4012,7 +4012,7 @@ protected static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/ja
 <ul class="blockList">
 <li class="blockList">
 <h4>getRegionServerRpcQuotaManager</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/quotas/RegionServerRpcQuotaManager.html" title="class in org.apache.hadoop.hbase.quotas">RegionServerRpcQuotaManager</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.2923">getRegionServerRpcQuotaManager</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/quotas/RegionServerRpcQuotaManager.html" title="class in org.apache.hadoop.hbase.quotas">RegionServerRpcQuotaManager</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.2924">getRegionServerRpcQuotaManager</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionServerServices.html#getRegionServerRpcQuotaManager--">getRegionServerRpcQuotaManager</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionServerServices.html" title="interface in org.apache.hadoop.hbase.regionserver">RegionServerServices</a></code></dd>
@@ -4027,7 +4027,7 @@ protected static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/ja
 <ul class="blockList">
 <li class="blockList">
 <h4>createNewReplicationInstance</h4>
-<pre>private static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.2934">createNewReplicationInstance</a>(org.apache.hadoop.conf.Configuration&nbsp;conf,
+<pre>private static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.2935">createNewReplicationInstance</a>(org.apache.hadoop.conf.Configuration&nbsp;conf,
                                                  <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html" title="class in org.apache.hadoop.hbase.regionserver">HRegionServer</a>&nbsp;server,
                                                  org.apache.hadoop.fs.FileSystem&nbsp;walFs,
                                                  org.apache.hadoop.fs.Path&nbsp;walDir,
@@ -4046,7 +4046,7 @@ protected static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/ja
 <ul class="blockList">
 <li class="blockList">
 <h4>newReplicationInstance</h4>
-<pre>private static&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/ReplicationService.html" title="interface in org.apache.hadoop.hbase.regionserver">ReplicationService</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.2966">newReplicationInstance</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;classname,
+<pre>private static&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/ReplicationService.html" title="interface in org.apache.hadoop.hbase.regionserver">ReplicationService</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.2967">newReplicationInstance</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;classname,
                                                          org.apache.hadoop.conf.Configuration&nbsp;conf,
                                                          <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html" title="class in org.apache.hadoop.hbase.regionserver">HRegionServer</a>&nbsp;server,
                                                          org.apache.hadoop.fs.FileSystem&nbsp;walFs,
@@ -4065,7 +4065,7 @@ protected static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/ja
 <ul class="blockList">
 <li class="blockList">
 <h4>constructRegionServer</h4>
-<pre>public static&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html" title="class in org.apache.hadoop.hbase.regionserver">HRegionServer</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.2988">constructRegionServer</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;? extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html" title="class in org.apache.hadoop.hbase.regionserver">HRegionServer</a>&gt;&nbsp;regionServerClass,
+<pre>public static&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html" title="class in org.apache.hadoop.hbase.regionserver">HRegionServer</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.2989">constructRegionServer</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;? extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html" title="class in org.apache.hadoop.hbase.regionserver">HRegionServer</a>&gt;&nbsp;regionServerClass,
                                                   org.apache.hadoop.conf.Configuration&nbsp;conf2)</pre>
 <div class="block">Utility for constructing an instance of the passed HRegionServer class.</div>
 <dl>
@@ -4083,7 +4083,7 @@ protected static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/ja
 <ul class="blockList">
 <li class="blockList">
 <h4>main</h4>
-<pre>public static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.3004">main</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[]&nbsp;args)
+<pre>public static&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.3005">main</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[]&nbsp;args)
                  throws <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</a></pre>
 <dl>
 <dt><span class="throwsLabel">Throws:</span></dt>
@@ -4099,7 +4099,7 @@ protected static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/ja
 <ul class="blockList">
 <li class="blockList">
 <h4>getRegions</h4>
-<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.3026">getRegions</a>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</pre>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.3027">getRegions</a>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tableName)</pre>
 <div class="block">Gets the online regions of the specified table.
  This method looks at the in-memory onlineRegions.  It does not go to <code>hbase:meta</code>.
  Only returns <em>online</em> regions.  If a region on this table has been
@@ -4122,7 +4122,7 @@ protected static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/ja
 <ul class="blockList">
 <li class="blockList">
 <h4>getRegions</h4>
-<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.3040">getRegions</a>()</pre>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.3041">getRegions</a>()</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/regionserver/OnlineRegions.html#getRegions--">OnlineRegions</a></code></span></div>
 <div class="block">Get all online regions in this RS.</div>
 <dl>
@@ -4139,7 +4139,7 @@ protected static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/ja
 <ul class="blockList">
 <li class="blockList">
 <h4>getOnlineTables</h4>
-<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.3054">getOnlineTables</a>()</pre>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&gt;&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.3055">getOnlineTables</a>()</pre>
 <div class="block">Gets the online tables in this RS.
  This method looks at the in-memory onlineRegions.</div>
 <dl>
@@ -4154,7 +4154,7 @@ protected static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/ja
 <ul class="blockList">
 <li class="blockList">
 <h4>getRegionServerCoprocessors</h4>
-<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.3065">getRegionServerCoprocessors</a>()</pre>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>[]&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.3066">getRegionServerCoprocessors</a>()</pre>
 </li>
 </ul>
 <a name="closeRegionIgnoreErrors-org.apache.hadoop.hbase.client.RegionInfo-boolean-">
@@ -4163,7 +4163,7 @@ protected static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/ja
 <ul class="blockList">
 <li class="blockList">
 <h4>closeRegionIgnoreErrors</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.3093">closeRegionIgnoreErrors</a>(<a href="../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&nbsp;region,
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.3094">closeRegionIgnoreErrors</a>(<a href="../../../../../org/apache/hadoop/hbase/client/RegionInfo.html" title="interface in org.apache.hadoop.hbase.client">RegionInfo</a>&nbsp;region,
                                      boolean&nbsp;abort)</pre>
 <div class="block">Try to close the region, logs a warning on failure but continues.</div>
 <dl>
@@ -4178,7 +4178,7 @@ protected static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/ja
 <ul class="blockList">
 <li class="blockList">
 <h4>closeRegion</h4>
-<pre>protected&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.3123">closeRegion</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;encodedName,
+<pre>protected&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.3124">closeRegion</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;encodedName,
                               boolean&nbsp;abort,
                               <a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;sn)
                        throws <a href="../../../../../org/apache/hadoop/hbase/NotServingRegionException.html" title="class in org.apache.hadoop.hbase">NotServingRegionException</a></pre>
@@ -4210,7 +4210,7 @@ protected static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/ja
 <ul class="blockList">
 <li class="blockList">
 <h4>closeAndOfflineRegionForSplitOrMerge</h4>
-<pre>protected&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.3190">closeAndOfflineRegionForSplitOrMerge</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="http://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;regionEncodedName)
+<pre>protected&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.3191">closeAndOfflineRegionForSplitOrMerge</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="http://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;regionEncodedName)
                                                 throws <a href="http://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">Close and offline the region for split or merge</div>
 <dl>
@@ -4229,7 +4229,7 @@ protected static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/ja
 <ul class="blockList">
 <li class="blockList">
 <h4>getOnlineRegion</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.3245">getOnlineRegion</a>(byte[]&nbsp;regionName)</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegion.html" title="class in org.apache.hadoop.hbase.regionserver">HRegion</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.3246">getOnlineRegion</a>(byte[]&nbsp;regionName)</pre>
 <dl>
 <dt><span class="paramLabel">Parameters:</span></dt>
 <dd><code>regionName</code> - </dd>
@@ -4245,7 +4245,7 @@ protected static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/ja
 <ul

<TRUNCATED>

[02/32] hbase-site git commit: Published site at .

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/29b27596/testdevapidocs/org/apache/hadoop/hbase/regionserver/TestMetricsTableLatencies.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/regionserver/TestMetricsTableLatencies.html b/testdevapidocs/org/apache/hadoop/hbase/regionserver/TestMetricsTableLatencies.html
new file mode 100644
index 0000000..81a9112
--- /dev/null
+++ b/testdevapidocs/org/apache/hadoop/hbase/regionserver/TestMetricsTableLatencies.html
@@ -0,0 +1,313 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>TestMetricsTableLatencies (Apache HBase 3.0.0-SNAPSHOT Test API)</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="TestMetricsTableLatencies (Apache HBase 3.0.0-SNAPSHOT Test API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/TestMetricsTableLatencies.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/hadoop/hbase/regionserver/TestMetricsTableAggregate.html" title="class in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/regionserver/TestMetricsTableSourceImpl.html" title="class in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/hadoop/hbase/regionserver/TestMetricsTableLatencies.html" target="_top">Frames</a></li>
+<li><a href="TestMetricsTableLatencies.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.hadoop.hbase.regionserver</div>
+<h2 title="Class TestMetricsTableLatencies" class="title">Class TestMetricsTableLatencies</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.hadoop.hbase.regionserver.TestMetricsTableLatencies</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<br>
+<pre>public class <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/TestMetricsTableLatencies.html#line.33">TestMetricsTableLatencies</a>
+extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></pre>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== FIELD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field.summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Field Summary table, listing fields, and an explanation">
+<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Field and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../org/apache/hadoop/hbase/test/MetricsAssertHelper.html" title="interface in org.apache.hadoop.hbase.test">MetricsAssertHelper</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/TestMetricsTableLatencies.html#HELPER">HELPER</a></span></code>&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/TestMetricsTableLatencies.html#TestMetricsTableLatencies--">TestMetricsTableLatencies</a></span>()</code>&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/TestMetricsTableLatencies.html#testTableWrapperAggregateMetrics--">testTableWrapperAggregateMetrics</a></span>()</code>&nbsp;</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang
 /Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ FIELD DETAIL =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field.detail">
+<!--   -->
+</a>
+<h3>Field Detail</h3>
+<a name="HELPER">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>HELPER</h4>
+<pre>public static&nbsp;<a href="../../../../../org/apache/hadoop/hbase/test/MetricsAssertHelper.html" title="interface in org.apache.hadoop.hbase.test">MetricsAssertHelper</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/TestMetricsTableLatencies.html#line.35">HELPER</a></pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="TestMetricsTableLatencies--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>TestMetricsTableLatencies</h4>
+<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/TestMetricsTableLatencies.html#line.33">TestMetricsTableLatencies</a>()</pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="testTableWrapperAggregateMetrics--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>testTableWrapperAggregateMetrics</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/TestMetricsTableLatencies.html#line.39">testTableWrapperAggregateMetrics</a>()
+                                      throws <a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
+<dl>
+<dt><span class="throwsLabel">Throws:</span></dt>
+<dd><code><a href="http://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/TestMetricsTableLatencies.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/hadoop/hbase/regionserver/TestMetricsTableAggregate.html" title="class in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/regionserver/TestMetricsTableSourceImpl.html" title="class in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/hadoop/hbase/regionserver/TestMetricsTableLatencies.html" target="_top">Frames</a></li>
+<li><a href="TestMetricsTableLatencies.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2007&#x2013;2017 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/29b27596/testdevapidocs/org/apache/hadoop/hbase/regionserver/TestMetricsTableSourceImpl.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/regionserver/TestMetricsTableSourceImpl.html b/testdevapidocs/org/apache/hadoop/hbase/regionserver/TestMetricsTableSourceImpl.html
index 2e9bbc9..6d93b6a 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/regionserver/TestMetricsTableSourceImpl.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/regionserver/TestMetricsTableSourceImpl.html
@@ -49,7 +49,7 @@ var activeTableTab = "activeTableTab";
 </div>
 <div class="subNav">
 <ul class="navList">
-<li><a href="../../../../../org/apache/hadoop/hbase/regionserver/TestMetricsTableAggregate.html" title="class in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/regionserver/TestMetricsTableLatencies.html" title="class in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
 <li><a href="../../../../../org/apache/hadoop/hbase/regionserver/TestMetricsTableSourceImpl.TableWrapperStub.html" title="class in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
 </ul>
 <ul class="navList">
@@ -287,7 +287,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 </div>
 <div class="subNav">
 <ul class="navList">
-<li><a href="../../../../../org/apache/hadoop/hbase/regionserver/TestMetricsTableAggregate.html" title="class in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/regionserver/TestMetricsTableLatencies.html" title="class in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
 <li><a href="../../../../../org/apache/hadoop/hbase/regionserver/TestMetricsTableSourceImpl.TableWrapperStub.html" title="class in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
 </ul>
 <ul class="navList">

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/29b27596/testdevapidocs/org/apache/hadoop/hbase/regionserver/class-use/TestMetricsTableLatencies.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/regionserver/class-use/TestMetricsTableLatencies.html b/testdevapidocs/org/apache/hadoop/hbase/regionserver/class-use/TestMetricsTableLatencies.html
new file mode 100644
index 0000000..a469feb
--- /dev/null
+++ b/testdevapidocs/org/apache/hadoop/hbase/regionserver/class-use/TestMetricsTableLatencies.html
@@ -0,0 +1,125 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.hadoop.hbase.regionserver.TestMetricsTableLatencies (Apache HBase 3.0.0-SNAPSHOT Test API)</title>
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.hadoop.hbase.regionserver.TestMetricsTableLatencies (Apache HBase 3.0.0-SNAPSHOT Test API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/hadoop/hbase/regionserver/TestMetricsTableLatencies.html" title="class in org.apache.hadoop.hbase.regionserver">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../../../../../../overview-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/hadoop/hbase/regionserver/class-use/TestMetricsTableLatencies.html" target="_top">Frames</a></li>
+<li><a href="TestMetricsTableLatencies.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.hadoop.hbase.regionserver.TestMetricsTableLatencies" class="title">Uses of Class<br>org.apache.hadoop.hbase.regionserver.TestMetricsTableLatencies</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.hadoop.hbase.regionserver.TestMetricsTableLatencies</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/hadoop/hbase/regionserver/TestMetricsTableLatencies.html" title="class in org.apache.hadoop.hbase.regionserver">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../../../../../../overview-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/hadoop/hbase/regionserver/class-use/TestMetricsTableLatencies.html" target="_top">Frames</a></li>
+<li><a href="TestMetricsTableLatencies.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2007&#x2013;2017 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/29b27596/testdevapidocs/org/apache/hadoop/hbase/regionserver/package-frame.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/regionserver/package-frame.html b/testdevapidocs/org/apache/hadoop/hbase/regionserver/package-frame.html
index e302c33..2419524 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/regionserver/package-frame.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/regionserver/package-frame.html
@@ -149,6 +149,7 @@
 <li><a href="TestMetricsRegionSourceImpl.html" title="class in org.apache.hadoop.hbase.regionserver" target="classFrame">TestMetricsRegionSourceImpl</a></li>
 <li><a href="TestMetricsRegionSourceImpl.RegionWrapperStub.html" title="class in org.apache.hadoop.hbase.regionserver" target="classFrame">TestMetricsRegionSourceImpl.RegionWrapperStub</a></li>
 <li><a href="TestMetricsTableAggregate.html" title="class in org.apache.hadoop.hbase.regionserver" target="classFrame">TestMetricsTableAggregate</a></li>
+<li><a href="TestMetricsTableLatencies.html" title="class in org.apache.hadoop.hbase.regionserver" target="classFrame">TestMetricsTableLatencies</a></li>
 <li><a href="TestMetricsTableSourceImpl.html" title="class in org.apache.hadoop.hbase.regionserver" target="classFrame">TestMetricsTableSourceImpl</a></li>
 <li><a href="TestMetricsTableSourceImpl.TableWrapperStub.html" title="class in org.apache.hadoop.hbase.regionserver" target="classFrame">TestMetricsTableSourceImpl.TableWrapperStub</a></li>
 <li><a href="TestMiniBatchOperationInProgress.html" title="class in org.apache.hadoop.hbase.regionserver" target="classFrame">TestMiniBatchOperationInProgress</a></li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/29b27596/testdevapidocs/org/apache/hadoop/hbase/regionserver/package-summary.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/regionserver/package-summary.html b/testdevapidocs/org/apache/hadoop/hbase/regionserver/package-summary.html
index 53348ea..85deb89 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/regionserver/package-summary.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/regionserver/package-summary.html
@@ -759,566 +759,570 @@
 <td class="colLast">&nbsp;</td>
 </tr>
 <tr class="rowColor">
+<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/regionserver/TestMetricsTableLatencies.html" title="class in org.apache.hadoop.hbase.regionserver">TestMetricsTableLatencies</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/regionserver/TestMetricsTableSourceImpl.html" title="class in org.apache.hadoop.hbase.regionserver">TestMetricsTableSourceImpl</a></td>
 <td class="colLast">
 <div class="block">Test for MetricsTableSourceImpl</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/regionserver/TestMetricsTableSourceImpl.TableWrapperStub.html" title="class in org.apache.hadoop.hbase.regionserver">TestMetricsTableSourceImpl.TableWrapperStub</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/regionserver/TestMiniBatchOperationInProgress.html" title="class in org.apache.hadoop.hbase.regionserver">TestMiniBatchOperationInProgress</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/regionserver/TestMinorCompaction.html" title="class in org.apache.hadoop.hbase.regionserver">TestMinorCompaction</a></td>
 <td class="colLast">
 <div class="block">Test minor compactions</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/regionserver/TestMinVersions.html" title="class in org.apache.hadoop.hbase.regionserver">TestMinVersions</a></td>
 <td class="colLast">
 <div class="block">Test Minimum Versions feature (HBASE-4071).</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/regionserver/TestMobStoreCompaction.html" title="class in org.apache.hadoop.hbase.regionserver">TestMobStoreCompaction</a></td>
 <td class="colLast">
 <div class="block">Test mob store compaction</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/regionserver/TestMobStoreScanner.html" title="class in org.apache.hadoop.hbase.regionserver">TestMobStoreScanner</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/regionserver/TestMultiColumnScanner.html" title="class in org.apache.hadoop.hbase.regionserver">TestMultiColumnScanner</a></td>
 <td class="colLast">
 <div class="block">Tests optimized scanning of multiple columns.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/regionserver/TestMultiLogThreshold.html" title="class in org.apache.hadoop.hbase.regionserver">TestMultiLogThreshold</a></td>
 <td class="colLast">
 <div class="block">Tests logging of large batch commands via Multi.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/regionserver/TestMultiVersionConcurrencyControl.html" title="class in org.apache.hadoop.hbase.regionserver">TestMultiVersionConcurrencyControl</a></td>
 <td class="colLast">
 <div class="block">This is a hammer test that verifies MultiVersionConcurrencyControl in a
  multiple writer single reader scenario.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/regionserver/TestMultiVersionConcurrencyControl.Writer.html" title="class in org.apache.hadoop.hbase.regionserver">TestMultiVersionConcurrencyControl.Writer</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/regionserver/TestMultiVersionConcurrencyControlBasic.html" title="class in org.apache.hadoop.hbase.regionserver">TestMultiVersionConcurrencyControlBasic</a></td>
 <td class="colLast">
 <div class="block">Very basic tests.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/regionserver/TestMutateRowsRecovery.html" title="class in org.apache.hadoop.hbase.regionserver">TestMutateRowsRecovery</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/regionserver/TestNewVersionBehaviorFromClientSide.html" title="class in org.apache.hadoop.hbase.regionserver">TestNewVersionBehaviorFromClientSide</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/regionserver/TestObservedExceptionsInBatch.html" title="class in org.apache.hadoop.hbase.regionserver">TestObservedExceptionsInBatch</a></td>
 <td class="colLast">
 <div class="block">Test class for <code>HRegion.ObservedExceptionsInBatch</code>.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/regionserver/TestParallelPut.html" title="class in org.apache.hadoop.hbase.regionserver">TestParallelPut</a></td>
 <td class="colLast">
 <div class="block">Testing of multiPut in parallel.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/regionserver/TestParallelPut.Putter.html" title="class in org.apache.hadoop.hbase.regionserver">TestParallelPut.Putter</a></td>
 <td class="colLast">
 <div class="block">A thread that makes a few put calls</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/regionserver/TestPerColumnFamilyFlush.html" title="class in org.apache.hadoop.hbase.regionserver">TestPerColumnFamilyFlush</a></td>
 <td class="colLast">
 <div class="block">This test verifies the correctness of the Per Column Family flushing strategy</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/regionserver/TestPriorityRpc.html" title="class in org.apache.hadoop.hbase.regionserver">TestPriorityRpc</a></td>
 <td class="colLast">
 <div class="block">Tests that verify certain RPCs get a higher QoS.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/regionserver/TestQosFunction.html" title="class in org.apache.hadoop.hbase.regionserver">TestQosFunction</a></td>
 <td class="colLast">
 <div class="block">Basic test that qos function is sort of working; i.e.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/regionserver/TestRecoveredEdits.html" title="class in org.apache.hadoop.hbase.regionserver">TestRecoveredEdits</a></td>
 <td class="colLast">
 <div class="block">Tests around replay of recovered.edits content.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/regionserver/TestRegionFavoredNodes.html" title="class in org.apache.hadoop.hbase.regionserver">TestRegionFavoredNodes</a></td>
 <td class="colLast">
 <div class="block">Tests the ability to specify favored nodes for a region.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/regionserver/TestRegionIncrement.html" title="class in org.apache.hadoop.hbase.regionserver">TestRegionIncrement</a></td>
 <td class="colLast">
 <div class="block">Increments with some concurrency against a region to ensure we get the right answer.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/regionserver/TestRegionIncrement.CrossRowCellIncrementer.html" title="class in org.apache.hadoop.hbase.regionserver">TestRegionIncrement.CrossRowCellIncrementer</a></td>
 <td class="colLast">
 <div class="block">Increments a random row's Cell <code>count</code> times.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/regionserver/TestRegionIncrement.SingleCellIncrementer.html" title="class in org.apache.hadoop.hbase.regionserver">TestRegionIncrement.SingleCellIncrementer</a></td>
 <td class="colLast">
 <div class="block">Increments a single cell a bunch of times.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/regionserver/TestRegionInfoBuilder.html" title="class in org.apache.hadoop.hbase.regionserver">TestRegionInfoBuilder</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/regionserver/TestRegionMergeTransactionOnCluster.html" title="class in org.apache.hadoop.hbase.regionserver">TestRegionMergeTransactionOnCluster</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/regionserver/TestRegionMergeTransactionOnCluster.MyMaster.html" title="class in org.apache.hadoop.hbase.regionserver">TestRegionMergeTransactionOnCluster.MyMaster</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/regionserver/TestRegionMergeTransactionOnCluster.MyMasterRpcServices.html" title="class in org.apache.hadoop.hbase.regionserver">TestRegionMergeTransactionOnCluster.MyMasterRpcServices</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/regionserver/TestRegionOpen.html" title="class in org.apache.hadoop.hbase.regionserver">TestRegionOpen</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/regionserver/TestRegionReplicaFailover.html" title="class in org.apache.hadoop.hbase.regionserver">TestRegionReplicaFailover</a></td>
 <td class="colLast">
 <div class="block">Tests failover of secondary region replicas.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/regionserver/TestRegionReplicas.html" title="class in org.apache.hadoop.hbase.regionserver">TestRegionReplicas</a></td>
 <td class="colLast">
 <div class="block">Tests for region replicas.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/regionserver/TestRegionReplicasAreDistributed.html" title="class in org.apache.hadoop.hbase.regionserver">TestRegionReplicasAreDistributed</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/regionserver/TestRegionReplicasWithModifyTable.html" title="class in org.apache.hadoop.hbase.regionserver">TestRegionReplicasWithModifyTable</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/regionserver/TestRegionServerAbort.html" title="class in org.apache.hadoop.hbase.regionserver">TestRegionServerAbort</a></td>
 <td class="colLast">
 <div class="block">Tests around regionserver shutdown and abort</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/regionserver/TestRegionServerAbort.ErrorThrowingHRegion.html" title="class in org.apache.hadoop.hbase.regionserver">TestRegionServerAbort.ErrorThrowingHRegion</a></td>
 <td class="colLast">
 <div class="block">Throws an exception during store file refresh in order to trigger a regionserver abort.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/regionserver/TestRegionServerAbort.StopBlockingRegionObserver.html" title="class in org.apache.hadoop.hbase.regionserver">TestRegionServerAbort.StopBlockingRegionObserver</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/regionserver/TestRegionServerAccounting.html" title="class in org.apache.hadoop.hbase.regionserver">TestRegionServerAccounting</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/regionserver/TestRegionServerHostname.html" title="class in org.apache.hadoop.hbase.regionserver">TestRegionServerHostname</a></td>
 <td class="colLast">
 <div class="block">Tests for the hostname specification by region server</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/regionserver/TestRegionServerMetrics.html" title="class in org.apache.hadoop.hbase.regionserver">TestRegionServerMetrics</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/regionserver/TestRegionServerNoMaster.html" title="class in org.apache.hadoop.hbase.regionserver">TestRegionServerNoMaster</a></td>
 <td class="colLast">
 <div class="block">Tests on the region server, without the master.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/regionserver/TestRegionServerOnlineConfigChange.html" title="class in org.apache.hadoop.hbase.regionserver">TestRegionServerOnlineConfigChange</a></td>
 <td class="colLast">
 <div class="block">Verify that the Online config Changes on the HRegionServer side are actually
  happening.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/regionserver/TestRegionServerReadRequestMetrics.html" title="class in org.apache.hadoop.hbase.regionserver">TestRegionServerReadRequestMetrics</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/regionserver/TestRegionServerReadRequestMetrics.ScanRegionCoprocessor.html" title="class in org.apache.hadoop.hbase.regionserver">TestRegionServerReadRequestMetrics.ScanRegionCoprocessor</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/regionserver/TestRegionServerRegionSpaceUseReport.html" title="class in org.apache.hadoop.hbase.regionserver">TestRegionServerRegionSpaceUseReport</a></td>
 <td class="colLast">
 <div class="block">Test class for isolated (non-cluster) tests surrounding the report
  of Region space use to the Master by RegionServers.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/regionserver/TestRegionServerReportForDuty.html" title="class in org.apache.hadoop.hbase.regionserver">TestRegionServerReportForDuty</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/regionserver/TestRegionServerReportForDuty.MyRegionServer.html" title="class in org.apache.hadoop.hbase.regionserver">TestRegionServerReportForDuty.MyRegionServer</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/regionserver/TestRegionSplitPolicy.html" title="class in org.apache.hadoop.hbase.regionserver">TestRegionSplitPolicy</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/regionserver/TestRemoveRegionMetrics.html" title="class in org.apache.hadoop.hbase.regionserver">TestRemoveRegionMetrics</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/regionserver/TestResettingCounters.html" title="class in org.apache.hadoop.hbase.regionserver">TestResettingCounters</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/regionserver/TestReversibleScanners.html" title="class in org.apache.hadoop.hbase.regionserver">TestReversibleScanners</a></td>
 <td class="colLast">
 <div class="block">Test cases against ReversibleKeyValueScanner</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/regionserver/TestRowTooBig.html" title="class in org.apache.hadoop.hbase.regionserver">TestRowTooBig</a></td>
 <td class="colLast">
 <div class="block">Test case to check HRS throws <code>RowTooBigException</code>
  when row size exceeds configured limits.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/regionserver/TestRpcSchedulerFactory.html" title="class in org.apache.hadoop.hbase.regionserver">TestRpcSchedulerFactory</a></td>
 <td class="colLast">
 <div class="block">A silly test that does nothing but make sure an rpcscheduler factory makes what it says
  it is going to make.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/regionserver/TestRSKilledWhenInitializing.html" title="class in org.apache.hadoop.hbase.regionserver">TestRSKilledWhenInitializing</a></td>
 <td class="colLast">
 <div class="block">Tests that a regionserver that dies after reporting for duty gets removed
  from list of online regions.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/regionserver/TestRSKilledWhenInitializing.RegisterAndDieRegionServer.html" title="class in org.apache.hadoop.hbase.regionserver">TestRSKilledWhenInitializing.RegisterAndDieRegionServer</a></td>
 <td class="colLast">
 <div class="block">A RegionServer that reports for duty and then immediately dies if it is the first to receive
  the response to a reportForDuty.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/regionserver/TestRSStatusServlet.html" title="class in org.apache.hadoop.hbase.regionserver">TestRSStatusServlet</a></td>
 <td class="colLast">
 <div class="block">Tests for the region server status page and its template.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/regionserver/TestScanner.html" title="class in org.apache.hadoop.hbase.regionserver">TestScanner</a></td>
 <td class="colLast">
 <div class="block">Test of a long-lived scanner validating as we go.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/regionserver/TestScannerHeartbeatMessages.html" title="class in org.apache.hadoop.hbase.regionserver">TestScannerHeartbeatMessages</a></td>
 <td class="colLast">
 <div class="block">Here we test to make sure that scans return the expected Results when the server is sending the
  Client heartbeat messages.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/regionserver/TestScannerHeartbeatMessages.HeartbeatHRegion.html" title="class in org.apache.hadoop.hbase.regionserver">TestScannerHeartbeatMessages.HeartbeatHRegion</a></td>
 <td class="colLast">
 <div class="block">Custom HRegion class that instantiates <code>RegionScanner</code>s with configurable sleep times
  between fetches of row Results and/or column family cells.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/regionserver/TestScannerHeartbeatMessages.HeartbeatHRegionServer.html" title="class in org.apache.hadoop.hbase.regionserver">TestScannerHeartbeatMessages.HeartbeatHRegionServer</a></td>
 <td class="colLast">
 <div class="block">Custom HRegionServer instance that instantiates <a href="../../../../../org/apache/hadoop/hbase/regionserver/TestScannerHeartbeatMessages.HeartbeatRPCServices.html" title="class in org.apache.hadoop.hbase.regionserver"><code>TestScannerHeartbeatMessages.HeartbeatRPCServices</code></a> in place of
  <code>RSRpcServices</code> to allow us to toggle support for heartbeat messages</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/regionserver/TestScannerHeartbeatMessages.HeartbeatKVHeap.html" title="class in org.apache.hadoop.hbase.regionserver">TestScannerHeartbeatMessages.HeartbeatKVHeap</a></td>
 <td class="colLast">
 <div class="block">Custom KV Heap that can be configured to sleep/wait in between retrievals of column family
  cells.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/regionserver/TestScannerHeartbeatMessages.HeartbeatRegionScanner.html" title="class in org.apache.hadoop.hbase.regionserver">TestScannerHeartbeatMessages.HeartbeatRegionScanner</a></td>
 <td class="colLast">
 <div class="block">Custom RegionScanner that can be configured to sleep between retrievals of row Results and/or
  column family cells</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/regionserver/TestScannerHeartbeatMessages.HeartbeatReversedKVHeap.html" title="class in org.apache.hadoop.hbase.regionserver">TestScannerHeartbeatMessages.HeartbeatReversedKVHeap</a></td>
 <td class="colLast">
 <div class="block">Custom reversed KV Heap that can be configured to sleep in between retrievals of column family
  cells.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/regionserver/TestScannerHeartbeatMessages.HeartbeatReversedRegionScanner.html" title="class in org.apache.hadoop.hbase.regionserver">TestScannerHeartbeatMessages.HeartbeatReversedRegionScanner</a></td>
 <td class="colLast">
 <div class="block">Custom ReversedRegionScanner that can be configured to sleep between retrievals of row Results
  and/or column family cells</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/regionserver/TestScannerHeartbeatMessages.HeartbeatRPCServices.html" title="class in org.apache.hadoop.hbase.regionserver">TestScannerHeartbeatMessages.HeartbeatRPCServices</a></td>
 <td class="colLast">
 <div class="block">Custom RSRpcServices instance that allows heartbeat support to be toggled</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/regionserver/TestScannerHeartbeatMessages.SparseFilter.html" title="class in org.apache.hadoop.hbase.regionserver">TestScannerHeartbeatMessages.SparseFilter</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/regionserver/TestScannerRetriableFailure.html" title="class in org.apache.hadoop.hbase.regionserver">TestScannerRetriableFailure</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/regionserver/TestScannerRetriableFailure.FaultyScannerObserver.html" title="class in org.apache.hadoop.hbase.regionserver">TestScannerRetriableFailure.FaultyScannerObserver</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/regionserver/TestScannerWithBulkload.html" title="class in org.apache.hadoop.hbase.regionserver">TestScannerWithBulkload</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/regionserver/TestScannerWithCorruptHFile.html" title="class in org.apache.hadoop.hbase.regionserver">TestScannerWithCorruptHFile</a></td>
 <td class="colLast">
 <div class="block">Tests a scanner on a corrupt hfile.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/regionserver/TestScannerWithCorruptHFile.CorruptHFileCoprocessor.html" title="class in org.apache.hadoop.hbase.regionserver">TestScannerWithCorruptHFile.CorruptHFileCoprocessor</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/regionserver/TestScanWithBloomError.html" title="class in org.apache.hadoop.hbase.regionserver">TestScanWithBloomError</a></td>
 <td class="colLast">
 <div class="block">Test a multi-column scanner when there is a Bloom filter false-positive.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/regionserver/TestSCVFWithMiniCluster.html" title="class in org.apache.hadoop.hbase.regionserver">TestSCVFWithMiniCluster</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/regionserver/TestSeekOptimizations.html" title="class in org.apache.hadoop.hbase.regionserver">TestSeekOptimizations</a></td>
 <td class="colLast">
 <div class="block">Test various seek optimizations for correctness and check if they are
  actually saving I/O operations.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/regionserver/TestServerCustomProtocol.html" title="class in org.apache.hadoop.hbase.regionserver">TestServerCustomProtocol</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/regionserver/TestServerCustomProtocol.PingHandler.html" title="class in org.apache.hadoop.hbase.regionserver">TestServerCustomProtocol.PingHandler</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/regionserver/TestServerNonceManager.html" title="class in org.apache.hadoop.hbase.regionserver">TestServerNonceManager</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/regionserver/TestServerNonceManager.TestRunnable.html" title="class in org.apache.hadoop.hbase.regionserver">TestServerNonceManager.TestRunnable</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/regionserver/TestSettingTimeoutOnBlockingPoint.html" title="class in org.apache.hadoop.hbase.regionserver">TestSettingTimeoutOnBlockingPoint</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/regionserver/TestSettingTimeoutOnBlockingPoint.SleepCoprocessor.html" title="class in org.apache.hadoop.hbase.regionserver">TestSettingTimeoutOnBlockingPoint.SleepCoprocessor</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/regionserver/TestSimpleTimeRangeTracker.html" title="class in org.apache.hadoop.hbase.regionserver">TestSimpleTimeRangeTracker</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/regionserver/TestSplitLogWorker.html" title="class in org.apache.hadoop.hbase.regionserver">TestSplitLogWorker</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/regionserver/TestSplitTransactionOnCluster.html" title="class in org.apache.hadoop.hbase.regionserver">TestSplitTransactionOnCluster</a></td>
 <td class="colLast">
 <div class="block">The below tests are testing split region against a running cluster</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/regionserver/TestSplitTransactionOnCluster.CustomSplitPolicy.html" title="class in org.apache.hadoop.hbase.regionserver">TestSplitTransactionOnCluster.CustomSplitPolicy</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/regionserver/TestSplitTransactionOnCluster.FailingSplitMasterObserver.html" title="class in org.apache.hadoop.hbase.regionserver">TestSplitTransactionOnCluster.FailingSplitMasterObserver</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/regionserver/TestSplitTransactionOnCluster.MyMaster.html" title="class in org.apache.hadoop.hbase.regionserver">TestSplitTransactionOnCluster.MyMaster</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/regionserver/TestSplitTransactionOnCluster.MyMasterRpcServices.html" title="class in org.apache.hadoop.hbase.regionserver">TestSplitTransactionOnCluster.MyMasterRpcServices</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/regionserver/TestSplitWalDataLoss.html" title="class in org.apache.hadoop.hbase.regionserver">TestSplitWalDataLoss</a></td>
 <td class="colLast">
 <div class="block">Testcase for https://issues.apache.org/jira/browse/HBASE-13811</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/regionserver/TestStoreFileInfo.html" title="class in org.apache.hadoop.hbase.regionserver">TestStoreFileInfo</a></td>
 <td class="colLast">
 <div class="block">Test HStoreFile</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/regionserver/TestStoreFileRefresherChore.html" title="class in org.apache.hadoop.hbase.regionserver">TestStoreFileRefresherChore</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/regionserver/TestStoreFileRefresherChore.FailingHRegionFileSystem.html" title="class in org.apache.hadoop.hbase.regionserver">TestStoreFileRefresherChore.FailingHRegionFileSystem</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/regionserver/TestStoreFileRefresherChore.StaleStorefileRefresherChore.html" title="class in org.apache.hadoop.hbase.regionserver">TestStoreFileRefresherChore.StaleStorefileRefresherChore</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/regionserver/TestStoreFileScannerWithTagCompression.html" title="class in org.apache.hadoop.hbase.regionserver">TestStoreFileScannerWithTagCompression</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/regionserver/TestStoreScanner.html" title="class in org.apache.hadoop.hbase.regionserver">TestStoreScanner</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/regionserver/TestStoreScanner.CellGridStoreScanner.html" title="class in org.apache.hadoop.hbase.regionserver">TestStoreScanner.CellGridStoreScanner</a></td>
 <td class="colLast">
 <div class="block">A StoreScanner for our CELL_GRID above.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/regionserver/TestStoreScanner.CellWithVersionsNoOptimizeStoreScanner.html" title="class in org.apache.hadoop.hbase.regionserver">TestStoreScanner.CellWithVersionsNoOptimizeStoreScanner</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/regionserver/TestStoreScanner.CellWithVersionsStoreScanner.html" title="class in org.apache.hadoop.hbase.regionserver">TestStoreScanner.CellWithVersionsStoreScanner</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/regionserver/TestStoreScanner.KeyValueHeapWithCount.html" title="class in org.apache.hadoop.hbase.regionserver">TestStoreScanner.KeyValueHeapWithCount</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/regionserver/TestStripeStoreEngine.html" title="class in org.apache.hadoop.hbase.regionserver">TestStripeStoreEngine</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/regionserver/TestStripeStoreEngine.TestStoreEngine.html" title="class in org.apache.hadoop.hbase.regionserver">TestStripeStoreEngine.TestStoreEngine</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/regionserver/TestStripeStoreFileManager.html" title="class in org.apache.hadoop.hbase.regionserver">TestStripeStoreFileManager</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/regionserver/TestSwitchToStreamRead.html" title="class in org.apache.hadoop.hbase.regionserver">TestSwitchToStreamRead</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/regionserver/TestSyncTimeRangeTracker.html" title="class in org.apache.hadoop.hbase.regionserver">TestSyncTimeRangeTracker</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/regionserver/TestTags.html" title="class in org.apache.hadoop.hbase.regionserver">TestTags</a></td>
 <td class="colLast">
 <div class="block">Class that test tags</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/regionserver/TestTags.TestCoprocessorForTags.html" title="class in org.apache.hadoop.hbase.regionserver">TestTags.TestCoprocessorForTags</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/regionserver/TestTimestampFilterSeekHint.html" title="class in org.apache.hadoop.hbase.regionserver">TestTimestampFilterSeekHint</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/regionserver/TestWalAndCompactingMemStoreFlush.html" title="class in org.apache.hadoop.hbase.regionserver">TestWalAndCompactingMemStoreFlush</a></td>
 <td class="colLast">
 <div class="block">This test verifies the correctness of the Per Column Family flushing strategy
  when part of the memstores are compacted memstores</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/regionserver/TestWALLockup.html" title="class in org.apache.hadoop.hbase.regionserver">TestWALLockup</a></td>
 <td class="colLast">
 <div class="block">Testing for lock up of WAL subsystem.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/regionserver/TestWALLockup.DummyServer.html" title="class in org.apache.hadoop.hbase.regionserver">TestWALLockup.DummyServer</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/regionserver/TestWALLockup.DummyWALActionsListener.html" title="class in org.apache.hadoop.hbase.regionserver">TestWALLockup.DummyWALActionsListener</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/regionserver/TestWALMonotonicallyIncreasingSeqId.html" title="class in org.apache.hadoop.hbase.regionserver">TestWALMonotonicallyIncreasingSeqId</a></td>
 <td class="colLast">
 <div class="block">Test for HBASE-17471
@@ -1326,7 +1330,7 @@
  path.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/regionserver/TestWideScanner.html" title="class in org.apache.hadoop.hbase.regionserver">TestWideScanner</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/29b27596/testdevapidocs/org/apache/hadoop/hbase/regionserver/package-tree.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/regionserver/package-tree.html b/testdevapidocs/org/apache/hadoop/hbase/regionserver/package-tree.html
index 4680956..e2bc538 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/regionserver/package-tree.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/regionserver/package-tree.html
@@ -480,6 +480,7 @@
 <li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/TestMetricsRegionSourceImpl.html" title="class in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">TestMetricsRegionSourceImpl</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/TestMetricsRegionSourceImpl.RegionWrapperStub.html" title="class in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">TestMetricsRegionSourceImpl.RegionWrapperStub</span></a> (implements org.apache.hadoop.hbase.regionserver.MetricsRegionWrapper)</li>
 <li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/TestMetricsTableAggregate.html" title="class in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">TestMetricsTableAggregate</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/TestMetricsTableLatencies.html" title="class in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">TestMetricsTableLatencies</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/TestMetricsTableSourceImpl.html" title="class in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">TestMetricsTableSourceImpl</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/TestMetricsTableSourceImpl.TableWrapperStub.html" title="class in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">TestMetricsTableSourceImpl.TableWrapperStub</span></a> (implements org.apache.hadoop.hbase.regionserver.MetricsTableWrapperAggregate)</li>
 <li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/TestMiniBatchOperationInProgress.html" title="class in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">TestMiniBatchOperationInProgress</span></a></li>
@@ -630,11 +631,11 @@
 <ul>
 <li type="circle">java.lang.<a href="http://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="http://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="http://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/TestRegionServerReadRequestMetrics.Metric.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">TestRegionServerReadRequestMetrics.Metric</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/DataBlockEncodingTool.Manipulation.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">DataBlockEncodingTool.Manipulation</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/TestMultiLogThreshold.ActionType.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">TestMultiLogThreshold.ActionType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/TestAtomicOperation.TestStep.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">TestAtomicOperation.TestStep</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/TestRegionServerReadRequestMetrics.Metric.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">TestRegionServerReadRequestMetrics.Metric</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/TestCacheOnWriteInSchema.CacheOnWriteType.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">TestCacheOnWriteInSchema.CacheOnWriteType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/TestMultiLogThreshold.ActionType.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">TestMultiLogThreshold.ActionType</span></a></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/29b27596/testdevapidocs/org/apache/hadoop/hbase/test/MetricsAssertHelper.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/test/MetricsAssertHelper.html b/testdevapidocs/org/apache/hadoop/hbase/test/MetricsAssertHelper.html
index 4996194..394aa57 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/test/MetricsAssertHelper.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/test/MetricsAssertHelper.html
@@ -18,7 +18,7 @@
     catch(err) {
     }
 //-->
-var methods = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":6,"i5":6,"i6":6,"i7":6,"i8":6,"i9":6,"i10":6,"i11":6,"i12":6,"i13":6,"i14":6};
+var methods = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":6,"i5":6,"i6":6,"i7":6,"i8":6,"i9":6,"i10":6,"i11":6,"i12":6,"i13":6,"i14":6,"i15":6};
 var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
 var altColor = "altColor";
 var rowColor = "rowColor";
@@ -239,6 +239,12 @@ var activeTableTab = "activeTableTab";
 <div class="block">Init helper.</div>
 </td>
 </tr>
+<tr id="i15" class="rowColor">
+<td class="colFirst"><code><a href="http://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/test/MetricsAssertHelper.html#toDebugString-org.apache.hadoop.hbase.metrics.BaseSource-">toDebugString</a></span>(org.apache.hadoop.hbase.metrics.BaseSource&nbsp;source)</code>
+<div class="block">Generates a representation of all metrics exported by the given <code>source</code>.</div>
+</td>
+</tr>
 </table>
 </li>
 </ul>
@@ -515,7 +521,7 @@ var activeTableTab = "activeTableTab";
 <a name="getGaugeLong-java.lang.String-org.apache.hadoop.hbase.metrics.BaseSource-">
 <!--   -->
 </a>
-<ul class="blockListLast">
+<ul class="blockList">
 <li class="blockList">
 <h4>getGaugeLong</h4>
 <pre>long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/test/MetricsAssertHelper.html#line.170">getGaugeLong</a>(<a href="http://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,
@@ -531,6 +537,22 @@ var activeTableTab = "activeTableTab";
 </dl>
 </li>
 </ul>
+<a name="toDebugString-org.apache.hadoop.hbase.metrics.BaseSource-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>toDebugString</h4>
+<pre><a href="http://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/test/MetricsAssertHelper.html#line.177">toDebugString</a>(org.apache.hadoop.hbase.metrics.BaseSource&nbsp;source)</pre>
+<div class="block">Generates a representation of all metrics exported by the given <code>source</code>.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>source</code> - The <code>BaseSource</code> that will provide the metrics.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A representation of the metrics as a String.</dd>
+</dl>
+</li>
+</ul>
 </li>
 </ul>
 </li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/29b27596/testdevapidocs/org/apache/hadoop/hbase/test/MetricsAssertHelperImpl.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/test/MetricsAssertHelperImpl.html b/testdevapidocs/org/apache/hadoop/hbase/test/MetricsAssertHelperImpl.html
index 07ee8b2..86cf050 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/test/MetricsAssertHelperImpl.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/test/MetricsAssertHelperImpl.html
@@ -18,7 +18,7 @@
     catch(err) {
     }
 //-->
-var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10,"i16":10,"i17":10};
+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};
 var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
 var altColor = "altColor";
 var rowColor = "rowColor";
@@ -328,6 +328,12 @@ implements <a href="../../../../../org/apache/hadoop/hbase/test/MetricsAssertHel
 <td class="colFirst"><code>private void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/test/MetricsAssertHelperImpl.html#reset--">reset</a></span>()</code>&nbsp;</td>
 </tr>
+<tr id="i18" class="altColor">
+<td class="colFirst"><code><a href="http://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/test/MetricsAssertHelperImpl.html#toDebugString-org.apache.hadoop.hbase.metrics.BaseSource-">toDebugString</a></span>(org.apache.hadoop.hbase.metrics.BaseSource&nbsp;source)</code>
+<div class="block">Generates a representation of all metrics exported by the given <code>source</code>.</div>
+</td>
+</tr>
 </table>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
@@ -726,13 +732,32 @@ implements <a href="../../../../../org/apache/hadoop/hbase/test/MetricsAssertHel
 </dl>
 </li>
 </ul>
+<a name="toDebugString-org.apache.hadoop.hbase.metrics.BaseSource-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>toDebugString</h4>
+<pre>public&nbsp;<a href="http://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/test/MetricsAssertHelperImpl.html#line.232">toDebugString</a>(org.apache.hadoop.hbase.metrics.BaseSource&nbsp;source)</pre>
+<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/test/MetricsAssertHelper.html#toDebugString-org.apache.hadoop.hbase.metrics.BaseSource-">MetricsAssertHelper</a></code></span></div>
+<div class="block">Generates a representation of all metrics exported by the given <code>source</code>.</div>
+<dl>
+<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
+<dd><code><a href="../../../../../org/apache/hadoop/hbase/test/MetricsAssertHelper.html#toDebugString-org.apache.hadoop.hbase.metrics.BaseSource-">toDebugString</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/test/MetricsAssertHelper.html" title="interface in org.apache.hadoop.hbase.test">MetricsAssertHelper</a></code></dd>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>source</code> - The <code>BaseSource</code> that will provide the metrics.</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>A representation of the metrics as a String.</dd>
+</dl>
+</li>
+</ul>
 <a name="reset--">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>reset</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/test/MetricsAssertHelperImpl.html#line.231">reset</a>()</pre>
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/test/MetricsAssertHelperImpl.html#line.239">reset</a>()</pre>
 </li>
 </ul>
 <a name="getMetrics-org.apache.hadoop.hbase.metrics.BaseSource-">
@@ -741,7 +766,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/test/MetricsAssertHel
 <ul class="blockList">
 <li class="blockList">
 <h4>getMetrics</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/test/MetricsAssertHelperImpl.html#line.237">getMetrics</a>(org.apache.hadoop.hbase.metrics.BaseSource&nbsp;source)</pre>
+<pre>private&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/test/MetricsAssertHelperImpl.html#line.245">getMetrics</a>(org.apache.hadoop.hbase.metrics.BaseSource&nbsp;source)</pre>
 </li>
 </ul>
 <a name="canonicalizeMetricName-java.lang.String-">
@@ -750,7 +775,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/test/MetricsAssertHel
 <ul class="blockListLast">
 <li class="blockList">
 <h4>canonicalizeMetricName</h4>
-<pre>private&nbsp;<a href="http://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/test/MetricsAssertHelperImpl.html#line.248">canonicalizeMetricName</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;in)</pre>
+<pre>private&nbsp;<a href="http://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/test/MetricsAssertHelperImpl.html#line.256">canonicalizeMetricName</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;in)</pre>
 </li>
 </ul>
 </li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/29b27596/testdevapidocs/org/apache/hadoop/hbase/test/class-use/MetricsAssertHelper.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/test/class-use/MetricsAssertHelper.html b/testdevapidocs/org/apache/hadoop/hbase/test/class-use/MetricsAssertHelper.html
index a2f6901..47d354a 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/test/class-use/MetricsAssertHelper.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/test/class-use/MetricsAssertHelper.html
@@ -231,14 +231,18 @@
 <td class="colLast"><span class="typeNameLabel">TestMetricsRegion.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/TestMetricsRegion.html#HELPER">HELPER</a></span></code>&nbsp;</td>
 </tr>
 <tr class="altColor">
+<td class="colFirst"><code>static <a href="../../../../../../org/apache/hadoop/hbase/test/MetricsAssertHelper.html" title="interface in org.apache.hadoop.hbase.test">MetricsAssertHelper</a></code></td>
+<td class="colLast"><span class="typeNameLabel">TestMetricsTableLatencies.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/TestMetricsTableLatencies.html#HELPER">HELPER</a></span></code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
 <td class="colFirst"><code>protected <a href="../../../../../../org/apache/hadoop/hbase/test/MetricsAssertHelper.html" title="interface in org.apache.hadoop.hbase.test">MetricsAssertHelper</a></code></td>
 <td class="colLast"><span class="typeNameLabel">TestHRegion.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/TestHRegion.html#metricsAssertHelper">metricsAssertHelper</a></span></code>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><code>private static <a href="../../../../../../org/apache/hadoop/hbase/test/MetricsAssertHelper.html" title="interface in org.apache.hadoop.hbase.test">MetricsAssertHelper</a></code></td>
 <td class="colLast"><span class="typeNameLabel">TestRegionServerMetrics.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/TestRegionServerMetrics.html#metricsHelper">metricsHelper</a></span></code>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><code>private static <a href="../../../../../../org/apache/hadoop/hbase/test/MetricsAssertHelper.html" title="interface in org.apache.hadoop.hbase.test">MetricsAssertHelper</a></code></td>
 <td class="colLast"><span class="typeNameLabel">TestRemoveRegionMetrics.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/TestRemoveRegionMetrics.html#metricsHelper">metricsHelper</a></span></code>&nbsp;</td>
 </tr>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/29b27596/testdevapidocs/org/apache/hadoop/hbase/test/package-tree.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/test/package-tree.html b/testdevapidocs/org/apache/hadoop/hbase/test/package-tree.html
index 047d34c..573c60a 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/test/package-tree.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/test/package-tree.html
@@ -253,10 +253,10 @@
 <ul>
 <li type="circle">java.lang.<a href="http://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="http://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="http://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.test.<a href="../../../../../org/apache/hadoop/hbase/test/IntegrationTestLoadAndVerify.Counters.html" title="enum in org.apache.hadoop.hbase.test"><span class="typeNameLink">IntegrationTestLoadAndVerify.Counters</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.test.<a href="../../../../../org/apache/hadoop/hbase/test/IntegrationTestBigLinkedList.Verify.Counts.html" title="enum in org.apache.hadoop.hbase.test"><span class="typeNameLink">IntegrationTestBigLinkedList.Verify.Counts</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.test.<a href="../../../../../org/apache/hadoop/hbase/test/IntegrationTestBigLinkedList.Generator.Counts.html" title="enum in org.apache.hadoop.hbase.test"><span class="typeNameLink">IntegrationTestBigLinkedList.Generator.Counts</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.test.<a href="../../../../../org/apache/hadoop/hbase/test/IntegrationTestWithCellVisibilityLoadAndVerify.Counters.html" title="enum in org.apache.hadoop.hbase.test"><span class="typeNameLink">IntegrationTestWithCellVisibilityLoadAndVerify.Counters</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.test.<a href="../../../../../org/apache/hadoop/hbase/test/IntegrationTestBigLinkedList.Verify.Counts.html" title="enum in org.apache.hadoop.hbase.test"><span class="typeNameLink">IntegrationTestBigLinkedList.Verify.Counts</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.test.<a href="../../../../../org/apache/hadoop/hbase/test/IntegrationTestLoadAndVerify.Counters.html" title="enum in org.apache.hadoop.hbase.test"><span class="typeNameLink">IntegrationTestLoadAndVerify.Counters</span></a></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/29b27596/testdevapidocs/org/apache/hadoop/hbase/wal/package-tree.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/wal/package-tree.html b/testdevapidocs/org/apache/hadoop/hbase/wal/package-tree.html
index dfeceb7..cd321e0 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/wal/package-tree.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/wal/package-tree.html
@@ -140,9 +140,9 @@
 <ul>
 <li type="circle">java.lang.<a href="http://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="http://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="http://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/TestWALSplit.Corruptions.html" title="enum in org.apache.hadoop.hbase.wal"><span class="typeNameLink">TestWALSplit.Corruptions</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.wal.<a href="../../../../../org/apache/hadoop/hbase/wal/IOTestProvider.AllowedOperations.html" title="enum in org.apache.hadoop.hbase.wal"><span class="typeNameLink">IOTestProvider.AllowedOperations</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.wal.<a href="../../../../../org/apache/hadoop/hbase/wal/FaultyFSLog.FailureType.html" title="enum in org.apache.hadoop.hbase.wal"><span class="typeNameLink">FaultyFSLog.FailureType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.wal.<a href="../../../../../org/apache/hadoop/hbase/wal/IOTestProvider.AllowedOperations.html" title="enum in org.apache.hadoop.hbase.wal"><span class="typeNameLink">IOTestProvider.AllowedOperations</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.wal.<a href="../../../../../org/apache/hadoop/hbase/wal/TestWALSplit.Corruptions.html" title="enum in org.apache.hadoop.hbase.wal"><span class="typeNameLink">TestWALSplit.Corruptions</span></a></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/29b27596/testdevapidocs/overview-tree.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/overview-tree.html b/testdevapidocs/overview-tree.html
index 99f994d..cfa835f 100644
--- a/testdevapidocs/overview-tree.html
+++ b/testdevapidocs/overview-tree.html
@@ -2840,6 +2840,7 @@
 <li type="circle">org.apache.hadoop.hbase.rest.<a href="org/apache/hadoop/hbase/rest/TestMetricsRESTSource.html" title="class in org.apache.hadoop.hbase.rest"><span class="typeNameLink">TestMetricsRESTSource</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.rest.<a href="org/apache/hadoop/hbase/rest/TestMetricsRESTSourceImpl.html" title="class in org.apache.hadoop.hbase.rest"><span class="typeNameLink">TestMetricsRESTSourceImpl</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/TestMetricsTableAggregate.html" title="class in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">TestMetricsTableAggregate</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/TestMetricsTableLatencies.html" title="class in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">TestMetricsTableLatencies</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/TestMetricsTableSourceImpl.html" title="class in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">TestMetricsTableSourceImpl</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/TestMetricsTableSourceImpl.TableWrapperStub.html" title="class in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">TestMetricsTableSourceImpl.TableWrapperStub</span></a> (implements org.apache.hadoop.hbase.regionserver.MetricsTableWrapperAggregate)</li>
 <li type="circle">org.apache.hadoop.hbase.thrift.<a href="org/apache/hadoop/hbase/thrift/TestMetricsThriftServerSourceFactory.html" title="class in org.apache.hadoop.hbase.thrift"><span class="typeNameLink">TestMetricsThriftServerSourceFactory</span></a></li>


[04/32] hbase-site git commit: Published site at .

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/29b27596/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/dependency-management.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/dependency-management.html b/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/dependency-management.html
index 3e38821..faa52ff 100644
--- a/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/dependency-management.html
+++ b/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/dependency-management.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="20171201" />
+    <meta name="Date-Revision-yyyymmdd" content="20171202" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Exemplar for hbase-shaded-client archetype &#x2013; Project Dependency Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -545,19 +545,19 @@
 <tr class="a">
 <td>org.eclipse.jetty</td>
 <td><a class="externalLink" href="http://www.eclipse.org/jetty">jetty-http</a></td>
-<td>9.4.6.v20170531</td>
+<td>9.3.19.v20170502</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache Software License - Version 2.0</a>, <a class="externalLink" href="http://www.eclipse.org/org/documents/epl-v10.php">Eclipse Public License - Version 1.0</a></td></tr>
 <tr class="b">
 <td>org.eclipse.jetty</td>
 <td><a class="externalLink" href="http://www.eclipse.org/jetty">jetty-io</a></td>
-<td>9.4.6.v20170531</td>
+<td>9.3.19.v20170502</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache Software License - Version 2.0</a>, <a class="externalLink" href="http://www.eclipse.org/org/documents/epl-v10.php">Eclipse Public License - Version 1.0</a></td></tr>
 <tr class="a">
 <td>org.eclipse.jetty</td>
 <td><a class="externalLink" href="http://www.eclipse.org/jetty">jetty-jmx</a></td>
-<td>9.4.6.v20170531</td>
+<td>9.3.19.v20170502</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache Software License - Version 2.0</a>, <a class="externalLink" href="http://www.eclipse.org/org/documents/epl-v10.php">Eclipse Public License - Version 1.0</a></td></tr>
 <tr class="b">
@@ -569,37 +569,37 @@
 <tr class="a">
 <td>org.eclipse.jetty</td>
 <td><a class="externalLink" href="http://www.eclipse.org/jetty">jetty-security</a></td>
-<td>9.4.6.v20170531</td>
+<td>9.3.19.v20170502</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache Software License - Version 2.0</a>, <a class="externalLink" href="http://www.eclipse.org/org/documents/epl-v10.php">Eclipse Public License - Version 1.0</a></td></tr>
 <tr class="b">
 <td>org.eclipse.jetty</td>
 <td><a class="externalLink" href="http://www.eclipse.org/jetty">jetty-server</a></td>
-<td>9.4.6.v20170531</td>
+<td>9.3.19.v20170502</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache Software License - Version 2.0</a>, <a class="externalLink" href="http://www.eclipse.org/org/documents/epl-v10.php">Eclipse Public License - Version 1.0</a></td></tr>
 <tr class="a">
 <td>org.eclipse.jetty</td>
 <td><a class="externalLink" href="http://www.eclipse.org/jetty">jetty-servlet</a></td>
-<td>9.4.6.v20170531</td>
+<td>9.3.19.v20170502</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache Software License - Version 2.0</a>, <a class="externalLink" href="http://www.eclipse.org/org/documents/epl-v10.php">Eclipse Public License - Version 1.0</a></td></tr>
 <tr class="b">
 <td>org.eclipse.jetty</td>
 <td><a class="externalLink" href="http://www.eclipse.org/jetty">jetty-util</a></td>
-<td>9.4.6.v20170531</td>
+<td>9.3.19.v20170502</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache Software License - Version 2.0</a>, <a class="externalLink" href="http://www.eclipse.org/org/documents/epl-v10.php">Eclipse Public License - Version 1.0</a></td></tr>
 <tr class="a">
 <td>org.eclipse.jetty</td>
 <td><a class="externalLink" href="http://www.eclipse.org/jetty">jetty-util-ajax</a></td>
-<td>9.4.6.v20170531</td>
+<td>9.3.19.v20170502</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache Software License - Version 2.0</a>, <a class="externalLink" href="http://www.eclipse.org/org/documents/epl-v10.php">Eclipse Public License - Version 1.0</a></td></tr>
 <tr class="b">
 <td>org.eclipse.jetty</td>
 <td><a class="externalLink" href="http://www.eclipse.org/jetty">jetty-webapp</a></td>
-<td>9.4.6.v20170531</td>
+<td>9.3.19.v20170502</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache Software License - Version 2.0</a>, <a class="externalLink" href="http://www.eclipse.org/org/documents/epl-v10.php">Eclipse Public License - Version 1.0</a></td></tr>
 <tr class="a">
@@ -804,7 +804,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-02</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/29b27596/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/index.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/index.html b/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/index.html
index 80a34b8..dc4de1d 100644
--- a/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/index.html
+++ b/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/index.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="20171201" />
+    <meta name="Date-Revision-yyyymmdd" content="20171202" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Exemplar for hbase-shaded-client archetype &#x2013; About</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -119,7 +119,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-02</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/29b27596/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/integration.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/integration.html b/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/integration.html
index aa3b047..c8d64af 100644
--- a/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/integration.html
+++ b/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/integration.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="20171201" />
+    <meta name="Date-Revision-yyyymmdd" content="20171202" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Exemplar for hbase-shaded-client archetype &#x2013; CI Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -126,7 +126,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-02</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/29b27596/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/issue-tracking.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/issue-tracking.html b/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/issue-tracking.html
index 6628363..40b3063 100644
--- a/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/issue-tracking.html
+++ b/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/issue-tracking.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="20171201" />
+    <meta name="Date-Revision-yyyymmdd" content="20171202" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Exemplar for hbase-shaded-client archetype &#x2013; Issue Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -123,7 +123,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-02</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/29b27596/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/license.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/license.html b/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/license.html
index 2d189bd..947cabf 100644
--- a/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/license.html
+++ b/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/license.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="20171201" />
+    <meta name="Date-Revision-yyyymmdd" content="20171202" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Exemplar for hbase-shaded-client archetype &#x2013; Project Licenses</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -326,7 +326,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-02</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/29b27596/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/mail-lists.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/mail-lists.html b/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/mail-lists.html
index 8802128..eaddd51 100644
--- a/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/mail-lists.html
+++ b/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/mail-lists.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="20171201" />
+    <meta name="Date-Revision-yyyymmdd" content="20171202" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Exemplar for hbase-shaded-client archetype &#x2013; Project Mailing Lists</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -176,7 +176,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-02</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/29b27596/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/plugin-management.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/plugin-management.html b/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/plugin-management.html
index 60944bb..e987784 100644
--- a/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/plugin-management.html
+++ b/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/plugin-management.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="20171201" />
+    <meta name="Date-Revision-yyyymmdd" content="20171202" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Exemplar for hbase-shaded-client archetype &#x2013; Project Plugin Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -271,7 +271,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-02</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/29b27596/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/plugins.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/plugins.html b/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/plugins.html
index 583082b..eea95f1 100644
--- a/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/plugins.html
+++ b/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/plugins.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="20171201" />
+    <meta name="Date-Revision-yyyymmdd" content="20171202" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Exemplar for hbase-shaded-client archetype &#x2013; Project Plugins</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -226,7 +226,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-02</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/29b27596/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/project-info.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/project-info.html b/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/project-info.html
index 315baa4..77518cf 100644
--- a/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/project-info.html
+++ b/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/project-info.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="20171201" />
+    <meta name="Date-Revision-yyyymmdd" content="20171202" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Exemplar for hbase-shaded-client archetype &#x2013; Project Information</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -167,7 +167,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-02</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/29b27596/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/project-reports.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/project-reports.html b/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/project-reports.html
index 41b32d6..b7bf8bd 100644
--- a/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/project-reports.html
+++ b/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/project-reports.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="20171201" />
+    <meta name="Date-Revision-yyyymmdd" content="20171202" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Exemplar for hbase-shaded-client archetype &#x2013; Generated Reports</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -128,7 +128,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-02</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/29b27596/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/project-summary.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/project-summary.html b/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/project-summary.html
index d369036..478d33b 100644
--- a/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/project-summary.html
+++ b/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/project-summary.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="20171201" />
+    <meta name="Date-Revision-yyyymmdd" content="20171202" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Exemplar for hbase-shaded-client archetype &#x2013; Project Summary</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -166,7 +166,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-02</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/29b27596/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/source-repository.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/source-repository.html b/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/source-repository.html
index 11a1ac6..431ac0c 100644
--- a/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/source-repository.html
+++ b/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/source-repository.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="20171201" />
+    <meta name="Date-Revision-yyyymmdd" content="20171202" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Exemplar for hbase-shaded-client archetype &#x2013; Source Code Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -134,7 +134,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-02</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/29b27596/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/team-list.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/team-list.html b/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/team-list.html
index e591d06..168ac83 100644
--- a/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/team-list.html
+++ b/hbase-build-configuration/hbase-archetypes/hbase-shaded-client-project/team-list.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="20171201" />
+    <meta name="Date-Revision-yyyymmdd" content="20171202" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Exemplar for hbase-shaded-client archetype &#x2013; Project Team</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -547,7 +547,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-02</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/29b27596/hbase-build-configuration/hbase-archetypes/index.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/index.html b/hbase-build-configuration/hbase-archetypes/index.html
index d7c3225..42f92d7 100644
--- a/hbase-build-configuration/hbase-archetypes/index.html
+++ b/hbase-build-configuration/hbase-archetypes/index.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="20171201" />
+    <meta name="Date-Revision-yyyymmdd" content="20171202" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Archetypes &#x2013; About</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -135,7 +135,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-02</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/29b27596/hbase-build-configuration/hbase-archetypes/integration.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/integration.html b/hbase-build-configuration/hbase-archetypes/integration.html
index 2476238..7ff2ca2 100644
--- a/hbase-build-configuration/hbase-archetypes/integration.html
+++ b/hbase-build-configuration/hbase-archetypes/integration.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="20171201" />
+    <meta name="Date-Revision-yyyymmdd" content="20171202" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Archetypes &#x2013; CI Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -126,7 +126,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-02</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/29b27596/hbase-build-configuration/hbase-archetypes/issue-tracking.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/issue-tracking.html b/hbase-build-configuration/hbase-archetypes/issue-tracking.html
index bb69303..592134d 100644
--- a/hbase-build-configuration/hbase-archetypes/issue-tracking.html
+++ b/hbase-build-configuration/hbase-archetypes/issue-tracking.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="20171201" />
+    <meta name="Date-Revision-yyyymmdd" content="20171202" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Archetypes &#x2013; Issue Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -123,7 +123,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-02</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/29b27596/hbase-build-configuration/hbase-archetypes/license.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/license.html b/hbase-build-configuration/hbase-archetypes/license.html
index 115d0eb..43ba5ea 100644
--- a/hbase-build-configuration/hbase-archetypes/license.html
+++ b/hbase-build-configuration/hbase-archetypes/license.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="20171201" />
+    <meta name="Date-Revision-yyyymmdd" content="20171202" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Archetypes &#x2013; Project Licenses</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -326,7 +326,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-02</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/29b27596/hbase-build-configuration/hbase-archetypes/mail-lists.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/mail-lists.html b/hbase-build-configuration/hbase-archetypes/mail-lists.html
index ff11cb2..4618279 100644
--- a/hbase-build-configuration/hbase-archetypes/mail-lists.html
+++ b/hbase-build-configuration/hbase-archetypes/mail-lists.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="20171201" />
+    <meta name="Date-Revision-yyyymmdd" content="20171202" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Archetypes &#x2013; Project Mailing Lists</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -176,7 +176,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-02</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/29b27596/hbase-build-configuration/hbase-archetypes/plugin-management.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/plugin-management.html b/hbase-build-configuration/hbase-archetypes/plugin-management.html
index e2a5092..e735af2 100644
--- a/hbase-build-configuration/hbase-archetypes/plugin-management.html
+++ b/hbase-build-configuration/hbase-archetypes/plugin-management.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="20171201" />
+    <meta name="Date-Revision-yyyymmdd" content="20171202" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Archetypes &#x2013; Project Plugin Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -271,7 +271,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-02</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/29b27596/hbase-build-configuration/hbase-archetypes/plugins.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/plugins.html b/hbase-build-configuration/hbase-archetypes/plugins.html
index 9ee07ce..baf87b0 100644
--- a/hbase-build-configuration/hbase-archetypes/plugins.html
+++ b/hbase-build-configuration/hbase-archetypes/plugins.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="20171201" />
+    <meta name="Date-Revision-yyyymmdd" content="20171202" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Archetypes &#x2013; Project Plugins</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -214,7 +214,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-02</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/29b27596/hbase-build-configuration/hbase-archetypes/project-info.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/project-info.html b/hbase-build-configuration/hbase-archetypes/project-info.html
index 5de1765..8e69722 100644
--- a/hbase-build-configuration/hbase-archetypes/project-info.html
+++ b/hbase-build-configuration/hbase-archetypes/project-info.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="20171201" />
+    <meta name="Date-Revision-yyyymmdd" content="20171202" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Archetypes &#x2013; Project Information</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -167,7 +167,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-02</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/29b27596/hbase-build-configuration/hbase-archetypes/project-summary.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/project-summary.html b/hbase-build-configuration/hbase-archetypes/project-summary.html
index 3c6fafa..f7f57df 100644
--- a/hbase-build-configuration/hbase-archetypes/project-summary.html
+++ b/hbase-build-configuration/hbase-archetypes/project-summary.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="20171201" />
+    <meta name="Date-Revision-yyyymmdd" content="20171202" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Archetypes &#x2013; Project Summary</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -163,7 +163,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-02</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/29b27596/hbase-build-configuration/hbase-archetypes/source-repository.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/source-repository.html b/hbase-build-configuration/hbase-archetypes/source-repository.html
index 4d8c575..cc9d109 100644
--- a/hbase-build-configuration/hbase-archetypes/source-repository.html
+++ b/hbase-build-configuration/hbase-archetypes/source-repository.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="20171201" />
+    <meta name="Date-Revision-yyyymmdd" content="20171202" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Archetypes &#x2013; Source Code Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -134,7 +134,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-02</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/29b27596/hbase-build-configuration/hbase-archetypes/team-list.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-archetypes/team-list.html b/hbase-build-configuration/hbase-archetypes/team-list.html
index 5d56a07..63baf9e 100644
--- a/hbase-build-configuration/hbase-archetypes/team-list.html
+++ b/hbase-build-configuration/hbase-archetypes/team-list.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="20171201" />
+    <meta name="Date-Revision-yyyymmdd" content="20171202" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Archetypes &#x2013; Project Team</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -547,7 +547,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-02</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/29b27596/hbase-build-configuration/hbase-spark/checkstyle.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-spark/checkstyle.html b/hbase-build-configuration/hbase-spark/checkstyle.html
index 3dfd87b..5fc8403 100644
--- a/hbase-build-configuration/hbase-spark/checkstyle.html
+++ b/hbase-build-configuration/hbase-spark/checkstyle.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="20171201" />
+    <meta name="Date-Revision-yyyymmdd" content="20171202" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Spark &#x2013; Checkstyle Results</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -517,7 +517,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-02</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/29b27596/hbase-build-configuration/hbase-spark/dependencies.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-spark/dependencies.html b/hbase-build-configuration/hbase-spark/dependencies.html
index f0856c9..881ad81 100644
--- a/hbase-build-configuration/hbase-spark/dependencies.html
+++ b/hbase-build-configuration/hbase-spark/dependencies.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="20171201" />
+    <meta name="Date-Revision-yyyymmdd" content="20171202" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Spark &#x2013; Project Dependencies</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -880,55 +880,55 @@
 <tr class="b">
 <td>org.eclipse.jetty</td>
 <td><a class="externalLink" href="http://www.eclipse.org/jetty">jetty-http</a></td>
-<td>9.4.6.v20170531</td>
+<td>9.3.19.v20170502</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache Software License - Version 2.0</a>-<a class="externalLink" href="http://www.eclipse.org/org/documents/epl-v10.php">Eclipse Public License - Version 1.0</a></td></tr>
 <tr class="a">
 <td>org.eclipse.jetty</td>
 <td><a class="externalLink" href="http://www.eclipse.org/jetty">jetty-io</a></td>
-<td>9.4.6.v20170531</td>
+<td>9.3.19.v20170502</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache Software License - Version 2.0</a>-<a class="externalLink" href="http://www.eclipse.org/org/documents/epl-v10.php">Eclipse Public License - Version 1.0</a></td></tr>
 <tr class="b">
 <td>org.eclipse.jetty</td>
 <td><a class="externalLink" href="http://www.eclipse.org/jetty">jetty-security</a></td>
-<td>9.4.6.v20170531</td>
+<td>9.3.19.v20170502</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache Software License - Version 2.0</a>-<a class="externalLink" href="http://www.eclipse.org/org/documents/epl-v10.php">Eclipse Public License - Version 1.0</a></td></tr>
 <tr class="a">
 <td>org.eclipse.jetty</td>
 <td><a class="externalLink" href="http://www.eclipse.org/jetty">jetty-server</a></td>
-<td>9.4.6.v20170531</td>
+<td>9.3.19.v20170502</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache Software License - Version 2.0</a>-<a class="externalLink" href="http://www.eclipse.org/org/documents/epl-v10.php">Eclipse Public License - Version 1.0</a></td></tr>
 <tr class="b">
 <td>org.eclipse.jetty</td>
 <td><a class="externalLink" href="http://www.eclipse.org/jetty">jetty-servlet</a></td>
-<td>9.4.6.v20170531</td>
+<td>9.3.19.v20170502</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache Software License - Version 2.0</a>-<a class="externalLink" href="http://www.eclipse.org/org/documents/epl-v10.php">Eclipse Public License - Version 1.0</a></td></tr>
 <tr class="a">
 <td>org.eclipse.jetty</td>
 <td><a class="externalLink" href="http://www.eclipse.org/jetty">jetty-util</a></td>
-<td>9.4.6.v20170531</td>
+<td>9.3.19.v20170502</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache Software License - Version 2.0</a>-<a class="externalLink" href="http://www.eclipse.org/org/documents/epl-v10.php">Eclipse Public License - Version 1.0</a></td></tr>
 <tr class="b">
 <td>org.eclipse.jetty</td>
 <td><a class="externalLink" href="http://www.eclipse.org/jetty">jetty-util-ajax</a></td>
-<td>9.4.6.v20170531</td>
+<td>9.3.19.v20170502</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache Software License - Version 2.0</a>-<a class="externalLink" href="http://www.eclipse.org/org/documents/epl-v10.php">Eclipse Public License - Version 1.0</a></td></tr>
 <tr class="a">
 <td>org.eclipse.jetty</td>
 <td><a class="externalLink" href="http://www.eclipse.org/jetty">jetty-webapp</a></td>
-<td>9.4.6.v20170531</td>
+<td>9.3.19.v20170502</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache Software License - Version 2.0</a>-<a class="externalLink" href="http://www.eclipse.org/org/documents/epl-v10.php">Eclipse Public License - Version 1.0</a></td></tr>
 <tr class="b">
 <td>org.eclipse.jetty</td>
 <td><a class="externalLink" href="http://www.eclipse.org/jetty">jetty-xml</a></td>
-<td>9.4.6.v20170531</td>
+<td>9.3.19.v20170502</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache Software License - Version 2.0</a>-<a class="externalLink" href="http://www.eclipse.org/org/documents/epl-v10.php">Eclipse Public License - Version 1.0</a></td></tr>
 <tr class="a">
@@ -3143,7 +3143,7 @@ The following provides more details on the included cryptographic software:
 <p><b>URL: </b><a class="externalLink" href="http://hbase.apache.org/hbase-build-configuration/hbase-http">http://hbase.apache.org/hbase-build-configuration/hbase-http</a></p>
 <p><b>Project Licenses: </b><a class="externalLink" href="https://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></p></td></tr></table></div>
 <ul>
-<li>org.eclipse.jetty:jetty-util:jar:9.4.6.v20170531 (compile) <img id="_img317" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep316', '_img317' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep316" style="display:none">
+<li>org.eclipse.jetty:jetty-util:jar:9.3.19.v20170502 (compile) <img id="_img317" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep316', '_img317' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep316" style="display:none">
 <table border="0" class="table table-striped">
 <tr class="a">
 <th>Jetty :: Utilities</th></tr>
@@ -3152,7 +3152,7 @@ The following provides more details on the included cryptographic software:
 <p><b>Description: </b>Utility classes for Jetty</p>
 <p><b>URL: </b><a class="externalLink" href="http://www.eclipse.org/jetty">http://www.eclipse.org/jetty</a></p>
 <p><b>Project Licenses: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache Software License - Version 2.0</a>, <a class="externalLink" href="http://www.eclipse.org/org/documents/epl-v10.php">Eclipse Public License - Version 1.0</a></p></td></tr></table></div></li>
-<li>org.eclipse.jetty:jetty-util-ajax:jar:9.4.6.v20170531 (compile) <img id="_img319" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep318', '_img319' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep318" style="display:none">
+<li>org.eclipse.jetty:jetty-util-ajax:jar:9.3.19.v20170502 (compile) <img id="_img319" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep318', '_img319' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep318" style="display:none">
 <table border="0" class="table table-striped">
 <tr class="a">
 <th>Jetty :: Utilities :: Ajax(JSON)</th></tr>
@@ -3161,16 +3161,16 @@ The following provides more details on the included cryptographic software:
 <p><b>Description: </b>JSON/Ajax Utility classes for Jetty</p>
 <p><b>URL: </b><a class="externalLink" href="http://www.eclipse.org/jetty">http://www.eclipse.org/jetty</a></p>
 <p><b>Project Licenses: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache Software License - Version 2.0</a>, <a class="externalLink" href="http://www.eclipse.org/org/documents/epl-v10.php">Eclipse Public License - Version 1.0</a></p></td></tr></table></div></li>
-<li>org.eclipse.jetty:jetty-http:jar:9.4.6.v20170531 (compile) <img id="_img321" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep320', '_img321' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep320" style="display:none">
+<li>org.eclipse.jetty:jetty-http:jar:9.3.19.v20170502 (compile) <img id="_img321" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep320', '_img321' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep320" style="display:none">
 <table border="0" class="table table-striped">
 <tr class="a">
 <th>Jetty :: Http Utility</th></tr>
 <tr class="b">
 <td>
-<p><b>Description: </b>The Eclipse Jetty Project</p>
+<p><b>Description: </b>Administrative parent pom for Jetty modules</p>
 <p><b>URL: </b><a class="externalLink" href="http://www.eclipse.org/jetty">http://www.eclipse.org/jetty</a></p>
 <p><b>Project Licenses: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache Software License - Version 2.0</a>, <a class="externalLink" href="http://www.eclipse.org/org/documents/epl-v10.php">Eclipse Public License - Version 1.0</a></p></td></tr></table></div></li>
-<li>org.eclipse.jetty:jetty-security:jar:9.4.6.v20170531 (compile) <img id="_img323" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep322', '_img323' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep322" style="display:none">
+<li>org.eclipse.jetty:jetty-security:jar:9.3.19.v20170502 (compile) <img id="_img323" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep322', '_img323' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep322" style="display:none">
 <table border="0" class="table table-striped">
 <tr class="a">
 <th>Jetty :: Security</th></tr>
@@ -3356,7 +3356,7 @@ The following provides more details on the included cryptographic software:
 <p><b>Description: </b>HBase Replication Support</p>
 <p><b>URL: </b><a class="externalLink" href="http://hbase.apache.org/hbase-build-configuration/hbase-replication">http://hbase.apache.org/hbase-build-configuration/hbase-replication</a></p>
 <p><b>Project Licenses: </b><a class="externalLink" href="https://www.apache.org/licenses/LICENSE-2.0.txt">Apache License, Version 2.0</a></p></td></tr></table></div></li>
-<li>org.eclipse.jetty:jetty-server:jar:9.4.6.v20170531 (compile) <img id="_img363" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep362', '_img363' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep362" style="display:none">
+<li>org.eclipse.jetty:jetty-server:jar:9.3.19.v20170502 (compile) <img id="_img363" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep362', '_img363' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep362" style="display:none">
 <table border="0" class="table table-striped">
 <tr class="a">
 <th>Jetty :: Server Core</th></tr>
@@ -3366,16 +3366,16 @@ The following provides more details on the included cryptographic software:
 <p><b>URL: </b><a class="externalLink" href="http://www.eclipse.org/jetty">http://www.eclipse.org/jetty</a></p>
 <p><b>Project Licenses: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache Software License - Version 2.0</a>, <a class="externalLink" href="http://www.eclipse.org/org/documents/epl-v10.php">Eclipse Public License - Version 1.0</a></p></td></tr></table></div>
 <ul>
-<li>org.eclipse.jetty:jetty-io:jar:9.4.6.v20170531 (compile) <img id="_img365" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep364', '_img365' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep364" style="display:none">
+<li>org.eclipse.jetty:jetty-io:jar:9.3.19.v20170502 (compile) <img id="_img365" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep364', '_img365' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep364" style="display:none">
 <table border="0" class="table table-striped">
 <tr class="a">
 <th>Jetty :: IO Utility</th></tr>
 <tr class="b">
 <td>
-<p><b>Description: </b>The Eclipse Jetty Project</p>
+<p><b>Description: </b>Administrative parent pom for Jetty modules</p>
 <p><b>URL: </b><a class="externalLink" href="http://www.eclipse.org/jetty">http://www.eclipse.org/jetty</a></p>
 <p><b>Project Licenses: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache Software License - Version 2.0</a>, <a class="externalLink" href="http://www.eclipse.org/org/documents/epl-v10.php">Eclipse Public License - Version 1.0</a></p></td></tr></table></div></li></ul></li>
-<li>org.eclipse.jetty:jetty-servlet:jar:9.4.6.v20170531 (compile) <img id="_img367" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep366', '_img367' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep366" style="display:none">
+<li>org.eclipse.jetty:jetty-servlet:jar:9.3.19.v20170502 (compile) <img id="_img367" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep366', '_img367' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep366" style="display:none">
 <table border="0" class="table table-striped">
 <tr class="a">
 <th>Jetty :: Servlet Handling</th></tr>
@@ -3384,7 +3384,7 @@ The following provides more details on the included cryptographic software:
 <p><b>Description: </b>Jetty Servlet Container</p>
 <p><b>URL: </b><a class="externalLink" href="http://www.eclipse.org/jetty">http://www.eclipse.org/jetty</a></p>
 <p><b>Project Licenses: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache Software License - Version 2.0</a>, <a class="externalLink" href="http://www.eclipse.org/org/documents/epl-v10.php">Eclipse Public License - Version 1.0</a></p></td></tr></table></div></li>
-<li>org.eclipse.jetty:jetty-webapp:jar:9.4.6.v20170531 (compile) <img id="_img369" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep368', '_img369' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep368" style="display:none">
+<li>org.eclipse.jetty:jetty-webapp:jar:9.3.19.v20170502 (compile) <img id="_img369" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep368', '_img369' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep368" style="display:none">
 <table border="0" class="table table-striped">
 <tr class="a">
 <th>Jetty :: Webapp Application Support</th></tr>
@@ -3394,7 +3394,7 @@ The following provides more details on the included cryptographic software:
 <p><b>URL: </b><a class="externalLink" href="http://www.eclipse.org/jetty">http://www.eclipse.org/jetty</a></p>
 <p><b>Project Licenses: </b><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache Software License - Version 2.0</a>, <a class="externalLink" href="http://www.eclipse.org/org/documents/epl-v10.php">Eclipse Public License - Version 1.0</a></p></td></tr></table></div>
 <ul>
-<li>org.eclipse.jetty:jetty-xml:jar:9.4.6.v20170531 (compile) <img id="_img371" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep370', '_img371' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep370" style="display:none">
+<li>org.eclipse.jetty:jetty-xml:jar:9.3.19.v20170502 (compile) <img id="_img371" src="./images/icon_info_sml.gif" alt="[Information]" onclick="toggleDependencyDetails( '_dep370', '_img371' );" style="cursor: pointer; vertical-align: text-bottom;"></img><div id="_dep370" style="display:none">
 <table border="0" class="table table-striped">
 <tr class="a">
 <th>Jetty :: XML utilities</th></tr>
@@ -4666,7 +4666,7 @@ file comparators, endian transformation classes, and much more.</p>
 <td>No</td></tr>
 <tr class="a">
 <td>hbase-hadoop2-compat-3.0.0-SNAPSHOT-tests.jar</td>
-<td>35.1 kB</td>
+<td>35.2 kB</td>
 <td>-</td>
 <td>-</td>
 <td>-</td>
@@ -5088,44 +5088,44 @@ file comparators, endian transformation classes, and much more.</p>
 <td>Yes</td>
 <td>No</td></tr>
 <tr class="b">
-<td>jetty-http-9.4.6.v20170531.jar</td>
-<td>163.9 kB</td>
-<td>99</td>
-<td>81</td>
+<td>jetty-http-9.3.19.v20170502.jar</td>
+<td>150.8 kB</td>
+<td>91</td>
+<td>73</td>
 <td>2</td>
 <td>1.8</td>
 <td>Yes</td>
 <td>No</td></tr>
 <tr class="a">
-<td>jetty-io-9.4.6.v20170531.jar</td>
-<td>128.8 kB</td>
-<td>102</td>
-<td>89</td>
+<td>jetty-io-9.3.19.v20170502.jar</td>
+<td>122.6 kB</td>
+<td>97</td>
+<td>84</td>
 <td>2</td>
 <td>1.8</td>
 <td>Yes</td>
 <td>No</td></tr>
 <tr class="b">
-<td>jetty-security-9.4.6.v20170531.jar</td>
-<td>93.1 kB</td>
-<td>65</td>
-<td>52</td>
+<td>jetty-security-9.3.19.v20170502.jar</td>
+<td>95.8 kB</td>
+<td>67</td>
+<td>54</td>
 <td>2</td>
 <td>1.8</td>
 <td>Yes</td>
 <td>No</td></tr>
 <tr class="a">
-<td>jetty-server-9.4.6.v20170531.jar</td>
-<td>579.8 kB</td>
-<td>300</td>
-<td>281</td>
-<td>7</td>
+<td>jetty-server-9.3.19.v20170502.jar</td>
+<td>523.3 kB</td>
+<td>261</td>
+<td>241</td>
+<td>8</td>
 <td>1.8</td>
 <td>Yes</td>
 <td>No</td></tr>
 <tr class="b">
-<td>jetty-servlet-9.4.6.v20170531.jar</td>
-<td>110.5 kB</td>
+<td>jetty-servlet-9.3.19.v20170502.jar</td>
+<td>119.1 kB</td>
 <td>62</td>
 <td>48</td>
 <td>3</td>
@@ -5133,16 +5133,16 @@ file comparators, endian transformation classes, and much more.</p>
 <td>Yes</td>
 <td>No</td></tr>
 <tr class="a">
-<td>jetty-util-9.4.6.v20170531.jar</td>
-<td>457.7 kB</td>
-<td>284</td>
-<td>261</td>
+<td>jetty-util-9.3.19.v20170502.jar</td>
+<td>450.8 kB</td>
+<td>280</td>
+<td>257</td>
 <td>11</td>
 <td>1.8</td>
 <td>Yes</td>
 <td>No</td></tr>
 <tr class="b">
-<td>jetty-util-ajax-9.4.6.v20170531.jar</td>
+<td>jetty-util-ajax-9.3.19.v20170502.jar</td>
 <td>38.7 kB</td>
 <td>37</td>
 <td>24</td>
@@ -5151,17 +5151,17 @@ file comparators, endian transformation classes, and much more.</p>
 <td>Yes</td>
 <td>No</td></tr>
 <tr class="a">
-<td>jetty-webapp-9.4.6.v20170531.jar</td>
-<td>121.4 kB</td>
-<td>59</td>
-<td>46</td>
+<td>jetty-webapp-9.3.19.v20170502.jar</td>
+<td>113.4 kB</td>
+<td>55</td>
+<td>42</td>
 <td>1</td>
 <td>1.8</td>
 <td>Yes</td>
 <td>No</td></tr>
 <tr class="b">
-<td>jetty-xml-9.4.6.v20170531.jar</td>
-<td>50.4 kB</td>
+<td>jetty-xml-9.3.19.v20170502.jar</td>
+<td>50.6 kB</td>
 <td>29</td>
 <td>13</td>
 <td>1</td>
@@ -5621,18 +5621,18 @@ file comparators, endian transformation classes, and much more.</p>
 <tr class="a">
 <td>212</td>
 <td>147.9 MB</td>
-<td>82279</td>
-<td>76666</td>
-<td>2244</td>
+<td>82221</td>
+<td>76607</td>
+<td>2245</td>
 <td>1.8</td>
 <td>182</td>
 <td>1</td></tr>
 <tr class="b">
 <td>compile: 137</td>
-<td>compile: 68.6 MB</td>
-<td>compile: 41553</td>
-<td>compile: 37632</td>
-<td>compile: 1492</td>
+<td>compile: 68.5 MB</td>
+<td>compile: 41495</td>
+<td>compile: 37573</td>
+<td>compile: 1493</td>
 <td>-</td>
 <td>compile: 116</td>
 <td>compile: 1</td></tr>
@@ -5666,7 +5666,7 @@ file comparators, endian transformation classes, and much more.</p>
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-02</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/29b27596/hbase-build-configuration/hbase-spark/dependency-convergence.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-spark/dependency-convergence.html b/hbase-build-configuration/hbase-spark/dependency-convergence.html
index 3b06e21..042dcf3 100644
--- a/hbase-build-configuration/hbase-spark/dependency-convergence.html
+++ b/hbase-build-configuration/hbase-spark/dependency-convergence.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="20171201" />
+    <meta name="Date-Revision-yyyymmdd" content="20171202" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Spark &#x2013; Reactor Dependency Convergence</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -838,7 +838,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-02</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/29b27596/hbase-build-configuration/hbase-spark/dependency-info.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-spark/dependency-info.html b/hbase-build-configuration/hbase-spark/dependency-info.html
index e024521..c4f5e75 100644
--- a/hbase-build-configuration/hbase-spark/dependency-info.html
+++ b/hbase-build-configuration/hbase-spark/dependency-info.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="20171201" />
+    <meta name="Date-Revision-yyyymmdd" content="20171202" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Spark &#x2013; Dependency Information</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -147,7 +147,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-02</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/29b27596/hbase-build-configuration/hbase-spark/dependency-management.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-spark/dependency-management.html b/hbase-build-configuration/hbase-spark/dependency-management.html
index 46c35bc..7a1bf0b 100644
--- a/hbase-build-configuration/hbase-spark/dependency-management.html
+++ b/hbase-build-configuration/hbase-spark/dependency-management.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="20171201" />
+    <meta name="Date-Revision-yyyymmdd" content="20171202" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Spark &#x2013; Project Dependency Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -545,19 +545,19 @@
 <tr class="a">
 <td>org.eclipse.jetty</td>
 <td><a class="externalLink" href="http://www.eclipse.org/jetty">jetty-http</a></td>
-<td>9.4.6.v20170531</td>
+<td>9.3.19.v20170502</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache Software License - Version 2.0</a>, <a class="externalLink" href="http://www.eclipse.org/org/documents/epl-v10.php">Eclipse Public License - Version 1.0</a></td></tr>
 <tr class="b">
 <td>org.eclipse.jetty</td>
 <td><a class="externalLink" href="http://www.eclipse.org/jetty">jetty-io</a></td>
-<td>9.4.6.v20170531</td>
+<td>9.3.19.v20170502</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache Software License - Version 2.0</a>, <a class="externalLink" href="http://www.eclipse.org/org/documents/epl-v10.php">Eclipse Public License - Version 1.0</a></td></tr>
 <tr class="a">
 <td>org.eclipse.jetty</td>
 <td><a class="externalLink" href="http://www.eclipse.org/jetty">jetty-jmx</a></td>
-<td>9.4.6.v20170531</td>
+<td>9.3.19.v20170502</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache Software License - Version 2.0</a>, <a class="externalLink" href="http://www.eclipse.org/org/documents/epl-v10.php">Eclipse Public License - Version 1.0</a></td></tr>
 <tr class="b">
@@ -569,37 +569,37 @@
 <tr class="a">
 <td>org.eclipse.jetty</td>
 <td><a class="externalLink" href="http://www.eclipse.org/jetty">jetty-security</a></td>
-<td>9.4.6.v20170531</td>
+<td>9.3.19.v20170502</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache Software License - Version 2.0</a>, <a class="externalLink" href="http://www.eclipse.org/org/documents/epl-v10.php">Eclipse Public License - Version 1.0</a></td></tr>
 <tr class="b">
 <td>org.eclipse.jetty</td>
 <td><a class="externalLink" href="http://www.eclipse.org/jetty">jetty-server</a></td>
-<td>9.4.6.v20170531</td>
+<td>9.3.19.v20170502</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache Software License - Version 2.0</a>, <a class="externalLink" href="http://www.eclipse.org/org/documents/epl-v10.php">Eclipse Public License - Version 1.0</a></td></tr>
 <tr class="a">
 <td>org.eclipse.jetty</td>
 <td><a class="externalLink" href="http://www.eclipse.org/jetty">jetty-servlet</a></td>
-<td>9.4.6.v20170531</td>
+<td>9.3.19.v20170502</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache Software License - Version 2.0</a>, <a class="externalLink" href="http://www.eclipse.org/org/documents/epl-v10.php">Eclipse Public License - Version 1.0</a></td></tr>
 <tr class="b">
 <td>org.eclipse.jetty</td>
 <td><a class="externalLink" href="http://www.eclipse.org/jetty">jetty-util</a></td>
-<td>9.4.6.v20170531</td>
+<td>9.3.19.v20170502</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache Software License - Version 2.0</a>, <a class="externalLink" href="http://www.eclipse.org/org/documents/epl-v10.php">Eclipse Public License - Version 1.0</a></td></tr>
 <tr class="a">
 <td>org.eclipse.jetty</td>
 <td><a class="externalLink" href="http://www.eclipse.org/jetty">jetty-util-ajax</a></td>
-<td>9.4.6.v20170531</td>
+<td>9.3.19.v20170502</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache Software License - Version 2.0</a>, <a class="externalLink" href="http://www.eclipse.org/org/documents/epl-v10.php">Eclipse Public License - Version 1.0</a></td></tr>
 <tr class="b">
 <td>org.eclipse.jetty</td>
 <td><a class="externalLink" href="http://www.eclipse.org/jetty">jetty-webapp</a></td>
-<td>9.4.6.v20170531</td>
+<td>9.3.19.v20170502</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache Software License - Version 2.0</a>, <a class="externalLink" href="http://www.eclipse.org/org/documents/epl-v10.php">Eclipse Public License - Version 1.0</a></td></tr>
 <tr class="a">
@@ -804,7 +804,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-02</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/29b27596/hbase-build-configuration/hbase-spark/index.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-spark/index.html b/hbase-build-configuration/hbase-spark/index.html
index a976922..23626e8 100644
--- a/hbase-build-configuration/hbase-spark/index.html
+++ b/hbase-build-configuration/hbase-spark/index.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="20171201" />
+    <meta name="Date-Revision-yyyymmdd" content="20171202" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Spark &#x2013; About</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -119,7 +119,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-02</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/29b27596/hbase-build-configuration/hbase-spark/integration.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-spark/integration.html b/hbase-build-configuration/hbase-spark/integration.html
index f3b1b95..2c49e04 100644
--- a/hbase-build-configuration/hbase-spark/integration.html
+++ b/hbase-build-configuration/hbase-spark/integration.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="20171201" />
+    <meta name="Date-Revision-yyyymmdd" content="20171202" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Spark &#x2013; CI Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -126,7 +126,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-02</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/29b27596/hbase-build-configuration/hbase-spark/issue-tracking.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-spark/issue-tracking.html b/hbase-build-configuration/hbase-spark/issue-tracking.html
index c370857..f9e4bb8 100644
--- a/hbase-build-configuration/hbase-spark/issue-tracking.html
+++ b/hbase-build-configuration/hbase-spark/issue-tracking.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="20171201" />
+    <meta name="Date-Revision-yyyymmdd" content="20171202" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Spark &#x2013; Issue Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -123,7 +123,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-02</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/29b27596/hbase-build-configuration/hbase-spark/license.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-spark/license.html b/hbase-build-configuration/hbase-spark/license.html
index e9254e0..b83fd68 100644
--- a/hbase-build-configuration/hbase-spark/license.html
+++ b/hbase-build-configuration/hbase-spark/license.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="20171201" />
+    <meta name="Date-Revision-yyyymmdd" content="20171202" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Spark &#x2013; Project Licenses</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -326,7 +326,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-02</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/29b27596/hbase-build-configuration/hbase-spark/mail-lists.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-spark/mail-lists.html b/hbase-build-configuration/hbase-spark/mail-lists.html
index ecba8ad..4af23cf 100644
--- a/hbase-build-configuration/hbase-spark/mail-lists.html
+++ b/hbase-build-configuration/hbase-spark/mail-lists.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="20171201" />
+    <meta name="Date-Revision-yyyymmdd" content="20171202" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Spark &#x2013; Project Mailing Lists</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -176,7 +176,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-02</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/29b27596/hbase-build-configuration/hbase-spark/plugin-management.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-spark/plugin-management.html b/hbase-build-configuration/hbase-spark/plugin-management.html
index bae742f..9a240f7 100644
--- a/hbase-build-configuration/hbase-spark/plugin-management.html
+++ b/hbase-build-configuration/hbase-spark/plugin-management.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="20171201" />
+    <meta name="Date-Revision-yyyymmdd" content="20171202" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Spark &#x2013; Project Plugin Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -271,7 +271,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-02</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/29b27596/hbase-build-configuration/hbase-spark/plugins.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-spark/plugins.html b/hbase-build-configuration/hbase-spark/plugins.html
index 649ea81..e5a3714 100644
--- a/hbase-build-configuration/hbase-spark/plugins.html
+++ b/hbase-build-configuration/hbase-spark/plugins.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="20171201" />
+    <meta name="Date-Revision-yyyymmdd" content="20171202" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Spark &#x2013; Project Plugins</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -238,7 +238,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-02</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/29b27596/hbase-build-configuration/hbase-spark/project-info.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-spark/project-info.html b/hbase-build-configuration/hbase-spark/project-info.html
index 5f0594e..3aea7c0 100644
--- a/hbase-build-configuration/hbase-spark/project-info.html
+++ b/hbase-build-configuration/hbase-spark/project-info.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="20171201" />
+    <meta name="Date-Revision-yyyymmdd" content="20171202" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Spark &#x2013; Project Information</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -167,7 +167,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-02</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/29b27596/hbase-build-configuration/hbase-spark/project-reports.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-spark/project-reports.html b/hbase-build-configuration/hbase-spark/project-reports.html
index 81df130..6ed31cd 100644
--- a/hbase-build-configuration/hbase-spark/project-reports.html
+++ b/hbase-build-configuration/hbase-spark/project-reports.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="20171201" />
+    <meta name="Date-Revision-yyyymmdd" content="20171202" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Spark &#x2013; Generated Reports</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -131,7 +131,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-02</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/29b27596/hbase-build-configuration/hbase-spark/project-summary.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-spark/project-summary.html b/hbase-build-configuration/hbase-spark/project-summary.html
index 8f7bbe4..fb4ffe2 100644
--- a/hbase-build-configuration/hbase-spark/project-summary.html
+++ b/hbase-build-configuration/hbase-spark/project-summary.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="20171201" />
+    <meta name="Date-Revision-yyyymmdd" content="20171202" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Spark &#x2013; Project Summary</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -166,7 +166,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-02</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/29b27596/hbase-build-configuration/hbase-spark/source-repository.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-spark/source-repository.html b/hbase-build-configuration/hbase-spark/source-repository.html
index dff6072..0498690 100644
--- a/hbase-build-configuration/hbase-spark/source-repository.html
+++ b/hbase-build-configuration/hbase-spark/source-repository.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="20171201" />
+    <meta name="Date-Revision-yyyymmdd" content="20171202" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Spark &#x2013; Source Code Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -134,7 +134,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-02</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/29b27596/hbase-build-configuration/hbase-spark/team-list.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/hbase-spark/team-list.html b/hbase-build-configuration/hbase-spark/team-list.html
index 49bca3a..c51ad26 100644
--- a/hbase-build-configuration/hbase-spark/team-list.html
+++ b/hbase-build-configuration/hbase-spark/team-list.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="20171201" />
+    <meta name="Date-Revision-yyyymmdd" content="20171202" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Spark &#x2013; Project Team</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -547,7 +547,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-02</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/29b27596/hbase-build-configuration/index.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/index.html b/hbase-build-configuration/index.html
index 8a3aada..1ee9009 100644
--- a/hbase-build-configuration/index.html
+++ b/hbase-build-configuration/index.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="20171201" />
+    <meta name="Date-Revision-yyyymmdd" content="20171202" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Build Configuration &#x2013; About</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -119,7 +119,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-02</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/29b27596/hbase-build-configuration/integration.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/integration.html b/hbase-build-configuration/integration.html
index 1675af5..1076efd 100644
--- a/hbase-build-configuration/integration.html
+++ b/hbase-build-configuration/integration.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="20171201" />
+    <meta name="Date-Revision-yyyymmdd" content="20171202" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Build Configuration &#x2013; CI Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -126,7 +126,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-02</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/29b27596/hbase-build-configuration/issue-tracking.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/issue-tracking.html b/hbase-build-configuration/issue-tracking.html
index b20e7be..98eb81b 100644
--- a/hbase-build-configuration/issue-tracking.html
+++ b/hbase-build-configuration/issue-tracking.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="20171201" />
+    <meta name="Date-Revision-yyyymmdd" content="20171202" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Build Configuration &#x2013; Issue Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -123,7 +123,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-02</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/29b27596/hbase-build-configuration/license.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/license.html b/hbase-build-configuration/license.html
index 7d56482..2012abf 100644
--- a/hbase-build-configuration/license.html
+++ b/hbase-build-configuration/license.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="20171201" />
+    <meta name="Date-Revision-yyyymmdd" content="20171202" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Build Configuration &#x2013; Project Licenses</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -326,7 +326,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-02</li>
             </p>
                 </div>
 


[11/32] hbase-site git commit: Published site at .

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/29b27596/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.RegionScannerHolder.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.RegionScannerHolder.html b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.RegionScannerHolder.html
index b7f041a..c0ea82b 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.RegionScannerHolder.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.RegionScannerHolder.html
@@ -668,2792 +668,2806 @@
 <span class="sourceLineNo">660</span>    }<a name="line.660"></a>
 <span class="sourceLineNo">661</span>    if (regionServer.metricsRegionServer != null) {<a name="line.661"></a>
 <span class="sourceLineNo">662</span>      regionServer.metricsRegionServer.updateAppend(<a name="line.662"></a>
-<span class="sourceLineNo">663</span>        EnvironmentEdgeManager.currentTime() - before);<a name="line.663"></a>
-<span class="sourceLineNo">664</span>    }<a name="line.664"></a>
-<span class="sourceLineNo">665</span>    return r;<a name="line.665"></a>
-<span class="sourceLineNo">666</span>  }<a name="line.666"></a>
-<span class="sourceLineNo">667</span><a name="line.667"></a>
-<span class="sourceLineNo">668</span>  /**<a name="line.668"></a>
-<span class="sourceLineNo">669</span>   * Execute an increment mutation.<a name="line.669"></a>
-<span class="sourceLineNo">670</span>   *<a name="line.670"></a>
-<span class="sourceLineNo">671</span>   * @param region<a name="line.671"></a>
-<span class="sourceLineNo">672</span>   * @param mutation<a name="line.672"></a>
-<span class="sourceLineNo">673</span>   * @return the Result<a name="line.673"></a>
-<span class="sourceLineNo">674</span>   * @throws IOException<a name="line.674"></a>
-<span class="sourceLineNo">675</span>   */<a name="line.675"></a>
-<span class="sourceLineNo">676</span>  private Result increment(final HRegion region, final OperationQuota quota,<a name="line.676"></a>
-<span class="sourceLineNo">677</span>      final MutationProto mutation, final CellScanner cells, long nonceGroup,<a name="line.677"></a>
-<span class="sourceLineNo">678</span>      ActivePolicyEnforcement spaceQuota)<a name="line.678"></a>
-<span class="sourceLineNo">679</span>      throws IOException {<a name="line.679"></a>
-<span class="sourceLineNo">680</span>    long before = EnvironmentEdgeManager.currentTime();<a name="line.680"></a>
-<span class="sourceLineNo">681</span>    Increment increment = ProtobufUtil.toIncrement(mutation, cells);<a name="line.681"></a>
-<span class="sourceLineNo">682</span>    checkCellSizeLimit(region, increment);<a name="line.682"></a>
-<span class="sourceLineNo">683</span>    spaceQuota.getPolicyEnforcement(region).check(increment);<a name="line.683"></a>
-<span class="sourceLineNo">684</span>    quota.addMutation(increment);<a name="line.684"></a>
-<span class="sourceLineNo">685</span>    Result r = null;<a name="line.685"></a>
-<span class="sourceLineNo">686</span>    if (region.getCoprocessorHost() != null) {<a name="line.686"></a>
-<span class="sourceLineNo">687</span>      r = region.getCoprocessorHost().preIncrement(increment);<a name="line.687"></a>
-<span class="sourceLineNo">688</span>    }<a name="line.688"></a>
-<span class="sourceLineNo">689</span>    if (r == null) {<a name="line.689"></a>
-<span class="sourceLineNo">690</span>      boolean canProceed = startNonceOperation(mutation, nonceGroup);<a name="line.690"></a>
-<span class="sourceLineNo">691</span>      boolean success = false;<a name="line.691"></a>
-<span class="sourceLineNo">692</span>      try {<a name="line.692"></a>
-<span class="sourceLineNo">693</span>        long nonce = mutation.hasNonce() ? mutation.getNonce() : HConstants.NO_NONCE;<a name="line.693"></a>
-<span class="sourceLineNo">694</span>        if (canProceed) {<a name="line.694"></a>
-<span class="sourceLineNo">695</span>          r = region.increment(increment, nonceGroup, nonce);<a name="line.695"></a>
-<span class="sourceLineNo">696</span>        } else {<a name="line.696"></a>
-<span class="sourceLineNo">697</span>          // convert duplicate increment to get<a name="line.697"></a>
-<span class="sourceLineNo">698</span>          List&lt;Cell&gt; results = region.get(ProtobufUtil.toGet(mutation, cells), false, nonceGroup,<a name="line.698"></a>
-<span class="sourceLineNo">699</span>              nonce);<a name="line.699"></a>
-<span class="sourceLineNo">700</span>          r = Result.create(results);<a name="line.700"></a>
-<span class="sourceLineNo">701</span>        }<a name="line.701"></a>
-<span class="sourceLineNo">702</span>        success = true;<a name="line.702"></a>
-<span class="sourceLineNo">703</span>      } finally {<a name="line.703"></a>
-<span class="sourceLineNo">704</span>        if (canProceed) {<a name="line.704"></a>
-<span class="sourceLineNo">705</span>          endNonceOperation(mutation, nonceGroup, success);<a name="line.705"></a>
-<span class="sourceLineNo">706</span>        }<a name="line.706"></a>
-<span class="sourceLineNo">707</span>      }<a name="line.707"></a>
-<span class="sourceLineNo">708</span>      if (region.getCoprocessorHost() != null) {<a name="line.708"></a>
-<span class="sourceLineNo">709</span>        r = region.getCoprocessorHost().postIncrement(increment, r);<a name="line.709"></a>
-<span class="sourceLineNo">710</span>      }<a name="line.710"></a>
-<span class="sourceLineNo">711</span>    }<a name="line.711"></a>
-<span class="sourceLineNo">712</span>    if (regionServer.metricsRegionServer != null) {<a name="line.712"></a>
-<span class="sourceLineNo">713</span>      regionServer.metricsRegionServer.updateIncrement(<a name="line.713"></a>
-<span class="sourceLineNo">714</span>        EnvironmentEdgeManager.currentTime() - before);<a name="line.714"></a>
-<span class="sourceLineNo">715</span>    }<a name="line.715"></a>
-<span class="sourceLineNo">716</span>    return r;<a name="line.716"></a>
-<span class="sourceLineNo">717</span>  }<a name="line.717"></a>
-<span class="sourceLineNo">718</span><a name="line.718"></a>
-<span class="sourceLineNo">719</span>  /**<a name="line.719"></a>
-<span class="sourceLineNo">720</span>   * Run through the regionMutation &lt;code&gt;rm&lt;/code&gt; and per Mutation, do the work, and then when<a name="line.720"></a>
-<span class="sourceLineNo">721</span>   * done, add an instance of a {@link ResultOrException} that corresponds to each Mutation.<a name="line.721"></a>
-<span class="sourceLineNo">722</span>   * @param cellsToReturn  Could be null. May be allocated in this method.  This is what this<a name="line.722"></a>
-<span class="sourceLineNo">723</span>   * method returns as a 'result'.<a name="line.723"></a>
-<span class="sourceLineNo">724</span>   * @param closeCallBack the callback to be used with multigets<a name="line.724"></a>
-<span class="sourceLineNo">725</span>   * @param context the current RpcCallContext<a name="line.725"></a>
-<span class="sourceLineNo">726</span>   * @return Return the &lt;code&gt;cellScanner&lt;/code&gt; passed<a name="line.726"></a>
-<span class="sourceLineNo">727</span>   */<a name="line.727"></a>
-<span class="sourceLineNo">728</span>  private List&lt;CellScannable&gt; doNonAtomicRegionMutation(final HRegion region,<a name="line.728"></a>
-<span class="sourceLineNo">729</span>      final OperationQuota quota, final RegionAction actions, final CellScanner cellScanner,<a name="line.729"></a>
-<span class="sourceLineNo">730</span>      final RegionActionResult.Builder builder, List&lt;CellScannable&gt; cellsToReturn, long nonceGroup,<a name="line.730"></a>
-<span class="sourceLineNo">731</span>      final RegionScannersCloseCallBack closeCallBack, RpcCallContext context,<a name="line.731"></a>
-<span class="sourceLineNo">732</span>      ActivePolicyEnforcement spaceQuotaEnforcement) {<a name="line.732"></a>
-<span class="sourceLineNo">733</span>    // Gather up CONTIGUOUS Puts and Deletes in this mutations List.  Idea is that rather than do<a name="line.733"></a>
-<span class="sourceLineNo">734</span>    // one at a time, we instead pass them in batch.  Be aware that the corresponding<a name="line.734"></a>
-<span class="sourceLineNo">735</span>    // ResultOrException instance that matches each Put or Delete is then added down in the<a name="line.735"></a>
-<span class="sourceLineNo">736</span>    // doBatchOp call.  We should be staying aligned though the Put and Delete are deferred/batched<a name="line.736"></a>
-<span class="sourceLineNo">737</span>    List&lt;ClientProtos.Action&gt; mutations = null;<a name="line.737"></a>
-<span class="sourceLineNo">738</span>    long maxQuotaResultSize = Math.min(maxScannerResultSize, quota.getReadAvailable());<a name="line.738"></a>
-<span class="sourceLineNo">739</span>    IOException sizeIOE = null;<a name="line.739"></a>
-<span class="sourceLineNo">740</span>    Object lastBlock = null;<a name="line.740"></a>
-<span class="sourceLineNo">741</span>    ClientProtos.ResultOrException.Builder resultOrExceptionBuilder = ResultOrException.newBuilder();<a name="line.741"></a>
-<span class="sourceLineNo">742</span>    boolean hasResultOrException = false;<a name="line.742"></a>
-<span class="sourceLineNo">743</span>    for (ClientProtos.Action action : actions.getActionList()) {<a name="line.743"></a>
-<span class="sourceLineNo">744</span>      hasResultOrException = false;<a name="line.744"></a>
-<span class="sourceLineNo">745</span>      resultOrExceptionBuilder.clear();<a name="line.745"></a>
-<span class="sourceLineNo">746</span>      try {<a name="line.746"></a>
-<span class="sourceLineNo">747</span>        Result r = null;<a name="line.747"></a>
-<span class="sourceLineNo">748</span><a name="line.748"></a>
-<span class="sourceLineNo">749</span>        if (context != null<a name="line.749"></a>
-<span class="sourceLineNo">750</span>            &amp;&amp; context.isRetryImmediatelySupported()<a name="line.750"></a>
-<span class="sourceLineNo">751</span>            &amp;&amp; (context.getResponseCellSize() &gt; maxQuotaResultSize<a name="line.751"></a>
-<span class="sourceLineNo">752</span>              || context.getResponseBlockSize() + context.getResponseExceptionSize()<a name="line.752"></a>
-<span class="sourceLineNo">753</span>              &gt; maxQuotaResultSize)) {<a name="line.753"></a>
-<span class="sourceLineNo">754</span><a name="line.754"></a>
-<span class="sourceLineNo">755</span>          // We're storing the exception since the exception and reason string won't<a name="line.755"></a>
-<span class="sourceLineNo">756</span>          // change after the response size limit is reached.<a name="line.756"></a>
-<span class="sourceLineNo">757</span>          if (sizeIOE == null ) {<a name="line.757"></a>
-<span class="sourceLineNo">758</span>            // We don't need the stack un-winding do don't throw the exception.<a name="line.758"></a>
-<span class="sourceLineNo">759</span>            // Throwing will kill the JVM's JIT.<a name="line.759"></a>
-<span class="sourceLineNo">760</span>            //<a name="line.760"></a>
-<span class="sourceLineNo">761</span>            // Instead just create the exception and then store it.<a name="line.761"></a>
-<span class="sourceLineNo">762</span>            sizeIOE = new MultiActionResultTooLarge("Max size exceeded"<a name="line.762"></a>
-<span class="sourceLineNo">763</span>                + " CellSize: " + context.getResponseCellSize()<a name="line.763"></a>
-<span class="sourceLineNo">764</span>                + " BlockSize: " + context.getResponseBlockSize());<a name="line.764"></a>
-<span class="sourceLineNo">765</span><a name="line.765"></a>
-<span class="sourceLineNo">766</span>            // Only report the exception once since there's only one request that<a name="line.766"></a>
-<span class="sourceLineNo">767</span>            // caused the exception. Otherwise this number will dominate the exceptions count.<a name="line.767"></a>
-<span class="sourceLineNo">768</span>            rpcServer.getMetrics().exception(sizeIOE);<a name="line.768"></a>
-<span class="sourceLineNo">769</span>          }<a name="line.769"></a>
-<span class="sourceLineNo">770</span><a name="line.770"></a>
-<span class="sourceLineNo">771</span>          // Now that there's an exception is known to be created<a name="line.771"></a>
-<span class="sourceLineNo">772</span>          // use it for the response.<a name="line.772"></a>
-<span class="sourceLineNo">773</span>          //<a name="line.773"></a>
-<span class="sourceLineNo">774</span>          // This will create a copy in the builder.<a name="line.774"></a>
-<span class="sourceLineNo">775</span>          hasResultOrException = true;<a name="line.775"></a>
-<span class="sourceLineNo">776</span>          NameBytesPair pair = ResponseConverter.buildException(sizeIOE);<a name="line.776"></a>
-<span class="sourceLineNo">777</span>          resultOrExceptionBuilder.setException(pair);<a name="line.777"></a>
-<span class="sourceLineNo">778</span>          context.incrementResponseExceptionSize(pair.getSerializedSize());<a name="line.778"></a>
-<span class="sourceLineNo">779</span>          resultOrExceptionBuilder.setIndex(action.getIndex());<a name="line.779"></a>
-<span class="sourceLineNo">780</span>          builder.addResultOrException(resultOrExceptionBuilder.build());<a name="line.780"></a>
-<span class="sourceLineNo">781</span>          if (cellScanner != null) {<a name="line.781"></a>
-<span class="sourceLineNo">782</span>            skipCellsForMutation(action, cellScanner);<a name="line.782"></a>
-<span class="sourceLineNo">783</span>          }<a name="line.783"></a>
-<span class="sourceLineNo">784</span>          continue;<a name="line.784"></a>
-<span class="sourceLineNo">785</span>        }<a name="line.785"></a>
-<span class="sourceLineNo">786</span>        if (action.hasGet()) {<a name="line.786"></a>
-<span class="sourceLineNo">787</span>          long before = EnvironmentEdgeManager.currentTime();<a name="line.787"></a>
-<span class="sourceLineNo">788</span>          try {<a name="line.788"></a>
-<span class="sourceLineNo">789</span>            Get get = ProtobufUtil.toGet(action.getGet());<a name="line.789"></a>
-<span class="sourceLineNo">790</span>            if (context != null) {<a name="line.790"></a>
-<span class="sourceLineNo">791</span>              r = get(get, ((HRegion) region), closeCallBack, context);<a name="line.791"></a>
-<span class="sourceLineNo">792</span>            } else {<a name="line.792"></a>
-<span class="sourceLineNo">793</span>              r = region.get(get);<a name="line.793"></a>
-<span class="sourceLineNo">794</span>            }<a name="line.794"></a>
-<span class="sourceLineNo">795</span>          } finally {<a name="line.795"></a>
-<span class="sourceLineNo">796</span>            if (regionServer.metricsRegionServer != null) {<a name="line.796"></a>
-<span class="sourceLineNo">797</span>              regionServer.metricsRegionServer.updateGet(<a name="line.797"></a>
-<span class="sourceLineNo">798</span>                EnvironmentEdgeManager.currentTime() - before);<a name="line.798"></a>
-<span class="sourceLineNo">799</span>            }<a name="line.799"></a>
-<span class="sourceLineNo">800</span>          }<a name="line.800"></a>
-<span class="sourceLineNo">801</span>        } else if (action.hasServiceCall()) {<a name="line.801"></a>
-<span class="sourceLineNo">802</span>          hasResultOrException = true;<a name="line.802"></a>
-<span class="sourceLineNo">803</span>          try {<a name="line.803"></a>
-<span class="sourceLineNo">804</span>            com.google.protobuf.Message result =<a name="line.804"></a>
-<span class="sourceLineNo">805</span>                execServiceOnRegion(region, action.getServiceCall());<a name="line.805"></a>
-<span class="sourceLineNo">806</span>            ClientProtos.CoprocessorServiceResult.Builder serviceResultBuilder =<a name="line.806"></a>
-<span class="sourceLineNo">807</span>                ClientProtos.CoprocessorServiceResult.newBuilder();<a name="line.807"></a>
-<span class="sourceLineNo">808</span>            resultOrExceptionBuilder.setServiceResult(<a name="line.808"></a>
-<span class="sourceLineNo">809</span>                serviceResultBuilder.setValue(<a name="line.809"></a>
-<span class="sourceLineNo">810</span>                  serviceResultBuilder.getValueBuilder()<a name="line.810"></a>
-<span class="sourceLineNo">811</span>                    .setName(result.getClass().getName())<a name="line.811"></a>
-<span class="sourceLineNo">812</span>                    // TODO: Copy!!!<a name="line.812"></a>
-<span class="sourceLineNo">813</span>                    .setValue(UnsafeByteOperations.unsafeWrap(result.toByteArray()))));<a name="line.813"></a>
-<span class="sourceLineNo">814</span>          } catch (IOException ioe) {<a name="line.814"></a>
-<span class="sourceLineNo">815</span>            rpcServer.getMetrics().exception(ioe);<a name="line.815"></a>
-<span class="sourceLineNo">816</span>            NameBytesPair pair = ResponseConverter.buildException(ioe);<a name="line.816"></a>
-<span class="sourceLineNo">817</span>            resultOrExceptionBuilder.setException(pair);<a name="line.817"></a>
-<span class="sourceLineNo">818</span>            context.incrementResponseExceptionSize(pair.getSerializedSize());<a name="line.818"></a>
-<span class="sourceLineNo">819</span>          }<a name="line.819"></a>
-<span class="sourceLineNo">820</span>        } else if (action.hasMutation()) {<a name="line.820"></a>
-<span class="sourceLineNo">821</span>          MutationType type = action.getMutation().getMutateType();<a name="line.821"></a>
-<span class="sourceLineNo">822</span>          if (type != MutationType.PUT &amp;&amp; type != MutationType.DELETE &amp;&amp; mutations != null &amp;&amp;<a name="line.822"></a>
-<span class="sourceLineNo">823</span>              !mutations.isEmpty()) {<a name="line.823"></a>
-<span class="sourceLineNo">824</span>            // Flush out any Puts or Deletes already collected.<a name="line.824"></a>
-<span class="sourceLineNo">825</span>            doBatchOp(builder, region, quota, mutations, cellScanner, spaceQuotaEnforcement, false);<a name="line.825"></a>
-<span class="sourceLineNo">826</span>            mutations.clear();<a name="line.826"></a>
-<span class="sourceLineNo">827</span>          }<a name="line.827"></a>
-<span class="sourceLineNo">828</span>          switch (type) {<a name="line.828"></a>
-<span class="sourceLineNo">829</span>            case APPEND:<a name="line.829"></a>
-<span class="sourceLineNo">830</span>              r = append(region, quota, action.getMutation(), cellScanner, nonceGroup,<a name="line.830"></a>
-<span class="sourceLineNo">831</span>                  spaceQuotaEnforcement);<a name="line.831"></a>
-<span class="sourceLineNo">832</span>              break;<a name="line.832"></a>
-<span class="sourceLineNo">833</span>            case INCREMENT:<a name="line.833"></a>
-<span class="sourceLineNo">834</span>              r = increment(region, quota, action.getMutation(), cellScanner, nonceGroup,<a name="line.834"></a>
-<span class="sourceLineNo">835</span>                  spaceQuotaEnforcement);<a name="line.835"></a>
-<span class="sourceLineNo">836</span>              break;<a name="line.836"></a>
-<span class="sourceLineNo">837</span>            case PUT:<a name="line.837"></a>
-<span class="sourceLineNo">838</span>            case DELETE:<a name="line.838"></a>
-<span class="sourceLineNo">839</span>              // Collect the individual mutations and apply in a batch<a name="line.839"></a>
-<span class="sourceLineNo">840</span>              if (mutations == null) {<a name="line.840"></a>
-<span class="sourceLineNo">841</span>                mutations = new ArrayList&lt;&gt;(actions.getActionCount());<a name="line.841"></a>
-<span class="sourceLineNo">842</span>              }<a name="line.842"></a>
-<span class="sourceLineNo">843</span>              mutations.add(action);<a name="line.843"></a>
-<span class="sourceLineNo">844</span>              break;<a name="line.844"></a>
-<span class="sourceLineNo">845</span>            default:<a name="line.845"></a>
-<span class="sourceLineNo">846</span>              throw new DoNotRetryIOException("Unsupported mutate type: " + type.name());<a name="line.846"></a>
-<span class="sourceLineNo">847</span>          }<a name="line.847"></a>
-<span class="sourceLineNo">848</span>        } else {<a name="line.848"></a>
-<span class="sourceLineNo">849</span>          throw new HBaseIOException("Unexpected Action type");<a name="line.849"></a>
-<span class="sourceLineNo">850</span>        }<a name="line.850"></a>
-<span class="sourceLineNo">851</span>        if (r != null) {<a name="line.851"></a>
-<span class="sourceLineNo">852</span>          ClientProtos.Result pbResult = null;<a name="line.852"></a>
-<span class="sourceLineNo">853</span>          if (isClientCellBlockSupport(context)) {<a name="line.853"></a>
-<span class="sourceLineNo">854</span>            pbResult = ProtobufUtil.toResultNoData(r);<a name="line.854"></a>
-<span class="sourceLineNo">855</span>            //  Hard to guess the size here.  Just make a rough guess.<a name="line.855"></a>
-<span class="sourceLineNo">856</span>            if (cellsToReturn == null) {<a name="line.856"></a>
-<span class="sourceLineNo">857</span>              cellsToReturn = new ArrayList&lt;&gt;();<a name="line.857"></a>
-<span class="sourceLineNo">858</span>            }<a name="line.858"></a>
-<span class="sourceLineNo">859</span>            cellsToReturn.add(r);<a name="line.859"></a>
-<span class="sourceLineNo">860</span>          } else {<a name="line.860"></a>
-<span class="sourceLineNo">861</span>            pbResult = ProtobufUtil.toResult(r);<a name="line.861"></a>
-<span class="sourceLineNo">862</span>          }<a name="line.862"></a>
-<span class="sourceLineNo">863</span>          lastBlock = addSize(context, r, lastBlock);<a name="line.863"></a>
-<span class="sourceLineNo">864</span>          hasResultOrException = true;<a name="line.864"></a>
-<span class="sourceLineNo">865</span>          resultOrExceptionBuilder.setResult(pbResult);<a name="line.865"></a>
-<span class="sourceLineNo">866</span>        }<a name="line.866"></a>
-<span class="sourceLineNo">867</span>        // Could get to here and there was no result and no exception.  Presumes we added<a name="line.867"></a>
-<span class="sourceLineNo">868</span>        // a Put or Delete to the collecting Mutations List for adding later.  In this<a name="line.868"></a>
-<span class="sourceLineNo">869</span>        // case the corresponding ResultOrException instance for the Put or Delete will be added<a name="line.869"></a>
-<span class="sourceLineNo">870</span>        // down in the doBatchOp method call rather than up here.<a name="line.870"></a>
-<span class="sourceLineNo">871</span>      } catch (IOException ie) {<a name="line.871"></a>
-<span class="sourceLineNo">872</span>        rpcServer.getMetrics().exception(ie);<a name="line.872"></a>
-<span class="sourceLineNo">873</span>        hasResultOrException = true;<a name="line.873"></a>
-<span class="sourceLineNo">874</span>        NameBytesPair pair = ResponseConverter.buildException(ie);<a name="line.874"></a>
-<span class="sourceLineNo">875</span>        resultOrExceptionBuilder.setException(pair);<a name="line.875"></a>
-<span class="sourceLineNo">876</span>        context.incrementResponseExceptionSize(pair.getSerializedSize());<a name="line.876"></a>
-<span class="sourceLineNo">877</span>      }<a name="line.877"></a>
-<span class="sourceLineNo">878</span>      if (hasResultOrException) {<a name="line.878"></a>
-<span class="sourceLineNo">879</span>        // Propagate index.<a name="line.879"></a>
-<span class="sourceLineNo">880</span>        resultOrExceptionBuilder.setIndex(action.getIndex());<a name="line.880"></a>
-<span class="sourceLineNo">881</span>        builder.addResultOrException(resultOrExceptionBuilder.build());<a name="line.881"></a>
-<span class="sourceLineNo">882</span>      }<a name="line.882"></a>
-<span class="sourceLineNo">883</span>    }<a name="line.883"></a>
-<span class="sourceLineNo">884</span>    // Finish up any outstanding mutations<a name="line.884"></a>
-<span class="sourceLineNo">885</span>    if (mutations != null &amp;&amp; !mutations.isEmpty()) {<a name="line.885"></a>
-<span class="sourceLineNo">886</span>      try {<a name="line.886"></a>
-<span class="sourceLineNo">887</span>        doBatchOp(builder, region, quota, mutations, cellScanner, spaceQuotaEnforcement, false);<a name="line.887"></a>
-<span class="sourceLineNo">888</span>      } catch (IOException ioe) {<a name="line.888"></a>
-<span class="sourceLineNo">889</span>        rpcServer.getMetrics().exception(ioe);<a name="line.889"></a>
-<span class="sourceLineNo">890</span>        NameBytesPair pair = ResponseConverter.buildException(ioe);<a name="line.890"></a>
-<span class="sourceLineNo">891</span>        resultOrExceptionBuilder.setException(pair);<a name="line.891"></a>
-<span class="sourceLineNo">892</span>        context.incrementResponseExceptionSize(pair.getSerializedSize());<a name="line.892"></a>
-<span class="sourceLineNo">893</span>        builder.addResultOrException(resultOrExceptionBuilder.build());<a name="line.893"></a>
-<span class="sourceLineNo">894</span>      }<a name="line.894"></a>
-<span class="sourceLineNo">895</span>    }<a name="line.895"></a>
-<span class="sourceLineNo">896</span>    return cellsToReturn;<a name="line.896"></a>
-<span class="sourceLineNo">897</span>  }<a name="line.897"></a>
-<span class="sourceLineNo">898</span><a name="line.898"></a>
-<span class="sourceLineNo">899</span>  private void checkCellSizeLimit(final HRegion r, final Mutation m) throws IOException {<a name="line.899"></a>
-<span class="sourceLineNo">900</span>    if (r.maxCellSize &gt; 0) {<a name="line.900"></a>
-<span class="sourceLineNo">901</span>      CellScanner cells = m.cellScanner();<a name="line.901"></a>
-<span class="sourceLineNo">902</span>      while (cells.advance()) {<a name="line.902"></a>
-<span class="sourceLineNo">903</span>        int size = PrivateCellUtil.estimatedSerializedSizeOf(cells.current());<a name="line.903"></a>
-<span class="sourceLineNo">904</span>        if (size &gt; r.maxCellSize) {<a name="line.904"></a>
-<span class="sourceLineNo">905</span>          String msg = "Cell with size " + size + " exceeds limit of " + r.maxCellSize + " bytes";<a name="line.905"></a>
-<span class="sourceLineNo">906</span>          if (LOG.isDebugEnabled()) {<a name="line.906"></a>
-<span class="sourceLineNo">907</span>            LOG.debug(msg);<a name="line.907"></a>
-<span class="sourceLineNo">908</span>          }<a name="line.908"></a>
-<span class="sourceLineNo">909</span>          throw new DoNotRetryIOException(msg);<a name="line.909"></a>
-<span class="sourceLineNo">910</span>        }<a name="line.910"></a>
-<span class="sourceLineNo">911</span>      }<a name="line.911"></a>
-<span class="sourceLineNo">912</span>    }<a name="line.912"></a>
-<span class="sourceLineNo">913</span>  }<a name="line.913"></a>
-<span class="sourceLineNo">914</span><a name="line.914"></a>
-<span class="sourceLineNo">915</span>  /**<a name="line.915"></a>
-<span class="sourceLineNo">916</span>   * Execute a list of Put/Delete mutations.<a name="line.916"></a>
-<span class="sourceLineNo">917</span>   *<a name="line.917"></a>
-<span class="sourceLineNo">918</span>   * @param builder<a name="line.918"></a>
-<span class="sourceLineNo">919</span>   * @param region<a name="line.919"></a>
-<span class="sourceLineNo">920</span>   * @param mutations<a name="line.920"></a>
-<span class="sourceLineNo">921</span>   */<a name="line.921"></a>
-<span class="sourceLineNo">922</span>  private void doBatchOp(final RegionActionResult.Builder builder, final HRegion region,<a name="line.922"></a>
-<span class="sourceLineNo">923</span>      final OperationQuota quota, final List&lt;ClientProtos.Action&gt; mutations,<a name="line.923"></a>
-<span class="sourceLineNo">924</span>      final CellScanner cells, ActivePolicyEnforcement spaceQuotaEnforcement, boolean atomic)<a name="line.924"></a>
-<span class="sourceLineNo">925</span>      throws IOException {<a name="line.925"></a>
-<span class="sourceLineNo">926</span>    Mutation[] mArray = new Mutation[mutations.size()];<a name="line.926"></a>
-<span class="sourceLineNo">927</span>    long before = EnvironmentEdgeManager.currentTime();<a name="line.927"></a>
-<span class="sourceLineNo">928</span>    boolean batchContainsPuts = false, batchContainsDelete = false;<a name="line.928"></a>
-<span class="sourceLineNo">929</span>    try {<a name="line.929"></a>
-<span class="sourceLineNo">930</span>      /** HBASE-17924<a name="line.930"></a>
-<span class="sourceLineNo">931</span>       * mutationActionMap is a map to map the relation between mutations and actions<a name="line.931"></a>
-<span class="sourceLineNo">932</span>       * since mutation array may have been reoredered.In order to return the right<a name="line.932"></a>
-<span class="sourceLineNo">933</span>       * result or exception to the corresponding actions, We need to know which action<a name="line.933"></a>
-<span class="sourceLineNo">934</span>       * is the mutation belong to. We can't sort ClientProtos.Action array, since they<a name="line.934"></a>
-<span class="sourceLineNo">935</span>       * are bonded to cellscanners.<a name="line.935"></a>
-<span class="sourceLineNo">936</span>       */<a name="line.936"></a>
-<span class="sourceLineNo">937</span>      Map&lt;Mutation, ClientProtos.Action&gt; mutationActionMap = new HashMap&lt;&gt;();<a name="line.937"></a>
-<span class="sourceLineNo">938</span>      int i = 0;<a name="line.938"></a>
-<span class="sourceLineNo">939</span>      for (ClientProtos.Action action: mutations) {<a name="line.939"></a>
-<span class="sourceLineNo">940</span>        MutationProto m = action.getMutation();<a name="line.940"></a>
-<span class="sourceLineNo">941</span>        Mutation mutation;<a name="line.941"></a>
-<span class="sourceLineNo">942</span>        if (m.getMutateType() == MutationType.PUT) {<a name="line.942"></a>
-<span class="sourceLineNo">943</span>          mutation = ProtobufUtil.toPut(m, cells);<a name="line.943"></a>
-<span class="sourceLineNo">944</span>          batchContainsPuts = true;<a name="line.944"></a>
-<span class="sourceLineNo">945</span>        } else {<a name="line.945"></a>
-<span class="sourceLineNo">946</span>          mutation = ProtobufUtil.toDelete(m, cells);<a name="line.946"></a>
-<span class="sourceLineNo">947</span>          batchContainsDelete = true;<a name="line.947"></a>
-<span class="sourceLineNo">948</span>        }<a name="line.948"></a>
-<span class="sourceLineNo">949</span>        mutationActionMap.put(mutation, action);<a name="line.949"></a>
-<span class="sourceLineNo">950</span>        mArray[i++] = mutation;<a name="line.950"></a>
-<span class="sourceLineNo">951</span>        checkCellSizeLimit(region, mutation);<a name="line.951"></a>
-<span class="sourceLineNo">952</span>        // Check if a space quota disallows this mutation<a name="line.952"></a>
-<span class="sourceLineNo">953</span>        spaceQuotaEnforcement.getPolicyEnforcement(region).check(mutation);<a name="line.953"></a>
-<span class="sourceLineNo">954</span>        quota.addMutation(mutation);<a name="line.954"></a>
-<span class="sourceLineNo">955</span>      }<a name="line.955"></a>
-<span class="sourceLineNo">956</span><a name="line.956"></a>
-<span class="sourceLineNo">957</span>      if (!region.getRegionInfo().isMetaRegion()) {<a name="line.957"></a>
-<span class="sourceLineNo">958</span>        regionServer.cacheFlusher.reclaimMemStoreMemory();<a name="line.958"></a>
-<span class="sourceLineNo">959</span>      }<a name="line.959"></a>
-<span class="sourceLineNo">960</span><a name="line.960"></a>
-<span class="sourceLineNo">961</span>      // HBASE-17924<a name="line.961"></a>
-<span class="sourceLineNo">962</span>      // Sort to improve lock efficiency for non-atomic batch of operations. If atomic (mostly<a name="line.962"></a>
-<span class="sourceLineNo">963</span>      // called from mutateRows()), order is preserved as its expected from the client<a name="line.963"></a>
-<span class="sourceLineNo">964</span>      if (!atomic) {<a name="line.964"></a>
-<span class="sourceLineNo">965</span>        Arrays.sort(mArray);<a name="line.965"></a>
-<span class="sourceLineNo">966</span>      }<a name="line.966"></a>
-<span class="sourceLineNo">967</span><a name="line.967"></a>
-<span class="sourceLineNo">968</span>      OperationStatus[] codes = region.batchMutate(mArray, atomic, HConstants.NO_NONCE,<a name="line.968"></a>
-<span class="sourceLineNo">969</span>        HConstants.NO_NONCE);<a name="line.969"></a>
-<span class="sourceLineNo">970</span>      for (i = 0; i &lt; codes.length; i++) {<a name="line.970"></a>
-<span class="sourceLineNo">971</span>        Mutation currentMutation = mArray[i];<a name="line.971"></a>
-<span class="sourceLineNo">972</span>        ClientProtos.Action currentAction = mutationActionMap.get(currentMutation);<a name="line.972"></a>
-<span class="sourceLineNo">973</span>        int index = currentAction.hasIndex() || !atomic ? currentAction.getIndex() : i;<a name="line.973"></a>
-<span class="sourceLineNo">974</span>        Exception e = null;<a name="line.974"></a>
-<span class="sourceLineNo">975</span>        switch (codes[i].getOperationStatusCode()) {<a name="line.975"></a>
-<span class="sourceLineNo">976</span>          case BAD_FAMILY:<a name="line.976"></a>
-<span class="sourceLineNo">977</span>            e = new NoSuchColumnFamilyException(codes[i].getExceptionMsg());<a name="line.977"></a>
-<span class="sourceLineNo">978</span>            builder.addResultOrException(getResultOrException(e, index));<a name="line.978"></a>
-<span class="sourceLineNo">979</span>            break;<a name="line.979"></a>
-<span class="sourceLineNo">980</span><a name="line.980"></a>
-<span class="sourceLineNo">981</span>          case SANITY_CHECK_FAILURE:<a name="line.981"></a>
-<span class="sourceLineNo">982</span>            e = new FailedSanityCheckException(codes[i].getExceptionMsg());<a name="line.982"></a>
-<span class="sourceLineNo">983</span>            builder.addResultOrException(getResultOrException(e, index));<a name="line.983"></a>
-<span class="sourceLineNo">984</span>            break;<a name="line.984"></a>
-<span class="sourceLineNo">985</span><a name="line.985"></a>
-<span class="sourceLineNo">986</span>          default:<a name="line.986"></a>
-<span class="sourceLineNo">987</span>            e = new DoNotRetryIOException(codes[i].getExceptionMsg());<a name="line.987"></a>
-<span class="sourceLineNo">988</span>            builder.addResultOrException(getResultOrException(e, index));<a name="line.988"></a>
-<span class="sourceLineNo">989</span>            break;<a name="line.989"></a>
-<span class="sourceLineNo">990</span><a name="line.990"></a>
-<span class="sourceLineNo">991</span>          case SUCCESS:<a name="line.991"></a>
-<span class="sourceLineNo">992</span>            builder.addResultOrException(getResultOrException(<a name="line.992"></a>
-<span class="sourceLineNo">993</span>              ClientProtos.Result.getDefaultInstance(), index));<a name="line.993"></a>
-<span class="sourceLineNo">994</span>            break;<a name="line.994"></a>
-<span class="sourceLineNo">995</span>        }<a name="line.995"></a>
-<span class="sourceLineNo">996</span>      }<a name="line.996"></a>
-<span class="sourceLineNo">997</span>    } catch (IOException ie) {<a name="line.997"></a>
-<span class="sourceLineNo">998</span>      if (atomic) {<a name="line.998"></a>
-<span class="sourceLineNo">999</span>        throw ie;<a name="line.999"></a>
-<span class="sourceLineNo">1000</span>      }<a name="line.1000"></a>
-<span class="sourceLineNo">1001</span>      for (Action mutation : mutations) {<a name="line.1001"></a>
-<span class="sourceLineNo">1002</span>        builder.addResultOrException(getResultOrException(ie, mutation.getIndex()));<a name="line.1002"></a>
+<span class="sourceLineNo">663</span>          region.getTableDescriptor().getTableName(),<a name="line.663"></a>
+<span class="sourceLineNo">664</span>        EnvironmentEdgeManager.currentTime() - before);<a name="line.664"></a>
+<span class="sourceLineNo">665</span>    }<a name="line.665"></a>
+<span class="sourceLineNo">666</span>    return r;<a name="line.666"></a>
+<span class="sourceLineNo">667</span>  }<a name="line.667"></a>
+<span class="sourceLineNo">668</span><a name="line.668"></a>
+<span class="sourceLineNo">669</span>  /**<a name="line.669"></a>
+<span class="sourceLineNo">670</span>   * Execute an increment mutation.<a name="line.670"></a>
+<span class="sourceLineNo">671</span>   *<a name="line.671"></a>
+<span class="sourceLineNo">672</span>   * @param region<a name="line.672"></a>
+<span class="sourceLineNo">673</span>   * @param mutation<a name="line.673"></a>
+<span class="sourceLineNo">674</span>   * @return the Result<a name="line.674"></a>
+<span class="sourceLineNo">675</span>   * @throws IOException<a name="line.675"></a>
+<span class="sourceLineNo">676</span>   */<a name="line.676"></a>
+<span class="sourceLineNo">677</span>  private Result increment(final HRegion region, final OperationQuota quota,<a name="line.677"></a>
+<span class="sourceLineNo">678</span>      final MutationProto mutation, final CellScanner cells, long nonceGroup,<a name="line.678"></a>
+<span class="sourceLineNo">679</span>      ActivePolicyEnforcement spaceQuota)<a name="line.679"></a>
+<span class="sourceLineNo">680</span>      throws IOException {<a name="line.680"></a>
+<span class="sourceLineNo">681</span>    long before = EnvironmentEdgeManager.currentTime();<a name="line.681"></a>
+<span class="sourceLineNo">682</span>    Increment increment = ProtobufUtil.toIncrement(mutation, cells);<a name="line.682"></a>
+<span class="sourceLineNo">683</span>    checkCellSizeLimit(region, increment);<a name="line.683"></a>
+<span class="sourceLineNo">684</span>    spaceQuota.getPolicyEnforcement(region).check(increment);<a name="line.684"></a>
+<span class="sourceLineNo">685</span>    quota.addMutation(increment);<a name="line.685"></a>
+<span class="sourceLineNo">686</span>    Result r = null;<a name="line.686"></a>
+<span class="sourceLineNo">687</span>    if (region.getCoprocessorHost() != null) {<a name="line.687"></a>
+<span class="sourceLineNo">688</span>      r = region.getCoprocessorHost().preIncrement(increment);<a name="line.688"></a>
+<span class="sourceLineNo">689</span>    }<a name="line.689"></a>
+<span class="sourceLineNo">690</span>    if (r == null) {<a name="line.690"></a>
+<span class="sourceLineNo">691</span>      boolean canProceed = startNonceOperation(mutation, nonceGroup);<a name="line.691"></a>
+<span class="sourceLineNo">692</span>      boolean success = false;<a name="line.692"></a>
+<span class="sourceLineNo">693</span>      try {<a name="line.693"></a>
+<span class="sourceLineNo">694</span>        long nonce = mutation.hasNonce() ? mutation.getNonce() : HConstants.NO_NONCE;<a name="line.694"></a>
+<span class="sourceLineNo">695</span>        if (canProceed) {<a name="line.695"></a>
+<span class="sourceLineNo">696</span>          r = region.increment(increment, nonceGroup, nonce);<a name="line.696"></a>
+<span class="sourceLineNo">697</span>        } else {<a name="line.697"></a>
+<span class="sourceLineNo">698</span>          // convert duplicate increment to get<a name="line.698"></a>
+<span class="sourceLineNo">699</span>          List&lt;Cell&gt; results = region.get(ProtobufUtil.toGet(mutation, cells), false, nonceGroup,<a name="line.699"></a>
+<span class="sourceLineNo">700</span>              nonce);<a name="line.700"></a>
+<span class="sourceLineNo">701</span>          r = Result.create(results);<a name="line.701"></a>
+<span class="sourceLineNo">702</span>        }<a name="line.702"></a>
+<span class="sourceLineNo">703</span>        success = true;<a name="line.703"></a>
+<span class="sourceLineNo">704</span>      } finally {<a name="line.704"></a>
+<span class="sourceLineNo">705</span>        if (canProceed) {<a name="line.705"></a>
+<span class="sourceLineNo">706</span>          endNonceOperation(mutation, nonceGroup, success);<a name="line.706"></a>
+<span class="sourceLineNo">707</span>        }<a name="line.707"></a>
+<span class="sourceLineNo">708</span>      }<a name="line.708"></a>
+<span class="sourceLineNo">709</span>      if (region.getCoprocessorHost() != null) {<a name="line.709"></a>
+<span class="sourceLineNo">710</span>        r = region.getCoprocessorHost().postIncrement(increment, r);<a name="line.710"></a>
+<span class="sourceLineNo">711</span>      }<a name="line.711"></a>
+<span class="sourceLineNo">712</span>    }<a name="line.712"></a>
+<span class="sourceLineNo">713</span>    if (regionServer.metricsRegionServer != null) {<a name="line.713"></a>
+<span class="sourceLineNo">714</span>      regionServer.metricsRegionServer.updateIncrement(<a name="line.714"></a>
+<span class="sourceLineNo">715</span>          region.getTableDescriptor().getTableName(),<a name="line.715"></a>
+<span class="sourceLineNo">716</span>          EnvironmentEdgeManager.currentTime() - before);<a name="line.716"></a>
+<span class="sourceLineNo">717</span>    }<a name="line.717"></a>
+<span class="sourceLineNo">718</span>    return r;<a name="line.718"></a>
+<span class="sourceLineNo">719</span>  }<a name="line.719"></a>
+<span class="sourceLineNo">720</span><a name="line.720"></a>
+<span class="sourceLineNo">721</span>  /**<a name="line.721"></a>
+<span class="sourceLineNo">722</span>   * Run through the regionMutation &lt;code&gt;rm&lt;/code&gt; and per Mutation, do the work, and then when<a name="line.722"></a>
+<span class="sourceLineNo">723</span>   * done, add an instance of a {@link ResultOrException} that corresponds to each Mutation.<a name="line.723"></a>
+<span class="sourceLineNo">724</span>   * @param cellsToReturn  Could be null. May be allocated in this method.  This is what this<a name="line.724"></a>
+<span class="sourceLineNo">725</span>   * method returns as a 'result'.<a name="line.725"></a>
+<span class="sourceLineNo">726</span>   * @param closeCallBack the callback to be used with multigets<a name="line.726"></a>
+<span class="sourceLineNo">727</span>   * @param context the current RpcCallContext<a name="line.727"></a>
+<span class="sourceLineNo">728</span>   * @return Return the &lt;code&gt;cellScanner&lt;/code&gt; passed<a name="line.728"></a>
+<span class="sourceLineNo">729</span>   */<a name="line.729"></a>
+<span class="sourceLineNo">730</span>  private List&lt;CellScannable&gt; doNonAtomicRegionMutation(final HRegion region,<a name="line.730"></a>
+<span class="sourceLineNo">731</span>      final OperationQuota quota, final RegionAction actions, final CellScanner cellScanner,<a name="line.731"></a>
+<span class="sourceLineNo">732</span>      final RegionActionResult.Builder builder, List&lt;CellScannable&gt; cellsToReturn, long nonceGroup,<a name="line.732"></a>
+<span class="sourceLineNo">733</span>      final RegionScannersCloseCallBack closeCallBack, RpcCallContext context,<a name="line.733"></a>
+<span class="sourceLineNo">734</span>      ActivePolicyEnforcement spaceQuotaEnforcement) {<a name="line.734"></a>
+<span class="sourceLineNo">735</span>    // Gather up CONTIGUOUS Puts and Deletes in this mutations List.  Idea is that rather than do<a name="line.735"></a>
+<span class="sourceLineNo">736</span>    // one at a time, we instead pass them in batch.  Be aware that the corresponding<a name="line.736"></a>
+<span class="sourceLineNo">737</span>    // ResultOrException instance that matches each Put or Delete is then added down in the<a name="line.737"></a>
+<span class="sourceLineNo">738</span>    // doBatchOp call.  We should be staying aligned though the Put and Delete are deferred/batched<a name="line.738"></a>
+<span class="sourceLineNo">739</span>    List&lt;ClientProtos.Action&gt; mutations = null;<a name="line.739"></a>
+<span class="sourceLineNo">740</span>    long maxQuotaResultSize = Math.min(maxScannerResultSize, quota.getReadAvailable());<a name="line.740"></a>
+<span class="sourceLineNo">741</span>    IOException sizeIOE = null;<a name="line.741"></a>
+<span class="sourceLineNo">742</span>    Object lastBlock = null;<a name="line.742"></a>
+<span class="sourceLineNo">743</span>    ClientProtos.ResultOrException.Builder resultOrExceptionBuilder = ResultOrException.newBuilder();<a name="line.743"></a>
+<span class="sourceLineNo">744</span>    boolean hasResultOrException = false;<a name="line.744"></a>
+<span class="sourceLineNo">745</span>    for (ClientProtos.Action action : actions.getActionList()) {<a name="line.745"></a>
+<span class="sourceLineNo">746</span>      hasResultOrException = false;<a name="line.746"></a>
+<span class="sourceLineNo">747</span>      resultOrExceptionBuilder.clear();<a name="line.747"></a>
+<span class="sourceLineNo">748</span>      try {<a name="line.748"></a>
+<span class="sourceLineNo">749</span>        Result r = null;<a name="line.749"></a>
+<span class="sourceLineNo">750</span><a name="line.750"></a>
+<span class="sourceLineNo">751</span>        if (context != null<a name="line.751"></a>
+<span class="sourceLineNo">752</span>            &amp;&amp; context.isRetryImmediatelySupported()<a name="line.752"></a>
+<span class="sourceLineNo">753</span>            &amp;&amp; (context.getResponseCellSize() &gt; maxQuotaResultSize<a name="line.753"></a>
+<span class="sourceLineNo">754</span>              || context.getResponseBlockSize() + context.getResponseExceptionSize()<a name="line.754"></a>
+<span class="sourceLineNo">755</span>              &gt; maxQuotaResultSize)) {<a name="line.755"></a>
+<span class="sourceLineNo">756</span><a name="line.756"></a>
+<span class="sourceLineNo">757</span>          // We're storing the exception since the exception and reason string won't<a name="line.757"></a>
+<span class="sourceLineNo">758</span>          // change after the response size limit is reached.<a name="line.758"></a>
+<span class="sourceLineNo">759</span>          if (sizeIOE == null ) {<a name="line.759"></a>
+<span class="sourceLineNo">760</span>            // We don't need the stack un-winding do don't throw the exception.<a name="line.760"></a>
+<span class="sourceLineNo">761</span>            // Throwing will kill the JVM's JIT.<a name="line.761"></a>
+<span class="sourceLineNo">762</span>            //<a name="line.762"></a>
+<span class="sourceLineNo">763</span>            // Instead just create the exception and then store it.<a name="line.763"></a>
+<span class="sourceLineNo">764</span>            sizeIOE = new MultiActionResultTooLarge("Max size exceeded"<a name="line.764"></a>
+<span class="sourceLineNo">765</span>                + " CellSize: " + context.getResponseCellSize()<a name="line.765"></a>
+<span class="sourceLineNo">766</span>                + " BlockSize: " + context.getResponseBlockSize());<a name="line.766"></a>
+<span class="sourceLineNo">767</span><a name="line.767"></a>
+<span class="sourceLineNo">768</span>            // Only report the exception once since there's only one request that<a name="line.768"></a>
+<span class="sourceLineNo">769</span>            // caused the exception. Otherwise this number will dominate the exceptions count.<a name="line.769"></a>
+<span class="sourceLineNo">770</span>            rpcServer.getMetrics().exception(sizeIOE);<a name="line.770"></a>
+<span class="sourceLineNo">771</span>          }<a name="line.771"></a>
+<span class="sourceLineNo">772</span><a name="line.772"></a>
+<span class="sourceLineNo">773</span>          // Now that there's an exception is known to be created<a name="line.773"></a>
+<span class="sourceLineNo">774</span>          // use it for the response.<a name="line.774"></a>
+<span class="sourceLineNo">775</span>          //<a name="line.775"></a>
+<span class="sourceLineNo">776</span>          // This will create a copy in the builder.<a name="line.776"></a>
+<span class="sourceLineNo">777</span>          hasResultOrException = true;<a name="line.777"></a>
+<span class="sourceLineNo">778</span>          NameBytesPair pair = ResponseConverter.buildException(sizeIOE);<a name="line.778"></a>
+<span class="sourceLineNo">779</span>          resultOrExceptionBuilder.setException(pair);<a name="line.779"></a>
+<span class="sourceLineNo">780</span>          context.incrementResponseExceptionSize(pair.getSerializedSize());<a name="line.780"></a>
+<span class="sourceLineNo">781</span>          resultOrExceptionBuilder.setIndex(action.getIndex());<a name="line.781"></a>
+<span class="sourceLineNo">782</span>          builder.addResultOrException(resultOrExceptionBuilder.build());<a name="line.782"></a>
+<span class="sourceLineNo">783</span>          if (cellScanner != null) {<a name="line.783"></a>
+<span class="sourceLineNo">784</span>            skipCellsForMutation(action, cellScanner);<a name="line.784"></a>
+<span class="sourceLineNo">785</span>          }<a name="line.785"></a>
+<span class="sourceLineNo">786</span>          continue;<a name="line.786"></a>
+<span class="sourceLineNo">787</span>        }<a name="line.787"></a>
+<span class="sourceLineNo">788</span>        if (action.hasGet()) {<a name="line.788"></a>
+<span class="sourceLineNo">789</span>          long before = EnvironmentEdgeManager.currentTime();<a name="line.789"></a>
+<span class="sourceLineNo">790</span>          try {<a name="line.790"></a>
+<span class="sourceLineNo">791</span>            Get get = ProtobufUtil.toGet(action.getGet());<a name="line.791"></a>
+<span class="sourceLineNo">792</span>            if (context != null) {<a name="line.792"></a>
+<span class="sourceLineNo">793</span>              r = get(get, ((HRegion) region), closeCallBack, context);<a name="line.793"></a>
+<span class="sourceLineNo">794</span>            } else {<a name="line.794"></a>
+<span class="sourceLineNo">795</span>              r = region.get(get);<a name="line.795"></a>
+<span class="sourceLineNo">796</span>            }<a name="line.796"></a>
+<span class="sourceLineNo">797</span>          } finally {<a name="line.797"></a>
+<span class="sourceLineNo">798</span>            if (regionServer.metricsRegionServer != null) {<a name="line.798"></a>
+<span class="sourceLineNo">799</span>              regionServer.metricsRegionServer.updateGet(<a name="line.799"></a>
+<span class="sourceLineNo">800</span>                  region.getTableDescriptor().getTableName(),<a name="line.800"></a>
+<span class="sourceLineNo">801</span>                  EnvironmentEdgeManager.currentTime() - before);<a name="line.801"></a>
+<span class="sourceLineNo">802</span>            }<a name="line.802"></a>
+<span class="sourceLineNo">803</span>          }<a name="line.803"></a>
+<span class="sourceLineNo">804</span>        } else if (action.hasServiceCall()) {<a name="line.804"></a>
+<span class="sourceLineNo">805</span>          hasResultOrException = true;<a name="line.805"></a>
+<span class="sourceLineNo">806</span>          try {<a name="line.806"></a>
+<span class="sourceLineNo">807</span>            com.google.protobuf.Message result =<a name="line.807"></a>
+<span class="sourceLineNo">808</span>                execServiceOnRegion(region, action.getServiceCall());<a name="line.808"></a>
+<span class="sourceLineNo">809</span>            ClientProtos.CoprocessorServiceResult.Builder serviceResultBuilder =<a name="line.809"></a>
+<span class="sourceLineNo">810</span>                ClientProtos.CoprocessorServiceResult.newBuilder();<a name="line.810"></a>
+<span class="sourceLineNo">811</span>            resultOrExceptionBuilder.setServiceResult(<a name="line.811"></a>
+<span class="sourceLineNo">812</span>                serviceResultBuilder.setValue(<a name="line.812"></a>
+<span class="sourceLineNo">813</span>                  serviceResultBuilder.getValueBuilder()<a name="line.813"></a>
+<span class="sourceLineNo">814</span>                    .setName(result.getClass().getName())<a name="line.814"></a>
+<span class="sourceLineNo">815</span>                    // TODO: Copy!!!<a name="line.815"></a>
+<span class="sourceLineNo">816</span>                    .setValue(UnsafeByteOperations.unsafeWrap(result.toByteArray()))));<a name="line.816"></a>
+<span class="sourceLineNo">817</span>          } catch (IOException ioe) {<a name="line.817"></a>
+<span class="sourceLineNo">818</span>            rpcServer.getMetrics().exception(ioe);<a name="line.818"></a>
+<span class="sourceLineNo">819</span>            NameBytesPair pair = ResponseConverter.buildException(ioe);<a name="line.819"></a>
+<span class="sourceLineNo">820</span>            resultOrExceptionBuilder.setException(pair);<a name="line.820"></a>
+<span class="sourceLineNo">821</span>            context.incrementResponseExceptionSize(pair.getSerializedSize());<a name="line.821"></a>
+<span class="sourceLineNo">822</span>          }<a name="line.822"></a>
+<span class="sourceLineNo">823</span>        } else if (action.hasMutation()) {<a name="line.823"></a>
+<span class="sourceLineNo">824</span>          MutationType type = action.getMutation().getMutateType();<a name="line.824"></a>
+<span class="sourceLineNo">825</span>          if (type != MutationType.PUT &amp;&amp; type != MutationType.DELETE &amp;&amp; mutations != null &amp;&amp;<a name="line.825"></a>
+<span class="sourceLineNo">826</span>              !mutations.isEmpty()) {<a name="line.826"></a>
+<span class="sourceLineNo">827</span>            // Flush out any Puts or Deletes already collected.<a name="line.827"></a>
+<span class="sourceLineNo">828</span>            doBatchOp(builder, region, quota, mutations, cellScanner, spaceQuotaEnforcement, false);<a name="line.828"></a>
+<span class="sourceLineNo">829</span>            mutations.clear();<a name="line.829"></a>
+<span class="sourceLineNo">830</span>          }<a name="line.830"></a>
+<span class="sourceLineNo">831</span>          switch (type) {<a name="line.831"></a>
+<span class="sourceLineNo">832</span>            case APPEND:<a name="line.832"></a>
+<span class="sourceLineNo">833</span>              r = append(region, quota, action.getMutation(), cellScanner, nonceGroup,<a name="line.833"></a>
+<span class="sourceLineNo">834</span>                  spaceQuotaEnforcement);<a name="line.834"></a>
+<span class="sourceLineNo">835</span>              break;<a name="line.835"></a>
+<span class="sourceLineNo">836</span>            case INCREMENT:<a name="line.836"></a>
+<span class="sourceLineNo">837</span>              r = increment(region, quota, action.getMutation(), cellScanner, nonceGroup,<a name="line.837"></a>
+<span class="sourceLineNo">838</span>                  spaceQuotaEnforcement);<a name="line.838"></a>
+<span class="sourceLineNo">839</span>              break;<a name="line.839"></a>
+<span class="sourceLineNo">840</span>            case PUT:<a name="line.840"></a>
+<span class="sourceLineNo">841</span>            case DELETE:<a name="line.841"></a>
+<span class="sourceLineNo">842</span>              // Collect the individual mutations and apply in a batch<a name="line.842"></a>
+<span class="sourceLineNo">843</span>              if (mutations == null) {<a name="line.843"></a>
+<span class="sourceLineNo">844</span>                mutations = new ArrayList&lt;&gt;(actions.getActionCount());<a name="line.844"></a>
+<span class="sourceLineNo">845</span>              }<a name="line.845"></a>
+<span class="sourceLineNo">846</span>              mutations.add(action);<a name="line.846"></a>
+<span class="sourceLineNo">847</span>              break;<a name="line.847"></a>
+<span class="sourceLineNo">848</span>            default:<a name="line.848"></a>
+<span class="sourceLineNo">849</span>              throw new DoNotRetryIOException("Unsupported mutate type: " + type.name());<a name="line.849"></a>
+<span class="sourceLineNo">850</span>          }<a name="line.850"></a>
+<span class="sourceLineNo">851</span>        } else {<a name="line.851"></a>
+<span class="sourceLineNo">852</span>          throw new HBaseIOException("Unexpected Action type");<a name="line.852"></a>
+<span class="sourceLineNo">853</span>        }<a name="line.853"></a>
+<span class="sourceLineNo">854</span>        if (r != null) {<a name="line.854"></a>
+<span class="sourceLineNo">855</span>          ClientProtos.Result pbResult = null;<a name="line.855"></a>
+<span class="sourceLineNo">856</span>          if (isClientCellBlockSupport(context)) {<a name="line.856"></a>
+<span class="sourceLineNo">857</span>            pbResult = ProtobufUtil.toResultNoData(r);<a name="line.857"></a>
+<span class="sourceLineNo">858</span>            //  Hard to guess the size here.  Just make a rough guess.<a name="line.858"></a>
+<span class="sourceLineNo">859</span>            if (cellsToReturn == null) {<a name="line.859"></a>
+<span class="sourceLineNo">860</span>              cellsToReturn = new ArrayList&lt;&gt;();<a name="line.860"></a>
+<span class="sourceLineNo">861</span>            }<a name="line.861"></a>
+<span class="sourceLineNo">862</span>            cellsToReturn.add(r);<a name="line.862"></a>
+<span class="sourceLineNo">863</span>          } else {<a name="line.863"></a>
+<span class="sourceLineNo">864</span>            pbResult = ProtobufUtil.toResult(r);<a name="line.864"></a>
+<span class="sourceLineNo">865</span>          }<a name="line.865"></a>
+<span class="sourceLineNo">866</span>          lastBlock = addSize(context, r, lastBlock);<a name="line.866"></a>
+<span class="sourceLineNo">867</span>          hasResultOrException = true;<a name="line.867"></a>
+<span class="sourceLineNo">868</span>          resultOrExceptionBuilder.setResult(pbResult);<a name="line.868"></a>
+<span class="sourceLineNo">869</span>        }<a name="line.869"></a>
+<span class="sourceLineNo">870</span>        // Could get to here and there was no result and no exception.  Presumes we added<a name="line.870"></a>
+<span class="sourceLineNo">871</span>        // a Put or Delete to the collecting Mutations List for adding later.  In this<a name="line.871"></a>
+<span class="sourceLineNo">872</span>        // case the corresponding ResultOrException instance for the Put or Delete will be added<a name="line.872"></a>
+<span class="sourceLineNo">873</span>        // down in the doBatchOp method call rather than up here.<a name="line.873"></a>
+<span class="sourceLineNo">874</span>      } catch (IOException ie) {<a name="line.874"></a>
+<span class="sourceLineNo">875</span>        rpcServer.getMetrics().exception(ie);<a name="line.875"></a>
+<span class="sourceLineNo">876</span>        hasResultOrException = true;<a name="line.876"></a>
+<span class="sourceLineNo">877</span>        NameBytesPair pair = ResponseConverter.buildException(ie);<a name="line.877"></a>
+<span class="sourceLineNo">878</span>        resultOrExceptionBuilder.setException(pair);<a name="line.878"></a>
+<span class="sourceLineNo">879</span>        context.incrementResponseExceptionSize(pair.getSerializedSize());<a name="line.879"></a>
+<span class="sourceLineNo">880</span>      }<a name="line.880"></a>
+<span class="sourceLineNo">881</span>      if (hasResultOrException) {<a name="line.881"></a>
+<span class="sourceLineNo">882</span>        // Propagate index.<a name="line.882"></a>
+<span class="sourceLineNo">883</span>        resultOrExceptionBuilder.setIndex(action.getIndex());<a name="line.883"></a>
+<span class="sourceLineNo">884</span>        builder.addResultOrException(resultOrExceptionBuilder.build());<a name="line.884"></a>
+<span class="sourceLineNo">885</span>      }<a name="line.885"></a>
+<span class="sourceLineNo">886</span>    }<a name="line.886"></a>
+<span class="sourceLineNo">887</span>    // Finish up any outstanding mutations<a name="line.887"></a>
+<span class="sourceLineNo">888</span>    if (mutations != null &amp;&amp; !mutations.isEmpty()) {<a name="line.888"></a>
+<span class="sourceLineNo">889</span>      try {<a name="line.889"></a>
+<span class="sourceLineNo">890</span>        doBatchOp(builder, region, quota, mutations, cellScanner, spaceQuotaEnforcement, false);<a name="line.890"></a>
+<span class="sourceLineNo">891</span>      } catch (IOException ioe) {<a name="line.891"></a>
+<span class="sourceLineNo">892</span>        rpcServer.getMetrics().exception(ioe);<a name="line.892"></a>
+<span class="sourceLineNo">893</span>        NameBytesPair pair = ResponseConverter.buildException(ioe);<a name="line.893"></a>
+<span class="sourceLineNo">894</span>        resultOrExceptionBuilder.setException(pair);<a name="line.894"></a>
+<span class="sourceLineNo">895</span>        context.incrementResponseExceptionSize(pair.getSerializedSize());<a name="line.895"></a>
+<span class="sourceLineNo">896</span>        builder.addResultOrException(resultOrExceptionBuilder.build());<a name="line.896"></a>
+<span class="sourceLineNo">897</span>      }<a name="line.897"></a>
+<span class="sourceLineNo">898</span>    }<a name="line.898"></a>
+<span class="sourceLineNo">899</span>    return cellsToReturn;<a name="line.899"></a>
+<span class="sourceLineNo">900</span>  }<a name="line.900"></a>
+<span class="sourceLineNo">901</span><a name="line.901"></a>
+<span class="sourceLineNo">902</span>  private void checkCellSizeLimit(final HRegion r, final Mutation m) throws IOException {<a name="line.902"></a>
+<span class="sourceLineNo">903</span>    if (r.maxCellSize &gt; 0) {<a name="line.903"></a>
+<span class="sourceLineNo">904</span>      CellScanner cells = m.cellScanner();<a name="line.904"></a>
+<span class="sourceLineNo">905</span>      while (cells.advance()) {<a name="line.905"></a>
+<span class="sourceLineNo">906</span>        int size = PrivateCellUtil.estimatedSerializedSizeOf(cells.current());<a name="line.906"></a>
+<span class="sourceLineNo">907</span>        if (size &gt; r.maxCellSize) {<a name="line.907"></a>
+<span class="sourceLineNo">908</span>          String msg = "Cell with size " + size + " exceeds limit of " + r.maxCellSize + " bytes";<a name="line.908"></a>
+<span class="sourceLineNo">909</span>          if (LOG.isDebugEnabled()) {<a name="line.909"></a>
+<span class="sourceLineNo">910</span>            LOG.debug(msg);<a name="line.910"></a>
+<span class="sourceLineNo">911</span>          }<a name="line.911"></a>
+<span class="sourceLineNo">912</span>          throw new DoNotRetryIOException(msg);<a name="line.912"></a>
+<span class="sourceLineNo">913</span>        }<a name="line.913"></a>
+<span class="sourceLineNo">914</span>      }<a name="line.914"></a>
+<span class="sourceLineNo">915</span>    }<a name="line.915"></a>
+<span class="sourceLineNo">916</span>  }<a name="line.916"></a>
+<span class="sourceLineNo">917</span><a name="line.917"></a>
+<span class="sourceLineNo">918</span>  /**<a name="line.918"></a>
+<span class="sourceLineNo">919</span>   * Execute a list of Put/Delete mutations.<a name="line.919"></a>
+<span class="sourceLineNo">920</span>   *<a name="line.920"></a>
+<span class="sourceLineNo">921</span>   * @param builder<a name="line.921"></a>
+<span class="sourceLineNo">922</span>   * @param region<a name="line.922"></a>
+<span class="sourceLineNo">923</span>   * @param mutations<a name="line.923"></a>
+<span class="sourceLineNo">924</span>   */<a name="line.924"></a>
+<span class="sourceLineNo">925</span>  private void doBatchOp(final RegionActionResult.Builder builder, final HRegion region,<a name="line.925"></a>
+<span class="sourceLineNo">926</span>      final OperationQuota quota, final List&lt;ClientProtos.Action&gt; mutations,<a name="line.926"></a>
+<span class="sourceLineNo">927</span>      final CellScanner cells, ActivePolicyEnforcement spaceQuotaEnforcement, boolean atomic)<a name="line.927"></a>
+<span class="sourceLineNo">928</span>      throws IOException {<a name="line.928"></a>
+<span class="sourceLineNo">929</span>    Mutation[] mArray = new Mutation[mutations.size()];<a name="line.929"></a>
+<span class="sourceLineNo">930</span>    long before = EnvironmentEdgeManager.currentTime();<a name="line.930"></a>
+<span class="sourceLineNo">931</span>    boolean batchContainsPuts = false, batchContainsDelete = false;<a name="line.931"></a>
+<span class="sourceLineNo">932</span>    try {<a name="line.932"></a>
+<span class="sourceLineNo">933</span>      /** HBASE-17924<a name="line.933"></a>
+<span class="sourceLineNo">934</span>       * mutationActionMap is a map to map the relation between mutations and actions<a name="line.934"></a>
+<span class="sourceLineNo">935</span>       * since mutation array may have been reoredered.In order to return the right<a name="line.935"></a>
+<span class="sourceLineNo">936</span>       * result or exception to the corresponding actions, We need to know which action<a name="line.936"></a>
+<span class="sourceLineNo">937</span>       * is the mutation belong to. We can't sort ClientProtos.Action array, since they<a name="line.937"></a>
+<span class="sourceLineNo">938</span>       * are bonded to cellscanners.<a name="line.938"></a>
+<span class="sourceLineNo">939</span>       */<a name="line.939"></a>
+<span class="sourceLineNo">940</span>      Map&lt;Mutation, ClientProtos.Action&gt; mutationActionMap = new HashMap&lt;&gt;();<a name="line.940"></a>
+<span class="sourceLineNo">941</span>      int i = 0;<a name="line.941"></a>
+<span class="sourceLineNo">942</span>      for (ClientProtos.Action action: mutations) {<a name="line.942"></a>
+<span class="sourceLineNo">943</span>        MutationProto m = action.getMutation();<a name="line.943"></a>
+<span class="sourceLineNo">944</span>        Mutation mutation;<a name="line.944"></a>
+<span class="sourceLineNo">945</span>        if (m.getMutateType() == MutationType.PUT) {<a name="line.945"></a>
+<span class="sourceLineNo">946</span>          mutation = ProtobufUtil.toPut(m, cells);<a name="line.946"></a>
+<span class="sourceLineNo">947</span>          batchContainsPuts = true;<a name="line.947"></a>
+<span class="sourceLineNo">948</span>        } else {<a name="line.948"></a>
+<span class="sourceLineNo">949</span>          mutation = ProtobufUtil.toDelete(m, cells);<a name="line.949"></a>
+<span class="sourceLineNo">950</span>          batchContainsDelete = true;<a name="line.950"></a>
+<span class="sourceLineNo">951</span>        }<a name="line.951"></a>
+<span class="sourceLineNo">952</span>        mutationActionMap.put(mutation, action);<a name="line.952"></a>
+<span class="sourceLineNo">953</span>        mArray[i++] = mutation;<a name="line.953"></a>
+<span class="sourceLineNo">954</span>        checkCellSizeLimit(region, mutation);<a name="line.954"></a>
+<span class="sourceLineNo">955</span>        // Check if a space quota disallows this mutation<a name="line.955"></a>
+<span class="sourceLineNo">956</span>        spaceQuotaEnforcement.getPolicyEnforcement(region).check(mutation);<a name="line.956"></a>
+<span class="sourceLineNo">957</span>        quota.addMutation(mutation);<a name="line.957"></a>
+<span class="sourceLineNo">958</span>      }<a name="line.958"></a>
+<span class="sourceLineNo">959</span><a name="line.959"></a>
+<span class="sourceLineNo">960</span>      if (!region.getRegionInfo().isMetaRegion()) {<a name="line.960"></a>
+<span class="sourceLineNo">961</span>        regionServer.cacheFlusher.reclaimMemStoreMemory();<a name="line.961"></a>
+<span class="sourceLineNo">962</span>      }<a name="line.962"></a>
+<span class="sourceLineNo">963</span><a name="line.963"></a>
+<span class="sourceLineNo">964</span>      // HBASE-17924<a name="line.964"></a>
+<span class="sourceLineNo">965</span>      // Sort to improve lock efficiency for non-atomic batch of operations. If atomic (mostly<a name="line.965"></a>
+<span class="sourceLineNo">966</span>      // called from mutateRows()), order is preserved as its expected from the client<a name="line.966"></a>
+<span class="sourceLineNo">967</span>      if (!atomic) {<a name="line.967"></a>
+<span class="sourceLineNo">968</span>        Arrays.sort(mArray);<a name="line.968"></a>
+<span class="sourceLineNo">969</span>      }<a name="line.969"></a>
+<span class="sourceLineNo">970</span><a name="line.970"></a>
+<span class="sourceLineNo">971</span>      OperationStatus[] codes = region.batchMutate(mArray, atomic, HConstants.NO_NONCE,<a name="line.971"></a>
+<span class="sourceLineNo">972</span>        HConstants.NO_NONCE);<a name="line.972"></a>
+<span class="sourceLineNo">973</span>      for (i = 0; i &lt; codes.length; i++) {<a name="line.973"></a>
+<span class="sourceLineNo">974</span>        Mutation currentMutation = mArray[i];<a name="line.974"></a>
+<span class="sourceLineNo">975</span>        ClientProtos.Action currentAction = mutationActionMap.get(currentMutation);<a name="line.975"></a>
+<span class="sourceLineNo">976</span>        int index = currentAction.hasIndex() || !atomic ? currentAction.getIndex() : i;<a name="line.976"></a>
+<span class="sourceLineNo">977</span>        Exception e = null;<a name="line.977"></a>
+<span class="sourceLineNo">978</span>        switch (codes[i].getOperationStatusCode()) {<a name="line.978"></a>
+<span class="sourceLineNo">979</span>          case BAD_FAMILY:<a name="line.979"></a>
+<span class="sourceLineNo">980</span>            e = new NoSuchColumnFamilyException(codes[i].getExceptionMsg());<a name="line.980"></a>
+<span class="sourceLineNo">981</span>            builder.addResultOrException(getResultOrException(e, index));<a name="line.981"></a>
+<span class="sourceLineNo">982</span>            break;<a name="line.982"></a>
+<span class="sourceLineNo">983</span><a name="line.983"></a>
+<span class="sourceLineNo">984</span>          case SANITY_CHECK_FAILURE:<a name="line.984"></a>
+<span class="sourceLineNo">985</span>            e = new FailedSanityCheckException(codes[i].getExceptionMsg());<a name="line.985"></a>
+<span class="sourceLineNo">986</span>            builder.addResultOrException(getResultOrException(e, index));<a name="line.986"></a>
+<span class="sourceLineNo">987</span>            break;<a name="line.987"></a>
+<span class="sourceLineNo">988</span><a name="line.988"></a>
+<span class="sourceLineNo">989</span>          default:<a name="line.989"></a>
+<span class="sourceLineNo">990</span>            e = new DoNotRetryIOException(codes[i].getExceptionMsg());<a name="line.990"></a>
+<span class="sourceLineNo">991</span>            builder.addResultOrException(getResultOrException(e, index));<a name="line.991"></a>
+<span class="sourceLineNo">992</span>            break;<a name="line.992"></a>
+<span class="sourceLineNo">993</span><a name="line.993"></a>
+<span class="sourceLineNo">994</span>          case SUCCESS:<a name="line.994"></a>
+<span class="sourceLineNo">995</span>            builder.addResultOrException(getResultOrException(<a name="line.995"></a>
+<span class="sourceLineNo">996</span>              ClientProtos.Result.getDefaultInstance(), index));<a name="line.996"></a>
+<span class="sourceLineNo">997</span>            break;<a name="line.997"></a>
+<span class="sourceLineNo">998</span>        }<a name="line.998"></a>
+<span class="sourceLineNo">999</span>      }<a name="line.999"></a>
+<span class="sourceLineNo">1000</span>    } catch (IOException ie) {<a name="line.1000"></a>
+<span class="sourceLineNo">1001</span>      if (atomic) {<a name="line.1001"></a>
+<span class="sourceLineNo">1002</span>        throw ie;<a name="line.1002"></a>
 <span class="sourceLineNo">1003</span>      }<a name="line.1003"></a>
-<span class="sourceLineNo">1004</span>    }<a name="line.1004"></a>
-<span class="sourceLineNo">1005</span>    if (regionServer.metricsRegionServer != null) {<a name="line.1005"></a>
-<span class="sourceLineNo">1006</span>      long after = EnvironmentEdgeManager.currentTime();<a name="line.1006"></a>
-<span class="sourceLineNo">1007</span>      if (batchContainsPuts) {<a name="line.1007"></a>
-<span class="sourceLineNo">1008</span>        regionServer.metricsRegionServer.updatePutBatch(after - before);<a name="line.1008"></a>
-<span class="sourceLineNo">1009</span>      }<a name="line.1009"></a>
-<span class="sourceLineNo">1010</span>      if (batchContainsDelete) {<a name="line.1010"></a>
-<span class="sourceLineNo">1011</span>        regionServer.metricsRegionServer.updateDeleteBatch(after - before);<a name="line.1011"></a>
-<span class="sourceLineNo">1012</span>      }<a name="line.1012"></a>
-<span class="sourceLineNo">1013</span>    }<a name="line.1013"></a>
-<span class="sourceLineNo">1014</span>  }<a name="line.1014"></a>
-<span class="sourceLineNo">1015</span><a name="line.1015"></a>
-<span class="sourceLineNo">1016</span>  /**<a name="line.1016"></a>
-<span class="sourceLineNo">1017</span>   * Execute a list of Put/Delete mutations. The function returns OperationStatus instead of<a name="line.1017"></a>
-<span class="sourceLineNo">1018</span>   * constructing MultiResponse to save a possible loop if caller doesn't need MultiResponse.<a name="line.1018"></a>
-<span class="sourceLineNo">1019</span>   * @param region<a name="line.1019"></a>
-<span class="sourceLineNo">1020</span>   * @param mutations<a name="line.1020"></a>
-<span class="sourceLineNo">1021</span>   * @param replaySeqId<a name="line.1021"></a>
-<span class="sourceLineNo">1022</span>   * @return an array of OperationStatus which internally contains the OperationStatusCode and the<a name="line.1022"></a>
-<span class="sourceLineNo">1023</span>   *         exceptionMessage if any<a name="line.1023"></a>
-<span class="sourceLineNo">1024</span>   * @throws IOException<a name="line.1024"></a>
-<span class="sourceLineNo">1025</span>   */<a name="line.1025"></a>
-<span class="sourceLineNo">1026</span>  private OperationStatus [] doReplayBatchOp(final HRegion region,<a name="line.1026"></a>
-<span class="sourceLineNo">1027</span>      final List&lt;WALSplitter.MutationReplay&gt; mutations, long replaySeqId) throws IOException {<a name="line.1027"></a>
-<span class="sourceLineNo">1028</span>    long before = EnvironmentEdgeManager.currentTime();<a name="line.1028"></a>
-<span class="sourceLineNo">1029</span>    boolean batchContainsPuts = false, batchContainsDelete = false;<a name="line.1029"></a>
-<span class="sourceLineNo">1030</span>    try {<a name="line.1030"></a>
-<span class="sourceLineNo">1031</span>      for (Iterator&lt;WALSplitter.MutationReplay&gt; it = mutations.iterator(); it.hasNext();) {<a name="line.1031"></a>
-<span class="sourceLineNo">1032</span>        WALSplitter.MutationReplay m = it.next();<a name="line.1032"></a>
-<span class="sourceLineNo">1033</span><a name="line.1033"></a>
-<span class="sourceLineNo">1034</span>        if (m.type == MutationType.PUT) {<a name="line.1034"></a>
-<span class="sourceLineNo">1035</span>          batchContainsPuts = true;<a name="line.1035"></a>
-<span class="sourceLineNo">1036</span>        } else {<a name="line.1036"></a>
-<span class="sourceLineNo">1037</span>          batchContainsDelete = true;<a name="line.1037"></a>
-<span class="sourceLineNo">1038</span>        }<a name="line.1038"></a>
-<span class="sourceLineNo">1039</span><a name="line.1039"></a>
-<span class="sourceLineNo">1040</span>        NavigableMap&lt;byte[], List&lt;Cell&gt;&gt; map = m.mutation.getFamilyCellMap();<a name="line.1040"></a>
-<span class="sourceLineNo">1041</span>        List&lt;Cell&gt; metaCells = map.get(WALEdit.METAFAMILY);<a name="line.1041"></a>
-<span class="sourceLineNo">1042</span>        if (metaCells != null &amp;&amp; !metaCells.isEmpty()) {<a name="line.1042"></a>
-<span class="sourceLineNo">1043</span>          for (Cell metaCell : metaCells) {<a name="line.1043"></a>
-<span class="sourceLineNo">1044</span>            CompactionDescriptor compactionDesc = WALEdit.getCompaction(metaCell);<a name="line.1044"></a>
-<span class="sourceLineNo">1045</span>            boolean isDefaultReplica = RegionReplicaUtil.isDefaultReplica(region.getRegionInfo());<a name="line.1045"></a>
-<span class="sourceLineNo">1046</span>            HRegion hRegion = (HRegion)region;<a name="line.1046"></a>
-<span class="sourceLineNo">1047</span>            if (compactionDesc != null) {<a name="line.1047"></a>
-<span class="sourceLineNo">1048</span>              // replay the compaction. Remove the files from stores only if we are the primary<a name="line.1048"></a>
-<span class="sourceLineNo">1049</span>              // region replica (thus own the files)<a name="line.1049"></a>
-<span class="sourceLineNo">1050</span>              hRegion.replayWALCompactionMarker(compactionDesc, !isDefaultReplica, isDefaultReplica,<a name="line.1050"></a>
-<span class="sourceLineNo">1051</span>                replaySeqId);<a name="line.1051"></a>
-<span class="sourceLineNo">1052</span>              continue;<a name="line.1052"></a>
-<span class="sourceLineNo">1053</span>            }<a name="line.1053"></a>
-<span class="sourceLineNo">1054</span>            FlushDescriptor flushDesc = WALEdit.getFlushDescriptor(metaCell);<a name="line.1054"></a>
-<span class="sourceLineNo">1055</span>            if (flushDesc != null &amp;&amp; !isDefaultReplica) {<a name="line.1055"></a>
-<span class="sourceLineNo">1056</span>              hRegion.replayWALFlushMarker(flushDesc, replaySeqId);<a name="line.1056"></a>
+<span class="sourceLineNo">1004</span>      for (Action mutation : mutations) {<a name="line.1004"></a>
+<span class="sourceLineNo">1005</span>        builder.addResultOrException(getResultOrException(ie, mutation.getIndex()));<a name="line.1005"></a>
+<span class="sourceLineNo">1006</span>      }<a name="line.1006"></a>
+<span class="sourceLineNo">1007</span>    }<a name="line.1007"></a>
+<span class="sourceLineNo">1008</span>    if (regionServer.metricsRegionServer != null) {<a name="line.1008"></a>
+<span class="sourceLineNo">1009</span>      long after = EnvironmentEdgeManager.currentTime();<a name="line.1009"></a>
+<span class="sourceLineNo">1010</span>      if (batchContainsPuts) {<a name="line.1010"></a>
+<span class="sourceLineNo">1011</span>        regionServer.metricsRegionServer.updatePutBatch(<a name="line.1011"></a>
+<span class="sourceLineNo">1012</span>            region.getTableDescriptor().getTableName(), after - before);<a name="line.1012"></a>
+<span class="sourceLineNo">1013</span>      }<a name="line.1013"></a>
+<span class="sourceLineNo">1014</span>      if (batchContainsDelete) {<a name="line.1014"></a>
+<span class="sourceLineNo">1015</span>        regionServer.metricsRegionServer.updateDeleteBatch(<a name="line.1015"></a>
+<span class="sourceLineNo">1016</span>            region.getTableDescriptor().getTableName(), after - before);<a name="line.1016"></a>
+<span class="sourceLineNo">1017</span>      }<a name="line.1017"></a>
+<span class="sourceLineNo">1018</span>    }<a name="line.1018"></a>
+<span class="sourceLineNo">1019</span>  }<a name="line.1019"></a>
+<span class="sourceLineNo">1020</span><a name="line.1020"></a>
+<span class="sourceLineNo">1021</span>  /**<a name="line.1021"></a>
+<span class="sourceLineNo">1022</span>   * Execute a list of Put/Delete mutations. The function returns OperationStatus instead of<a name="line.1022"></a>
+<span class="sourceLineNo">1023</span>   * constructing MultiResponse to save a possible loop if caller doesn't need MultiResponse.<a name="line.1023"></a>
+<span class="sourceLineNo">1024</span>   * @param region<a name="line.1024"></a>
+<span class="sourceLineNo">1025</span>   * @param mutations<a name="line.1025"></a>
+<span class="sourceLineNo">1026</span>   * @param replaySeqId<a name="line.1026"></a>
+<span class="sourceLineNo">1027</span>   * @return an array of OperationStatus which internally contains the OperationStatusCode and the<a name="line.1027"></a>
+<span class="sourceLineNo">1028</span>   *         exceptionMessage if any<a name="line.1028"></a>
+<span class="sourceLineNo">1029</span>   * @throws IOException<a name="line.1029"></a>
+<span class="sourceLineNo">1030</span>   */<a name="line.1030"></a>
+<span class="sourceLineNo">1031</span>  private OperationStatus [] doReplayBatchOp(final HRegion region,<a name="line.1031"></a>
+<span class="sourceLineNo">1032</span>      final List&lt;WALSplitter.MutationReplay&gt; mutations, long replaySeqId) throws IOException {<a name="line.1032"></a>
+<span class="sourceLineNo">1033</span>    long before = EnvironmentEdgeManager.currentTime();<a name="line.1033"></a>
+<span class="sourceLineNo">1034</span>    boolean batchContainsPuts = false, batchContainsDelete = false;<a name="line.1034"></a>
+<span class="sourceLineNo">1035</span>    try {<a name="line.1035"></a>
+<span class="sourceLineNo">1036</span>      for (Iterator&lt;WALSplitter.MutationReplay&gt; it = mutations.iterator(); it.hasNext();) {<a name="line.1036"></a>
+<span class="sourceLineNo">1037</span>        WALSplitter.MutationReplay m = it.next();<a name="line.1037"></a>
+<span class="sourceLineNo">1038</span><a name="line.1038"></a>
+<span class="sourceLineNo">1039</span>        if (m.type == MutationType.PUT) {<a name="line.1039"></a>
+<span class="sourceLineNo">1040</span>          batchContainsPuts = true;<a name="line.1040"></a>
+<span class="sourceLineNo">1041</span>        } else {<a name="line.1041"></a>
+<span class="sourceLineNo">1042</span>          batchContainsDelete = true;<a name="line.1042"></a>
+<span class="sourceLineNo">1043</span>        }<a name="line.1043"></a>
+<span class="sourceLineNo">1044</span><a name="line.1044"></a>
+<span class="sourceLineNo">1045</span>        NavigableMap&lt;byte[], List&lt;Cell&gt;&gt; map = m.mutation.getFamilyCellMap();<a name="line.1045"></a>
+<span class="sourceLineNo">1046</span>        List&lt;Cell&gt; metaCells = map.get(WALEdit.METAFAMILY);<a name="line.1046"></a>
+<span class="sourceLineNo">1047</span>        if (metaCells != null &amp;&amp; !metaCells.isEmpty()) {<a name="line.1047"></a>
+<span class="sourceLineNo">1048</span>          for (Cell metaCell : metaCells) {<a name="line.1048"></a>
+<span class="sourceLineNo">1049</span>            CompactionDescriptor compactionDesc = WALEdit.getCompaction(metaCell);<a name="line.1049"></a>
+<span class="sourceLineNo">1050</span>            boolean isDefaultReplica = RegionReplicaUtil.isDefaultReplica(region.getRegionInfo());<a name="line.1050"></a>
+<span class="sourceLineNo">1051</span>            HRegion hRegion = (HRegion)region;<a name="line.1051"></a>
+<span class="sourceLineNo">1052</span>            if (compactionDesc != null) {<a name="line.1052"></a>
+<span class="sourceLineNo">1053</span>              // replay the compaction. Remove the files from stores only if we are the primary<a name="line.1053"></a>
+<span class="sourceLineNo">1054</span>              // region replica (thus own the files)<a name="line.1054"></a>
+<span class="sourceLineNo">1055</span>              hRegion.replayWALCompactionMarker(compactionDesc, !isDefaultReplica, isDefaultReplica,<a name="line.1055"></a>
+<span class="sourceLineNo">1056</span>                replaySeqId);<a name="line.1056"></a>
 <span class="sourceLineNo">1057</span>              continue;<a name="line.1057"></a>
 <span class="sourceLineNo">1058</span>            }<a name="line.1058"></a>
-<span class="sourceLineNo">1059</span>            RegionEventDescriptor regionEvent = WALEdit.getRegionEventDescriptor(metaCell);<a name="line.1059"></a>
-<span class="sourceLineNo">1060</span>            if (regionEvent != null &amp;&amp; !isDefaultReplica) {<a name="line.1060"></a>
-<span class="sourceLineNo">1061</span>              hRegion.replayWALRegionEventMarker(regionEvent);<a name="line.1061"></a>
+<span class="sourceLineNo">1059</span>            FlushDescriptor flushDesc = WALEdit.getFlushDescriptor(metaCell);<a name="line.1059"></a>
+<span class="sourceLineNo">1060</span>            if (flushDesc != null &amp;&amp; !isDefaultReplica) {<a name="line.1060"></a>
+<span class="sourceLineNo">1061</span>              hRegion.replayWALFlushMarker(flushDesc, replaySeqId);<a name="line.1061"></a>
 <span class="sourceLineNo">1062</span>              continue;<a name="line.1062"></a>
 <span class="sourceLineNo">1063</span>            }<a name="line.1063"></a>
-<span class="sourceLineNo">1064</span>            BulkLoadDescriptor bulkLoadEvent = WALEdit.getBulkLoadDescriptor(metaCell);<a name="line.1064"></a>
-<span class="sourceLineNo">1065</span>            if (bulkLoadEvent != null) {<a name="line.1065"></a>
-<span class="sourceLineNo">1066</span>              hRegion.replayWALBulkLoadEventMarker(bulkLoadEvent);<a name="line.1066"></a>
+<span class="sourceLineNo">1064</span>            RegionEventDescriptor regionEvent = WALEdit.getRegionEventDescriptor(metaCell);<a name="line.1064"></a>
+<span class="sourceLineNo">1065</span>            if (regionEvent != null &amp;&amp; !isDefaultReplica) {<a name="line.1065"></a>
+<span class="sourceLineNo">1066</span>              hRegion.replayWALRegionEventMarker(regionEvent);<a name="line.1066"></a>
 <span class="sourceLineNo">1067</span>              continue;<a name="line.1067"></a>
 <span class="sourceLineNo">1068</span>            }<a name="line.1068"></a>
-<span class="sourceLineNo">1069</span>          }<a name="line.1069"></a>
-<span class="sourceLineNo">1070</span>          it.remove();<a name="line.1070"></a>
-<span class="sourceLineNo">1071</span>        }<a name="line.1071"></a>
-<span class="sourceLineNo">1072</span>      }<a name="line.1072"></a>
-<span class="sourceLineNo">1073</span>      requestCount.increment();<a name="line.1073"></a>
-<span class="sourceLineNo">1074</span>      if (!region.getRegionInfo().isMetaRegion()) {<a name="line.1074"></a>
-<span class="sourceLineNo">1075</span>        regionServer.cacheFlusher.reclaimMemStoreMemory();<a name="line.1075"></a>
-<span class="sourceLineNo">1076</span>      }<a name="line.1076"></a>
-<span class="sourceLineNo">1077</span>      return region.batchReplay(mutations.toArray(<a name="line.1077"></a>
-<span class="sourceLineNo">1078</span>        new WALSplitter.MutationReplay[mutations.size()]), replaySeqId);<a name="line.1078"></a>
-<span class="sourceLineNo">1079</span>    } finally {<a name="line.1079"></a>
-<span class="sourceLineNo">1080</span>      if (regionServer.metricsRegionServer != null) {<a name="line.1080"></a>
-<span class="sourceLineNo">1081</span>        long after = EnvironmentEdgeManager.currentTime();<a name="line.1081"></a>
-<span class="sourceLineNo">1082</span>          if (batchContainsPuts) {<a name="line.1082"></a>
-<span class="sourceLineNo">1083</span>          regionServer.metricsRegionServer.updatePutBatch(after - before);<a name="line.1083"></a>
-<span class="sourceLineNo">1084</span>        }<a name="line.1084"></a>
-<span class="sourceLineNo">1085</span>        if (batchContainsDelete) {<a name="line.1085"></a>
-<span class="sourceLineNo">1086</span>          regionServer.metricsRegionServer.updateDeleteBatch(after - before);<a name="line.1086"></a>
-<span class="sourceLineNo">1087</span>        }<a name="line.1087"></a>
-<span class="sourceLineNo">1088</span>      }<a name="line.1088"></a>
-<span class="sourceLineNo">1089</span>    }<a name="line.1089"></a>
-<span class="sourceLineNo">1090</span>  }<a name="line.1090"></a>
-<span class="sourceLineNo">1091</span><a name="line.1091"></a>
-<span class="sourceLineNo">1092</span>  private void closeAllScanners() {<a name="line.1092"></a>
-<span class="sourceLineNo">1093</span>    // Close any outstanding scanners. Means they'll get an UnknownScanner<a name="line.1093"></a>
-<span class="sourceLineNo">1094</span>    // exception next time they come in.<a name="line.1094"></a>
-<span class="sourceLineNo">1095</span>    for (Map.Entry&lt;String, RegionScannerHolder&gt; e : scanners.entrySet()) {<a name="line.1095"></a>
-<span class="sourceLineNo">1096</span>      try {<a name="line.1096"></a>
-<span class="sourceLineNo">1097</span>        e.getValue().s.close();<a name="line.1097"></a>
-<span class="sourceLineNo">1098</span>      } catch (IOException ioe) {<a name="line.1098"></a>
-<span class="sourceLineNo">1099</span>        LOG.warn("Closing scanner " + e.getKey(), ioe);<a name="line.1099"></a>
-<span class="sourceLineNo">1100</span>      }<a name="line.1100"></a>
-<span class="sourceLineNo">1101</span>    }<a name="line.1101"></a>
-<span class="sourceLineNo">1102</span>  }<a name="line.1102"></a>
-<span class="sourceLineNo">1103</span><a name="line.1103"></a>
-<span class="sourceLineNo">1104</span>  // Exposed for testing<a name="line.1104"></a>
-<span class="sourceLineNo">1105</span>  interface LogDelegate {<a name="line.1105"></a>
-<span class="sourceLineNo">1106</span>    void logBatchWarning(String firstRegionName, int sum, i

<TRUNCATED>

[13/32] hbase-site git commit: Published site at .

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/29b27596/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.LogDelegate.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.LogDelegate.html b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.LogDelegate.html
index b7f041a..c0ea82b 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.LogDelegate.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.LogDelegate.html
@@ -668,2792 +668,2806 @@
 <span class="sourceLineNo">660</span>    }<a name="line.660"></a>
 <span class="sourceLineNo">661</span>    if (regionServer.metricsRegionServer != null) {<a name="line.661"></a>
 <span class="sourceLineNo">662</span>      regionServer.metricsRegionServer.updateAppend(<a name="line.662"></a>
-<span class="sourceLineNo">663</span>        EnvironmentEdgeManager.currentTime() - before);<a name="line.663"></a>
-<span class="sourceLineNo">664</span>    }<a name="line.664"></a>
-<span class="sourceLineNo">665</span>    return r;<a name="line.665"></a>
-<span class="sourceLineNo">666</span>  }<a name="line.666"></a>
-<span class="sourceLineNo">667</span><a name="line.667"></a>
-<span class="sourceLineNo">668</span>  /**<a name="line.668"></a>
-<span class="sourceLineNo">669</span>   * Execute an increment mutation.<a name="line.669"></a>
-<span class="sourceLineNo">670</span>   *<a name="line.670"></a>
-<span class="sourceLineNo">671</span>   * @param region<a name="line.671"></a>
-<span class="sourceLineNo">672</span>   * @param mutation<a name="line.672"></a>
-<span class="sourceLineNo">673</span>   * @return the Result<a name="line.673"></a>
-<span class="sourceLineNo">674</span>   * @throws IOException<a name="line.674"></a>
-<span class="sourceLineNo">675</span>   */<a name="line.675"></a>
-<span class="sourceLineNo">676</span>  private Result increment(final HRegion region, final OperationQuota quota,<a name="line.676"></a>
-<span class="sourceLineNo">677</span>      final MutationProto mutation, final CellScanner cells, long nonceGroup,<a name="line.677"></a>
-<span class="sourceLineNo">678</span>      ActivePolicyEnforcement spaceQuota)<a name="line.678"></a>
-<span class="sourceLineNo">679</span>      throws IOException {<a name="line.679"></a>
-<span class="sourceLineNo">680</span>    long before = EnvironmentEdgeManager.currentTime();<a name="line.680"></a>
-<span class="sourceLineNo">681</span>    Increment increment = ProtobufUtil.toIncrement(mutation, cells);<a name="line.681"></a>
-<span class="sourceLineNo">682</span>    checkCellSizeLimit(region, increment);<a name="line.682"></a>
-<span class="sourceLineNo">683</span>    spaceQuota.getPolicyEnforcement(region).check(increment);<a name="line.683"></a>
-<span class="sourceLineNo">684</span>    quota.addMutation(increment);<a name="line.684"></a>
-<span class="sourceLineNo">685</span>    Result r = null;<a name="line.685"></a>
-<span class="sourceLineNo">686</span>    if (region.getCoprocessorHost() != null) {<a name="line.686"></a>
-<span class="sourceLineNo">687</span>      r = region.getCoprocessorHost().preIncrement(increment);<a name="line.687"></a>
-<span class="sourceLineNo">688</span>    }<a name="line.688"></a>
-<span class="sourceLineNo">689</span>    if (r == null) {<a name="line.689"></a>
-<span class="sourceLineNo">690</span>      boolean canProceed = startNonceOperation(mutation, nonceGroup);<a name="line.690"></a>
-<span class="sourceLineNo">691</span>      boolean success = false;<a name="line.691"></a>
-<span class="sourceLineNo">692</span>      try {<a name="line.692"></a>
-<span class="sourceLineNo">693</span>        long nonce = mutation.hasNonce() ? mutation.getNonce() : HConstants.NO_NONCE;<a name="line.693"></a>
-<span class="sourceLineNo">694</span>        if (canProceed) {<a name="line.694"></a>
-<span class="sourceLineNo">695</span>          r = region.increment(increment, nonceGroup, nonce);<a name="line.695"></a>
-<span class="sourceLineNo">696</span>        } else {<a name="line.696"></a>
-<span class="sourceLineNo">697</span>          // convert duplicate increment to get<a name="line.697"></a>
-<span class="sourceLineNo">698</span>          List&lt;Cell&gt; results = region.get(ProtobufUtil.toGet(mutation, cells), false, nonceGroup,<a name="line.698"></a>
-<span class="sourceLineNo">699</span>              nonce);<a name="line.699"></a>
-<span class="sourceLineNo">700</span>          r = Result.create(results);<a name="line.700"></a>
-<span class="sourceLineNo">701</span>        }<a name="line.701"></a>
-<span class="sourceLineNo">702</span>        success = true;<a name="line.702"></a>
-<span class="sourceLineNo">703</span>      } finally {<a name="line.703"></a>
-<span class="sourceLineNo">704</span>        if (canProceed) {<a name="line.704"></a>
-<span class="sourceLineNo">705</span>          endNonceOperation(mutation, nonceGroup, success);<a name="line.705"></a>
-<span class="sourceLineNo">706</span>        }<a name="line.706"></a>
-<span class="sourceLineNo">707</span>      }<a name="line.707"></a>
-<span class="sourceLineNo">708</span>      if (region.getCoprocessorHost() != null) {<a name="line.708"></a>
-<span class="sourceLineNo">709</span>        r = region.getCoprocessorHost().postIncrement(increment, r);<a name="line.709"></a>
-<span class="sourceLineNo">710</span>      }<a name="line.710"></a>
-<span class="sourceLineNo">711</span>    }<a name="line.711"></a>
-<span class="sourceLineNo">712</span>    if (regionServer.metricsRegionServer != null) {<a name="line.712"></a>
-<span class="sourceLineNo">713</span>      regionServer.metricsRegionServer.updateIncrement(<a name="line.713"></a>
-<span class="sourceLineNo">714</span>        EnvironmentEdgeManager.currentTime() - before);<a name="line.714"></a>
-<span class="sourceLineNo">715</span>    }<a name="line.715"></a>
-<span class="sourceLineNo">716</span>    return r;<a name="line.716"></a>
-<span class="sourceLineNo">717</span>  }<a name="line.717"></a>
-<span class="sourceLineNo">718</span><a name="line.718"></a>
-<span class="sourceLineNo">719</span>  /**<a name="line.719"></a>
-<span class="sourceLineNo">720</span>   * Run through the regionMutation &lt;code&gt;rm&lt;/code&gt; and per Mutation, do the work, and then when<a name="line.720"></a>
-<span class="sourceLineNo">721</span>   * done, add an instance of a {@link ResultOrException} that corresponds to each Mutation.<a name="line.721"></a>
-<span class="sourceLineNo">722</span>   * @param cellsToReturn  Could be null. May be allocated in this method.  This is what this<a name="line.722"></a>
-<span class="sourceLineNo">723</span>   * method returns as a 'result'.<a name="line.723"></a>
-<span class="sourceLineNo">724</span>   * @param closeCallBack the callback to be used with multigets<a name="line.724"></a>
-<span class="sourceLineNo">725</span>   * @param context the current RpcCallContext<a name="line.725"></a>
-<span class="sourceLineNo">726</span>   * @return Return the &lt;code&gt;cellScanner&lt;/code&gt; passed<a name="line.726"></a>
-<span class="sourceLineNo">727</span>   */<a name="line.727"></a>
-<span class="sourceLineNo">728</span>  private List&lt;CellScannable&gt; doNonAtomicRegionMutation(final HRegion region,<a name="line.728"></a>
-<span class="sourceLineNo">729</span>      final OperationQuota quota, final RegionAction actions, final CellScanner cellScanner,<a name="line.729"></a>
-<span class="sourceLineNo">730</span>      final RegionActionResult.Builder builder, List&lt;CellScannable&gt; cellsToReturn, long nonceGroup,<a name="line.730"></a>
-<span class="sourceLineNo">731</span>      final RegionScannersCloseCallBack closeCallBack, RpcCallContext context,<a name="line.731"></a>
-<span class="sourceLineNo">732</span>      ActivePolicyEnforcement spaceQuotaEnforcement) {<a name="line.732"></a>
-<span class="sourceLineNo">733</span>    // Gather up CONTIGUOUS Puts and Deletes in this mutations List.  Idea is that rather than do<a name="line.733"></a>
-<span class="sourceLineNo">734</span>    // one at a time, we instead pass them in batch.  Be aware that the corresponding<a name="line.734"></a>
-<span class="sourceLineNo">735</span>    // ResultOrException instance that matches each Put or Delete is then added down in the<a name="line.735"></a>
-<span class="sourceLineNo">736</span>    // doBatchOp call.  We should be staying aligned though the Put and Delete are deferred/batched<a name="line.736"></a>
-<span class="sourceLineNo">737</span>    List&lt;ClientProtos.Action&gt; mutations = null;<a name="line.737"></a>
-<span class="sourceLineNo">738</span>    long maxQuotaResultSize = Math.min(maxScannerResultSize, quota.getReadAvailable());<a name="line.738"></a>
-<span class="sourceLineNo">739</span>    IOException sizeIOE = null;<a name="line.739"></a>
-<span class="sourceLineNo">740</span>    Object lastBlock = null;<a name="line.740"></a>
-<span class="sourceLineNo">741</span>    ClientProtos.ResultOrException.Builder resultOrExceptionBuilder = ResultOrException.newBuilder();<a name="line.741"></a>
-<span class="sourceLineNo">742</span>    boolean hasResultOrException = false;<a name="line.742"></a>
-<span class="sourceLineNo">743</span>    for (ClientProtos.Action action : actions.getActionList()) {<a name="line.743"></a>
-<span class="sourceLineNo">744</span>      hasResultOrException = false;<a name="line.744"></a>
-<span class="sourceLineNo">745</span>      resultOrExceptionBuilder.clear();<a name="line.745"></a>
-<span class="sourceLineNo">746</span>      try {<a name="line.746"></a>
-<span class="sourceLineNo">747</span>        Result r = null;<a name="line.747"></a>
-<span class="sourceLineNo">748</span><a name="line.748"></a>
-<span class="sourceLineNo">749</span>        if (context != null<a name="line.749"></a>
-<span class="sourceLineNo">750</span>            &amp;&amp; context.isRetryImmediatelySupported()<a name="line.750"></a>
-<span class="sourceLineNo">751</span>            &amp;&amp; (context.getResponseCellSize() &gt; maxQuotaResultSize<a name="line.751"></a>
-<span class="sourceLineNo">752</span>              || context.getResponseBlockSize() + context.getResponseExceptionSize()<a name="line.752"></a>
-<span class="sourceLineNo">753</span>              &gt; maxQuotaResultSize)) {<a name="line.753"></a>
-<span class="sourceLineNo">754</span><a name="line.754"></a>
-<span class="sourceLineNo">755</span>          // We're storing the exception since the exception and reason string won't<a name="line.755"></a>
-<span class="sourceLineNo">756</span>          // change after the response size limit is reached.<a name="line.756"></a>
-<span class="sourceLineNo">757</span>          if (sizeIOE == null ) {<a name="line.757"></a>
-<span class="sourceLineNo">758</span>            // We don't need the stack un-winding do don't throw the exception.<a name="line.758"></a>
-<span class="sourceLineNo">759</span>            // Throwing will kill the JVM's JIT.<a name="line.759"></a>
-<span class="sourceLineNo">760</span>            //<a name="line.760"></a>
-<span class="sourceLineNo">761</span>            // Instead just create the exception and then store it.<a name="line.761"></a>
-<span class="sourceLineNo">762</span>            sizeIOE = new MultiActionResultTooLarge("Max size exceeded"<a name="line.762"></a>
-<span class="sourceLineNo">763</span>                + " CellSize: " + context.getResponseCellSize()<a name="line.763"></a>
-<span class="sourceLineNo">764</span>                + " BlockSize: " + context.getResponseBlockSize());<a name="line.764"></a>
-<span class="sourceLineNo">765</span><a name="line.765"></a>
-<span class="sourceLineNo">766</span>            // Only report the exception once since there's only one request that<a name="line.766"></a>
-<span class="sourceLineNo">767</span>            // caused the exception. Otherwise this number will dominate the exceptions count.<a name="line.767"></a>
-<span class="sourceLineNo">768</span>            rpcServer.getMetrics().exception(sizeIOE);<a name="line.768"></a>
-<span class="sourceLineNo">769</span>          }<a name="line.769"></a>
-<span class="sourceLineNo">770</span><a name="line.770"></a>
-<span class="sourceLineNo">771</span>          // Now that there's an exception is known to be created<a name="line.771"></a>
-<span class="sourceLineNo">772</span>          // use it for the response.<a name="line.772"></a>
-<span class="sourceLineNo">773</span>          //<a name="line.773"></a>
-<span class="sourceLineNo">774</span>          // This will create a copy in the builder.<a name="line.774"></a>
-<span class="sourceLineNo">775</span>          hasResultOrException = true;<a name="line.775"></a>
-<span class="sourceLineNo">776</span>          NameBytesPair pair = ResponseConverter.buildException(sizeIOE);<a name="line.776"></a>
-<span class="sourceLineNo">777</span>          resultOrExceptionBuilder.setException(pair);<a name="line.777"></a>
-<span class="sourceLineNo">778</span>          context.incrementResponseExceptionSize(pair.getSerializedSize());<a name="line.778"></a>
-<span class="sourceLineNo">779</span>          resultOrExceptionBuilder.setIndex(action.getIndex());<a name="line.779"></a>
-<span class="sourceLineNo">780</span>          builder.addResultOrException(resultOrExceptionBuilder.build());<a name="line.780"></a>
-<span class="sourceLineNo">781</span>          if (cellScanner != null) {<a name="line.781"></a>
-<span class="sourceLineNo">782</span>            skipCellsForMutation(action, cellScanner);<a name="line.782"></a>
-<span class="sourceLineNo">783</span>          }<a name="line.783"></a>
-<span class="sourceLineNo">784</span>          continue;<a name="line.784"></a>
-<span class="sourceLineNo">785</span>        }<a name="line.785"></a>
-<span class="sourceLineNo">786</span>        if (action.hasGet()) {<a name="line.786"></a>
-<span class="sourceLineNo">787</span>          long before = EnvironmentEdgeManager.currentTime();<a name="line.787"></a>
-<span class="sourceLineNo">788</span>          try {<a name="line.788"></a>
-<span class="sourceLineNo">789</span>            Get get = ProtobufUtil.toGet(action.getGet());<a name="line.789"></a>
-<span class="sourceLineNo">790</span>            if (context != null) {<a name="line.790"></a>
-<span class="sourceLineNo">791</span>              r = get(get, ((HRegion) region), closeCallBack, context);<a name="line.791"></a>
-<span class="sourceLineNo">792</span>            } else {<a name="line.792"></a>
-<span class="sourceLineNo">793</span>              r = region.get(get);<a name="line.793"></a>
-<span class="sourceLineNo">794</span>            }<a name="line.794"></a>
-<span class="sourceLineNo">795</span>          } finally {<a name="line.795"></a>
-<span class="sourceLineNo">796</span>            if (regionServer.metricsRegionServer != null) {<a name="line.796"></a>
-<span class="sourceLineNo">797</span>              regionServer.metricsRegionServer.updateGet(<a name="line.797"></a>
-<span class="sourceLineNo">798</span>                EnvironmentEdgeManager.currentTime() - before);<a name="line.798"></a>
-<span class="sourceLineNo">799</span>            }<a name="line.799"></a>
-<span class="sourceLineNo">800</span>          }<a name="line.800"></a>
-<span class="sourceLineNo">801</span>        } else if (action.hasServiceCall()) {<a name="line.801"></a>
-<span class="sourceLineNo">802</span>          hasResultOrException = true;<a name="line.802"></a>
-<span class="sourceLineNo">803</span>          try {<a name="line.803"></a>
-<span class="sourceLineNo">804</span>            com.google.protobuf.Message result =<a name="line.804"></a>
-<span class="sourceLineNo">805</span>                execServiceOnRegion(region, action.getServiceCall());<a name="line.805"></a>
-<span class="sourceLineNo">806</span>            ClientProtos.CoprocessorServiceResult.Builder serviceResultBuilder =<a name="line.806"></a>
-<span class="sourceLineNo">807</span>                ClientProtos.CoprocessorServiceResult.newBuilder();<a name="line.807"></a>
-<span class="sourceLineNo">808</span>            resultOrExceptionBuilder.setServiceResult(<a name="line.808"></a>
-<span class="sourceLineNo">809</span>                serviceResultBuilder.setValue(<a name="line.809"></a>
-<span class="sourceLineNo">810</span>                  serviceResultBuilder.getValueBuilder()<a name="line.810"></a>
-<span class="sourceLineNo">811</span>                    .setName(result.getClass().getName())<a name="line.811"></a>
-<span class="sourceLineNo">812</span>                    // TODO: Copy!!!<a name="line.812"></a>
-<span class="sourceLineNo">813</span>                    .setValue(UnsafeByteOperations.unsafeWrap(result.toByteArray()))));<a name="line.813"></a>
-<span class="sourceLineNo">814</span>          } catch (IOException ioe) {<a name="line.814"></a>
-<span class="sourceLineNo">815</span>            rpcServer.getMetrics().exception(ioe);<a name="line.815"></a>
-<span class="sourceLineNo">816</span>            NameBytesPair pair = ResponseConverter.buildException(ioe);<a name="line.816"></a>
-<span class="sourceLineNo">817</span>            resultOrExceptionBuilder.setException(pair);<a name="line.817"></a>
-<span class="sourceLineNo">818</span>            context.incrementResponseExceptionSize(pair.getSerializedSize());<a name="line.818"></a>
-<span class="sourceLineNo">819</span>          }<a name="line.819"></a>
-<span class="sourceLineNo">820</span>        } else if (action.hasMutation()) {<a name="line.820"></a>
-<span class="sourceLineNo">821</span>          MutationType type = action.getMutation().getMutateType();<a name="line.821"></a>
-<span class="sourceLineNo">822</span>          if (type != MutationType.PUT &amp;&amp; type != MutationType.DELETE &amp;&amp; mutations != null &amp;&amp;<a name="line.822"></a>
-<span class="sourceLineNo">823</span>              !mutations.isEmpty()) {<a name="line.823"></a>
-<span class="sourceLineNo">824</span>            // Flush out any Puts or Deletes already collected.<a name="line.824"></a>
-<span class="sourceLineNo">825</span>            doBatchOp(builder, region, quota, mutations, cellScanner, spaceQuotaEnforcement, false);<a name="line.825"></a>
-<span class="sourceLineNo">826</span>            mutations.clear();<a name="line.826"></a>
-<span class="sourceLineNo">827</span>          }<a name="line.827"></a>
-<span class="sourceLineNo">828</span>          switch (type) {<a name="line.828"></a>
-<span class="sourceLineNo">829</span>            case APPEND:<a name="line.829"></a>
-<span class="sourceLineNo">830</span>              r = append(region, quota, action.getMutation(), cellScanner, nonceGroup,<a name="line.830"></a>
-<span class="sourceLineNo">831</span>                  spaceQuotaEnforcement);<a name="line.831"></a>
-<span class="sourceLineNo">832</span>              break;<a name="line.832"></a>
-<span class="sourceLineNo">833</span>            case INCREMENT:<a name="line.833"></a>
-<span class="sourceLineNo">834</span>              r = increment(region, quota, action.getMutation(), cellScanner, nonceGroup,<a name="line.834"></a>
-<span class="sourceLineNo">835</span>                  spaceQuotaEnforcement);<a name="line.835"></a>
-<span class="sourceLineNo">836</span>              break;<a name="line.836"></a>
-<span class="sourceLineNo">837</span>            case PUT:<a name="line.837"></a>
-<span class="sourceLineNo">838</span>            case DELETE:<a name="line.838"></a>
-<span class="sourceLineNo">839</span>              // Collect the individual mutations and apply in a batch<a name="line.839"></a>
-<span class="sourceLineNo">840</span>              if (mutations == null) {<a name="line.840"></a>
-<span class="sourceLineNo">841</span>                mutations = new ArrayList&lt;&gt;(actions.getActionCount());<a name="line.841"></a>
-<span class="sourceLineNo">842</span>              }<a name="line.842"></a>
-<span class="sourceLineNo">843</span>              mutations.add(action);<a name="line.843"></a>
-<span class="sourceLineNo">844</span>              break;<a name="line.844"></a>
-<span class="sourceLineNo">845</span>            default:<a name="line.845"></a>
-<span class="sourceLineNo">846</span>              throw new DoNotRetryIOException("Unsupported mutate type: " + type.name());<a name="line.846"></a>
-<span class="sourceLineNo">847</span>          }<a name="line.847"></a>
-<span class="sourceLineNo">848</span>        } else {<a name="line.848"></a>
-<span class="sourceLineNo">849</span>          throw new HBaseIOException("Unexpected Action type");<a name="line.849"></a>
-<span class="sourceLineNo">850</span>        }<a name="line.850"></a>
-<span class="sourceLineNo">851</span>        if (r != null) {<a name="line.851"></a>
-<span class="sourceLineNo">852</span>          ClientProtos.Result pbResult = null;<a name="line.852"></a>
-<span class="sourceLineNo">853</span>          if (isClientCellBlockSupport(context)) {<a name="line.853"></a>
-<span class="sourceLineNo">854</span>            pbResult = ProtobufUtil.toResultNoData(r);<a name="line.854"></a>
-<span class="sourceLineNo">855</span>            //  Hard to guess the size here.  Just make a rough guess.<a name="line.855"></a>
-<span class="sourceLineNo">856</span>            if (cellsToReturn == null) {<a name="line.856"></a>
-<span class="sourceLineNo">857</span>              cellsToReturn = new ArrayList&lt;&gt;();<a name="line.857"></a>
-<span class="sourceLineNo">858</span>            }<a name="line.858"></a>
-<span class="sourceLineNo">859</span>            cellsToReturn.add(r);<a name="line.859"></a>
-<span class="sourceLineNo">860</span>          } else {<a name="line.860"></a>
-<span class="sourceLineNo">861</span>            pbResult = ProtobufUtil.toResult(r);<a name="line.861"></a>
-<span class="sourceLineNo">862</span>          }<a name="line.862"></a>
-<span class="sourceLineNo">863</span>          lastBlock = addSize(context, r, lastBlock);<a name="line.863"></a>
-<span class="sourceLineNo">864</span>          hasResultOrException = true;<a name="line.864"></a>
-<span class="sourceLineNo">865</span>          resultOrExceptionBuilder.setResult(pbResult);<a name="line.865"></a>
-<span class="sourceLineNo">866</span>        }<a name="line.866"></a>
-<span class="sourceLineNo">867</span>        // Could get to here and there was no result and no exception.  Presumes we added<a name="line.867"></a>
-<span class="sourceLineNo">868</span>        // a Put or Delete to the collecting Mutations List for adding later.  In this<a name="line.868"></a>
-<span class="sourceLineNo">869</span>        // case the corresponding ResultOrException instance for the Put or Delete will be added<a name="line.869"></a>
-<span class="sourceLineNo">870</span>        // down in the doBatchOp method call rather than up here.<a name="line.870"></a>
-<span class="sourceLineNo">871</span>      } catch (IOException ie) {<a name="line.871"></a>
-<span class="sourceLineNo">872</span>        rpcServer.getMetrics().exception(ie);<a name="line.872"></a>
-<span class="sourceLineNo">873</span>        hasResultOrException = true;<a name="line.873"></a>
-<span class="sourceLineNo">874</span>        NameBytesPair pair = ResponseConverter.buildException(ie);<a name="line.874"></a>
-<span class="sourceLineNo">875</span>        resultOrExceptionBuilder.setException(pair);<a name="line.875"></a>
-<span class="sourceLineNo">876</span>        context.incrementResponseExceptionSize(pair.getSerializedSize());<a name="line.876"></a>
-<span class="sourceLineNo">877</span>      }<a name="line.877"></a>
-<span class="sourceLineNo">878</span>      if (hasResultOrException) {<a name="line.878"></a>
-<span class="sourceLineNo">879</span>        // Propagate index.<a name="line.879"></a>
-<span class="sourceLineNo">880</span>        resultOrExceptionBuilder.setIndex(action.getIndex());<a name="line.880"></a>
-<span class="sourceLineNo">881</span>        builder.addResultOrException(resultOrExceptionBuilder.build());<a name="line.881"></a>
-<span class="sourceLineNo">882</span>      }<a name="line.882"></a>
-<span class="sourceLineNo">883</span>    }<a name="line.883"></a>
-<span class="sourceLineNo">884</span>    // Finish up any outstanding mutations<a name="line.884"></a>
-<span class="sourceLineNo">885</span>    if (mutations != null &amp;&amp; !mutations.isEmpty()) {<a name="line.885"></a>
-<span class="sourceLineNo">886</span>      try {<a name="line.886"></a>
-<span class="sourceLineNo">887</span>        doBatchOp(builder, region, quota, mutations, cellScanner, spaceQuotaEnforcement, false);<a name="line.887"></a>
-<span class="sourceLineNo">888</span>      } catch (IOException ioe) {<a name="line.888"></a>
-<span class="sourceLineNo">889</span>        rpcServer.getMetrics().exception(ioe);<a name="line.889"></a>
-<span class="sourceLineNo">890</span>        NameBytesPair pair = ResponseConverter.buildException(ioe);<a name="line.890"></a>
-<span class="sourceLineNo">891</span>        resultOrExceptionBuilder.setException(pair);<a name="line.891"></a>
-<span class="sourceLineNo">892</span>        context.incrementResponseExceptionSize(pair.getSerializedSize());<a name="line.892"></a>
-<span class="sourceLineNo">893</span>        builder.addResultOrException(resultOrExceptionBuilder.build());<a name="line.893"></a>
-<span class="sourceLineNo">894</span>      }<a name="line.894"></a>
-<span class="sourceLineNo">895</span>    }<a name="line.895"></a>
-<span class="sourceLineNo">896</span>    return cellsToReturn;<a name="line.896"></a>
-<span class="sourceLineNo">897</span>  }<a name="line.897"></a>
-<span class="sourceLineNo">898</span><a name="line.898"></a>
-<span class="sourceLineNo">899</span>  private void checkCellSizeLimit(final HRegion r, final Mutation m) throws IOException {<a name="line.899"></a>
-<span class="sourceLineNo">900</span>    if (r.maxCellSize &gt; 0) {<a name="line.900"></a>
-<span class="sourceLineNo">901</span>      CellScanner cells = m.cellScanner();<a name="line.901"></a>
-<span class="sourceLineNo">902</span>      while (cells.advance()) {<a name="line.902"></a>
-<span class="sourceLineNo">903</span>        int size = PrivateCellUtil.estimatedSerializedSizeOf(cells.current());<a name="line.903"></a>
-<span class="sourceLineNo">904</span>        if (size &gt; r.maxCellSize) {<a name="line.904"></a>
-<span class="sourceLineNo">905</span>          String msg = "Cell with size " + size + " exceeds limit of " + r.maxCellSize + " bytes";<a name="line.905"></a>
-<span class="sourceLineNo">906</span>          if (LOG.isDebugEnabled()) {<a name="line.906"></a>
-<span class="sourceLineNo">907</span>            LOG.debug(msg);<a name="line.907"></a>
-<span class="sourceLineNo">908</span>          }<a name="line.908"></a>
-<span class="sourceLineNo">909</span>          throw new DoNotRetryIOException(msg);<a name="line.909"></a>
-<span class="sourceLineNo">910</span>        }<a name="line.910"></a>
-<span class="sourceLineNo">911</span>      }<a name="line.911"></a>
-<span class="sourceLineNo">912</span>    }<a name="line.912"></a>
-<span class="sourceLineNo">913</span>  }<a name="line.913"></a>
-<span class="sourceLineNo">914</span><a name="line.914"></a>
-<span class="sourceLineNo">915</span>  /**<a name="line.915"></a>
-<span class="sourceLineNo">916</span>   * Execute a list of Put/Delete mutations.<a name="line.916"></a>
-<span class="sourceLineNo">917</span>   *<a name="line.917"></a>
-<span class="sourceLineNo">918</span>   * @param builder<a name="line.918"></a>
-<span class="sourceLineNo">919</span>   * @param region<a name="line.919"></a>
-<span class="sourceLineNo">920</span>   * @param mutations<a name="line.920"></a>
-<span class="sourceLineNo">921</span>   */<a name="line.921"></a>
-<span class="sourceLineNo">922</span>  private void doBatchOp(final RegionActionResult.Builder builder, final HRegion region,<a name="line.922"></a>
-<span class="sourceLineNo">923</span>      final OperationQuota quota, final List&lt;ClientProtos.Action&gt; mutations,<a name="line.923"></a>
-<span class="sourceLineNo">924</span>      final CellScanner cells, ActivePolicyEnforcement spaceQuotaEnforcement, boolean atomic)<a name="line.924"></a>
-<span class="sourceLineNo">925</span>      throws IOException {<a name="line.925"></a>
-<span class="sourceLineNo">926</span>    Mutation[] mArray = new Mutation[mutations.size()];<a name="line.926"></a>
-<span class="sourceLineNo">927</span>    long before = EnvironmentEdgeManager.currentTime();<a name="line.927"></a>
-<span class="sourceLineNo">928</span>    boolean batchContainsPuts = false, batchContainsDelete = false;<a name="line.928"></a>
-<span class="sourceLineNo">929</span>    try {<a name="line.929"></a>
-<span class="sourceLineNo">930</span>      /** HBASE-17924<a name="line.930"></a>
-<span class="sourceLineNo">931</span>       * mutationActionMap is a map to map the relation between mutations and actions<a name="line.931"></a>
-<span class="sourceLineNo">932</span>       * since mutation array may have been reoredered.In order to return the right<a name="line.932"></a>
-<span class="sourceLineNo">933</span>       * result or exception to the corresponding actions, We need to know which action<a name="line.933"></a>
-<span class="sourceLineNo">934</span>       * is the mutation belong to. We can't sort ClientProtos.Action array, since they<a name="line.934"></a>
-<span class="sourceLineNo">935</span>       * are bonded to cellscanners.<a name="line.935"></a>
-<span class="sourceLineNo">936</span>       */<a name="line.936"></a>
-<span class="sourceLineNo">937</span>      Map&lt;Mutation, ClientProtos.Action&gt; mutationActionMap = new HashMap&lt;&gt;();<a name="line.937"></a>
-<span class="sourceLineNo">938</span>      int i = 0;<a name="line.938"></a>
-<span class="sourceLineNo">939</span>      for (ClientProtos.Action action: mutations) {<a name="line.939"></a>
-<span class="sourceLineNo">940</span>        MutationProto m = action.getMutation();<a name="line.940"></a>
-<span class="sourceLineNo">941</span>        Mutation mutation;<a name="line.941"></a>
-<span class="sourceLineNo">942</span>        if (m.getMutateType() == MutationType.PUT) {<a name="line.942"></a>
-<span class="sourceLineNo">943</span>          mutation = ProtobufUtil.toPut(m, cells);<a name="line.943"></a>
-<span class="sourceLineNo">944</span>          batchContainsPuts = true;<a name="line.944"></a>
-<span class="sourceLineNo">945</span>        } else {<a name="line.945"></a>
-<span class="sourceLineNo">946</span>          mutation = ProtobufUtil.toDelete(m, cells);<a name="line.946"></a>
-<span class="sourceLineNo">947</span>          batchContainsDelete = true;<a name="line.947"></a>
-<span class="sourceLineNo">948</span>        }<a name="line.948"></a>
-<span class="sourceLineNo">949</span>        mutationActionMap.put(mutation, action);<a name="line.949"></a>
-<span class="sourceLineNo">950</span>        mArray[i++] = mutation;<a name="line.950"></a>
-<span class="sourceLineNo">951</span>        checkCellSizeLimit(region, mutation);<a name="line.951"></a>
-<span class="sourceLineNo">952</span>        // Check if a space quota disallows this mutation<a name="line.952"></a>
-<span class="sourceLineNo">953</span>        spaceQuotaEnforcement.getPolicyEnforcement(region).check(mutation);<a name="line.953"></a>
-<span class="sourceLineNo">954</span>        quota.addMutation(mutation);<a name="line.954"></a>
-<span class="sourceLineNo">955</span>      }<a name="line.955"></a>
-<span class="sourceLineNo">956</span><a name="line.956"></a>
-<span class="sourceLineNo">957</span>      if (!region.getRegionInfo().isMetaRegion()) {<a name="line.957"></a>
-<span class="sourceLineNo">958</span>        regionServer.cacheFlusher.reclaimMemStoreMemory();<a name="line.958"></a>
-<span class="sourceLineNo">959</span>      }<a name="line.959"></a>
-<span class="sourceLineNo">960</span><a name="line.960"></a>
-<span class="sourceLineNo">961</span>      // HBASE-17924<a name="line.961"></a>
-<span class="sourceLineNo">962</span>      // Sort to improve lock efficiency for non-atomic batch of operations. If atomic (mostly<a name="line.962"></a>
-<span class="sourceLineNo">963</span>      // called from mutateRows()), order is preserved as its expected from the client<a name="line.963"></a>
-<span class="sourceLineNo">964</span>      if (!atomic) {<a name="line.964"></a>
-<span class="sourceLineNo">965</span>        Arrays.sort(mArray);<a name="line.965"></a>
-<span class="sourceLineNo">966</span>      }<a name="line.966"></a>
-<span class="sourceLineNo">967</span><a name="line.967"></a>
-<span class="sourceLineNo">968</span>      OperationStatus[] codes = region.batchMutate(mArray, atomic, HConstants.NO_NONCE,<a name="line.968"></a>
-<span class="sourceLineNo">969</span>        HConstants.NO_NONCE);<a name="line.969"></a>
-<span class="sourceLineNo">970</span>      for (i = 0; i &lt; codes.length; i++) {<a name="line.970"></a>
-<span class="sourceLineNo">971</span>        Mutation currentMutation = mArray[i];<a name="line.971"></a>
-<span class="sourceLineNo">972</span>        ClientProtos.Action currentAction = mutationActionMap.get(currentMutation);<a name="line.972"></a>
-<span class="sourceLineNo">973</span>        int index = currentAction.hasIndex() || !atomic ? currentAction.getIndex() : i;<a name="line.973"></a>
-<span class="sourceLineNo">974</span>        Exception e = null;<a name="line.974"></a>
-<span class="sourceLineNo">975</span>        switch (codes[i].getOperationStatusCode()) {<a name="line.975"></a>
-<span class="sourceLineNo">976</span>          case BAD_FAMILY:<a name="line.976"></a>
-<span class="sourceLineNo">977</span>            e = new NoSuchColumnFamilyException(codes[i].getExceptionMsg());<a name="line.977"></a>
-<span class="sourceLineNo">978</span>            builder.addResultOrException(getResultOrException(e, index));<a name="line.978"></a>
-<span class="sourceLineNo">979</span>            break;<a name="line.979"></a>
-<span class="sourceLineNo">980</span><a name="line.980"></a>
-<span class="sourceLineNo">981</span>          case SANITY_CHECK_FAILURE:<a name="line.981"></a>
-<span class="sourceLineNo">982</span>            e = new FailedSanityCheckException(codes[i].getExceptionMsg());<a name="line.982"></a>
-<span class="sourceLineNo">983</span>            builder.addResultOrException(getResultOrException(e, index));<a name="line.983"></a>
-<span class="sourceLineNo">984</span>            break;<a name="line.984"></a>
-<span class="sourceLineNo">985</span><a name="line.985"></a>
-<span class="sourceLineNo">986</span>          default:<a name="line.986"></a>
-<span class="sourceLineNo">987</span>            e = new DoNotRetryIOException(codes[i].getExceptionMsg());<a name="line.987"></a>
-<span class="sourceLineNo">988</span>            builder.addResultOrException(getResultOrException(e, index));<a name="line.988"></a>
-<span class="sourceLineNo">989</span>            break;<a name="line.989"></a>
-<span class="sourceLineNo">990</span><a name="line.990"></a>
-<span class="sourceLineNo">991</span>          case SUCCESS:<a name="line.991"></a>
-<span class="sourceLineNo">992</span>            builder.addResultOrException(getResultOrException(<a name="line.992"></a>
-<span class="sourceLineNo">993</span>              ClientProtos.Result.getDefaultInstance(), index));<a name="line.993"></a>
-<span class="sourceLineNo">994</span>            break;<a name="line.994"></a>
-<span class="sourceLineNo">995</span>        }<a name="line.995"></a>
-<span class="sourceLineNo">996</span>      }<a name="line.996"></a>
-<span class="sourceLineNo">997</span>    } catch (IOException ie) {<a name="line.997"></a>
-<span class="sourceLineNo">998</span>      if (atomic) {<a name="line.998"></a>
-<span class="sourceLineNo">999</span>        throw ie;<a name="line.999"></a>
-<span class="sourceLineNo">1000</span>      }<a name="line.1000"></a>
-<span class="sourceLineNo">1001</span>      for (Action mutation : mutations) {<a name="line.1001"></a>
-<span class="sourceLineNo">1002</span>        builder.addResultOrException(getResultOrException(ie, mutation.getIndex()));<a name="line.1002"></a>
+<span class="sourceLineNo">663</span>          region.getTableDescriptor().getTableName(),<a name="line.663"></a>
+<span class="sourceLineNo">664</span>        EnvironmentEdgeManager.currentTime() - before);<a name="line.664"></a>
+<span class="sourceLineNo">665</span>    }<a name="line.665"></a>
+<span class="sourceLineNo">666</span>    return r;<a name="line.666"></a>
+<span class="sourceLineNo">667</span>  }<a name="line.667"></a>
+<span class="sourceLineNo">668</span><a name="line.668"></a>
+<span class="sourceLineNo">669</span>  /**<a name="line.669"></a>
+<span class="sourceLineNo">670</span>   * Execute an increment mutation.<a name="line.670"></a>
+<span class="sourceLineNo">671</span>   *<a name="line.671"></a>
+<span class="sourceLineNo">672</span>   * @param region<a name="line.672"></a>
+<span class="sourceLineNo">673</span>   * @param mutation<a name="line.673"></a>
+<span class="sourceLineNo">674</span>   * @return the Result<a name="line.674"></a>
+<span class="sourceLineNo">675</span>   * @throws IOException<a name="line.675"></a>
+<span class="sourceLineNo">676</span>   */<a name="line.676"></a>
+<span class="sourceLineNo">677</span>  private Result increment(final HRegion region, final OperationQuota quota,<a name="line.677"></a>
+<span class="sourceLineNo">678</span>      final MutationProto mutation, final CellScanner cells, long nonceGroup,<a name="line.678"></a>
+<span class="sourceLineNo">679</span>      ActivePolicyEnforcement spaceQuota)<a name="line.679"></a>
+<span class="sourceLineNo">680</span>      throws IOException {<a name="line.680"></a>
+<span class="sourceLineNo">681</span>    long before = EnvironmentEdgeManager.currentTime();<a name="line.681"></a>
+<span class="sourceLineNo">682</span>    Increment increment = ProtobufUtil.toIncrement(mutation, cells);<a name="line.682"></a>
+<span class="sourceLineNo">683</span>    checkCellSizeLimit(region, increment);<a name="line.683"></a>
+<span class="sourceLineNo">684</span>    spaceQuota.getPolicyEnforcement(region).check(increment);<a name="line.684"></a>
+<span class="sourceLineNo">685</span>    quota.addMutation(increment);<a name="line.685"></a>
+<span class="sourceLineNo">686</span>    Result r = null;<a name="line.686"></a>
+<span class="sourceLineNo">687</span>    if (region.getCoprocessorHost() != null) {<a name="line.687"></a>
+<span class="sourceLineNo">688</span>      r = region.getCoprocessorHost().preIncrement(increment);<a name="line.688"></a>
+<span class="sourceLineNo">689</span>    }<a name="line.689"></a>
+<span class="sourceLineNo">690</span>    if (r == null) {<a name="line.690"></a>
+<span class="sourceLineNo">691</span>      boolean canProceed = startNonceOperation(mutation, nonceGroup);<a name="line.691"></a>
+<span class="sourceLineNo">692</span>      boolean success = false;<a name="line.692"></a>
+<span class="sourceLineNo">693</span>      try {<a name="line.693"></a>
+<span class="sourceLineNo">694</span>        long nonce = mutation.hasNonce() ? mutation.getNonce() : HConstants.NO_NONCE;<a name="line.694"></a>
+<span class="sourceLineNo">695</span>        if (canProceed) {<a name="line.695"></a>
+<span class="sourceLineNo">696</span>          r = region.increment(increment, nonceGroup, nonce);<a name="line.696"></a>
+<span class="sourceLineNo">697</span>        } else {<a name="line.697"></a>
+<span class="sourceLineNo">698</span>          // convert duplicate increment to get<a name="line.698"></a>
+<span class="sourceLineNo">699</span>          List&lt;Cell&gt; results = region.get(ProtobufUtil.toGet(mutation, cells), false, nonceGroup,<a name="line.699"></a>
+<span class="sourceLineNo">700</span>              nonce);<a name="line.700"></a>
+<span class="sourceLineNo">701</span>          r = Result.create(results);<a name="line.701"></a>
+<span class="sourceLineNo">702</span>        }<a name="line.702"></a>
+<span class="sourceLineNo">703</span>        success = true;<a name="line.703"></a>
+<span class="sourceLineNo">704</span>      } finally {<a name="line.704"></a>
+<span class="sourceLineNo">705</span>        if (canProceed) {<a name="line.705"></a>
+<span class="sourceLineNo">706</span>          endNonceOperation(mutation, nonceGroup, success);<a name="line.706"></a>
+<span class="sourceLineNo">707</span>        }<a name="line.707"></a>
+<span class="sourceLineNo">708</span>      }<a name="line.708"></a>
+<span class="sourceLineNo">709</span>      if (region.getCoprocessorHost() != null) {<a name="line.709"></a>
+<span class="sourceLineNo">710</span>        r = region.getCoprocessorHost().postIncrement(increment, r);<a name="line.710"></a>
+<span class="sourceLineNo">711</span>      }<a name="line.711"></a>
+<span class="sourceLineNo">712</span>    }<a name="line.712"></a>
+<span class="sourceLineNo">713</span>    if (regionServer.metricsRegionServer != null) {<a name="line.713"></a>
+<span class="sourceLineNo">714</span>      regionServer.metricsRegionServer.updateIncrement(<a name="line.714"></a>
+<span class="sourceLineNo">715</span>          region.getTableDescriptor().getTableName(),<a name="line.715"></a>
+<span class="sourceLineNo">716</span>          EnvironmentEdgeManager.currentTime() - before);<a name="line.716"></a>
+<span class="sourceLineNo">717</span>    }<a name="line.717"></a>
+<span class="sourceLineNo">718</span>    return r;<a name="line.718"></a>
+<span class="sourceLineNo">719</span>  }<a name="line.719"></a>
+<span class="sourceLineNo">720</span><a name="line.720"></a>
+<span class="sourceLineNo">721</span>  /**<a name="line.721"></a>
+<span class="sourceLineNo">722</span>   * Run through the regionMutation &lt;code&gt;rm&lt;/code&gt; and per Mutation, do the work, and then when<a name="line.722"></a>
+<span class="sourceLineNo">723</span>   * done, add an instance of a {@link ResultOrException} that corresponds to each Mutation.<a name="line.723"></a>
+<span class="sourceLineNo">724</span>   * @param cellsToReturn  Could be null. May be allocated in this method.  This is what this<a name="line.724"></a>
+<span class="sourceLineNo">725</span>   * method returns as a 'result'.<a name="line.725"></a>
+<span class="sourceLineNo">726</span>   * @param closeCallBack the callback to be used with multigets<a name="line.726"></a>
+<span class="sourceLineNo">727</span>   * @param context the current RpcCallContext<a name="line.727"></a>
+<span class="sourceLineNo">728</span>   * @return Return the &lt;code&gt;cellScanner&lt;/code&gt; passed<a name="line.728"></a>
+<span class="sourceLineNo">729</span>   */<a name="line.729"></a>
+<span class="sourceLineNo">730</span>  private List&lt;CellScannable&gt; doNonAtomicRegionMutation(final HRegion region,<a name="line.730"></a>
+<span class="sourceLineNo">731</span>      final OperationQuota quota, final RegionAction actions, final CellScanner cellScanner,<a name="line.731"></a>
+<span class="sourceLineNo">732</span>      final RegionActionResult.Builder builder, List&lt;CellScannable&gt; cellsToReturn, long nonceGroup,<a name="line.732"></a>
+<span class="sourceLineNo">733</span>      final RegionScannersCloseCallBack closeCallBack, RpcCallContext context,<a name="line.733"></a>
+<span class="sourceLineNo">734</span>      ActivePolicyEnforcement spaceQuotaEnforcement) {<a name="line.734"></a>
+<span class="sourceLineNo">735</span>    // Gather up CONTIGUOUS Puts and Deletes in this mutations List.  Idea is that rather than do<a name="line.735"></a>
+<span class="sourceLineNo">736</span>    // one at a time, we instead pass them in batch.  Be aware that the corresponding<a name="line.736"></a>
+<span class="sourceLineNo">737</span>    // ResultOrException instance that matches each Put or Delete is then added down in the<a name="line.737"></a>
+<span class="sourceLineNo">738</span>    // doBatchOp call.  We should be staying aligned though the Put and Delete are deferred/batched<a name="line.738"></a>
+<span class="sourceLineNo">739</span>    List&lt;ClientProtos.Action&gt; mutations = null;<a name="line.739"></a>
+<span class="sourceLineNo">740</span>    long maxQuotaResultSize = Math.min(maxScannerResultSize, quota.getReadAvailable());<a name="line.740"></a>
+<span class="sourceLineNo">741</span>    IOException sizeIOE = null;<a name="line.741"></a>
+<span class="sourceLineNo">742</span>    Object lastBlock = null;<a name="line.742"></a>
+<span class="sourceLineNo">743</span>    ClientProtos.ResultOrException.Builder resultOrExceptionBuilder = ResultOrException.newBuilder();<a name="line.743"></a>
+<span class="sourceLineNo">744</span>    boolean hasResultOrException = false;<a name="line.744"></a>
+<span class="sourceLineNo">745</span>    for (ClientProtos.Action action : actions.getActionList()) {<a name="line.745"></a>
+<span class="sourceLineNo">746</span>      hasResultOrException = false;<a name="line.746"></a>
+<span class="sourceLineNo">747</span>      resultOrExceptionBuilder.clear();<a name="line.747"></a>
+<span class="sourceLineNo">748</span>      try {<a name="line.748"></a>
+<span class="sourceLineNo">749</span>        Result r = null;<a name="line.749"></a>
+<span class="sourceLineNo">750</span><a name="line.750"></a>
+<span class="sourceLineNo">751</span>        if (context != null<a name="line.751"></a>
+<span class="sourceLineNo">752</span>            &amp;&amp; context.isRetryImmediatelySupported()<a name="line.752"></a>
+<span class="sourceLineNo">753</span>            &amp;&amp; (context.getResponseCellSize() &gt; maxQuotaResultSize<a name="line.753"></a>
+<span class="sourceLineNo">754</span>              || context.getResponseBlockSize() + context.getResponseExceptionSize()<a name="line.754"></a>
+<span class="sourceLineNo">755</span>              &gt; maxQuotaResultSize)) {<a name="line.755"></a>
+<span class="sourceLineNo">756</span><a name="line.756"></a>
+<span class="sourceLineNo">757</span>          // We're storing the exception since the exception and reason string won't<a name="line.757"></a>
+<span class="sourceLineNo">758</span>          // change after the response size limit is reached.<a name="line.758"></a>
+<span class="sourceLineNo">759</span>          if (sizeIOE == null ) {<a name="line.759"></a>
+<span class="sourceLineNo">760</span>            // We don't need the stack un-winding do don't throw the exception.<a name="line.760"></a>
+<span class="sourceLineNo">761</span>            // Throwing will kill the JVM's JIT.<a name="line.761"></a>
+<span class="sourceLineNo">762</span>            //<a name="line.762"></a>
+<span class="sourceLineNo">763</span>            // Instead just create the exception and then store it.<a name="line.763"></a>
+<span class="sourceLineNo">764</span>            sizeIOE = new MultiActionResultTooLarge("Max size exceeded"<a name="line.764"></a>
+<span class="sourceLineNo">765</span>                + " CellSize: " + context.getResponseCellSize()<a name="line.765"></a>
+<span class="sourceLineNo">766</span>                + " BlockSize: " + context.getResponseBlockSize());<a name="line.766"></a>
+<span class="sourceLineNo">767</span><a name="line.767"></a>
+<span class="sourceLineNo">768</span>            // Only report the exception once since there's only one request that<a name="line.768"></a>
+<span class="sourceLineNo">769</span>            // caused the exception. Otherwise this number will dominate the exceptions count.<a name="line.769"></a>
+<span class="sourceLineNo">770</span>            rpcServer.getMetrics().exception(sizeIOE);<a name="line.770"></a>
+<span class="sourceLineNo">771</span>          }<a name="line.771"></a>
+<span class="sourceLineNo">772</span><a name="line.772"></a>
+<span class="sourceLineNo">773</span>          // Now that there's an exception is known to be created<a name="line.773"></a>
+<span class="sourceLineNo">774</span>          // use it for the response.<a name="line.774"></a>
+<span class="sourceLineNo">775</span>          //<a name="line.775"></a>
+<span class="sourceLineNo">776</span>          // This will create a copy in the builder.<a name="line.776"></a>
+<span class="sourceLineNo">777</span>          hasResultOrException = true;<a name="line.777"></a>
+<span class="sourceLineNo">778</span>          NameBytesPair pair = ResponseConverter.buildException(sizeIOE);<a name="line.778"></a>
+<span class="sourceLineNo">779</span>          resultOrExceptionBuilder.setException(pair);<a name="line.779"></a>
+<span class="sourceLineNo">780</span>          context.incrementResponseExceptionSize(pair.getSerializedSize());<a name="line.780"></a>
+<span class="sourceLineNo">781</span>          resultOrExceptionBuilder.setIndex(action.getIndex());<a name="line.781"></a>
+<span class="sourceLineNo">782</span>          builder.addResultOrException(resultOrExceptionBuilder.build());<a name="line.782"></a>
+<span class="sourceLineNo">783</span>          if (cellScanner != null) {<a name="line.783"></a>
+<span class="sourceLineNo">784</span>            skipCellsForMutation(action, cellScanner);<a name="line.784"></a>
+<span class="sourceLineNo">785</span>          }<a name="line.785"></a>
+<span class="sourceLineNo">786</span>          continue;<a name="line.786"></a>
+<span class="sourceLineNo">787</span>        }<a name="line.787"></a>
+<span class="sourceLineNo">788</span>        if (action.hasGet()) {<a name="line.788"></a>
+<span class="sourceLineNo">789</span>          long before = EnvironmentEdgeManager.currentTime();<a name="line.789"></a>
+<span class="sourceLineNo">790</span>          try {<a name="line.790"></a>
+<span class="sourceLineNo">791</span>            Get get = ProtobufUtil.toGet(action.getGet());<a name="line.791"></a>
+<span class="sourceLineNo">792</span>            if (context != null) {<a name="line.792"></a>
+<span class="sourceLineNo">793</span>              r = get(get, ((HRegion) region), closeCallBack, context);<a name="line.793"></a>
+<span class="sourceLineNo">794</span>            } else {<a name="line.794"></a>
+<span class="sourceLineNo">795</span>              r = region.get(get);<a name="line.795"></a>
+<span class="sourceLineNo">796</span>            }<a name="line.796"></a>
+<span class="sourceLineNo">797</span>          } finally {<a name="line.797"></a>
+<span class="sourceLineNo">798</span>            if (regionServer.metricsRegionServer != null) {<a name="line.798"></a>
+<span class="sourceLineNo">799</span>              regionServer.metricsRegionServer.updateGet(<a name="line.799"></a>
+<span class="sourceLineNo">800</span>                  region.getTableDescriptor().getTableName(),<a name="line.800"></a>
+<span class="sourceLineNo">801</span>                  EnvironmentEdgeManager.currentTime() - before);<a name="line.801"></a>
+<span class="sourceLineNo">802</span>            }<a name="line.802"></a>
+<span class="sourceLineNo">803</span>          }<a name="line.803"></a>
+<span class="sourceLineNo">804</span>        } else if (action.hasServiceCall()) {<a name="line.804"></a>
+<span class="sourceLineNo">805</span>          hasResultOrException = true;<a name="line.805"></a>
+<span class="sourceLineNo">806</span>          try {<a name="line.806"></a>
+<span class="sourceLineNo">807</span>            com.google.protobuf.Message result =<a name="line.807"></a>
+<span class="sourceLineNo">808</span>                execServiceOnRegion(region, action.getServiceCall());<a name="line.808"></a>
+<span class="sourceLineNo">809</span>            ClientProtos.CoprocessorServiceResult.Builder serviceResultBuilder =<a name="line.809"></a>
+<span class="sourceLineNo">810</span>                ClientProtos.CoprocessorServiceResult.newBuilder();<a name="line.810"></a>
+<span class="sourceLineNo">811</span>            resultOrExceptionBuilder.setServiceResult(<a name="line.811"></a>
+<span class="sourceLineNo">812</span>                serviceResultBuilder.setValue(<a name="line.812"></a>
+<span class="sourceLineNo">813</span>                  serviceResultBuilder.getValueBuilder()<a name="line.813"></a>
+<span class="sourceLineNo">814</span>                    .setName(result.getClass().getName())<a name="line.814"></a>
+<span class="sourceLineNo">815</span>                    // TODO: Copy!!!<a name="line.815"></a>
+<span class="sourceLineNo">816</span>                    .setValue(UnsafeByteOperations.unsafeWrap(result.toByteArray()))));<a name="line.816"></a>
+<span class="sourceLineNo">817</span>          } catch (IOException ioe) {<a name="line.817"></a>
+<span class="sourceLineNo">818</span>            rpcServer.getMetrics().exception(ioe);<a name="line.818"></a>
+<span class="sourceLineNo">819</span>            NameBytesPair pair = ResponseConverter.buildException(ioe);<a name="line.819"></a>
+<span class="sourceLineNo">820</span>            resultOrExceptionBuilder.setException(pair);<a name="line.820"></a>
+<span class="sourceLineNo">821</span>            context.incrementResponseExceptionSize(pair.getSerializedSize());<a name="line.821"></a>
+<span class="sourceLineNo">822</span>          }<a name="line.822"></a>
+<span class="sourceLineNo">823</span>        } else if (action.hasMutation()) {<a name="line.823"></a>
+<span class="sourceLineNo">824</span>          MutationType type = action.getMutation().getMutateType();<a name="line.824"></a>
+<span class="sourceLineNo">825</span>          if (type != MutationType.PUT &amp;&amp; type != MutationType.DELETE &amp;&amp; mutations != null &amp;&amp;<a name="line.825"></a>
+<span class="sourceLineNo">826</span>              !mutations.isEmpty()) {<a name="line.826"></a>
+<span class="sourceLineNo">827</span>            // Flush out any Puts or Deletes already collected.<a name="line.827"></a>
+<span class="sourceLineNo">828</span>            doBatchOp(builder, region, quota, mutations, cellScanner, spaceQuotaEnforcement, false);<a name="line.828"></a>
+<span class="sourceLineNo">829</span>            mutations.clear();<a name="line.829"></a>
+<span class="sourceLineNo">830</span>          }<a name="line.830"></a>
+<span class="sourceLineNo">831</span>          switch (type) {<a name="line.831"></a>
+<span class="sourceLineNo">832</span>            case APPEND:<a name="line.832"></a>
+<span class="sourceLineNo">833</span>              r = append(region, quota, action.getMutation(), cellScanner, nonceGroup,<a name="line.833"></a>
+<span class="sourceLineNo">834</span>                  spaceQuotaEnforcement);<a name="line.834"></a>
+<span class="sourceLineNo">835</span>              break;<a name="line.835"></a>
+<span class="sourceLineNo">836</span>            case INCREMENT:<a name="line.836"></a>
+<span class="sourceLineNo">837</span>              r = increment(region, quota, action.getMutation(), cellScanner, nonceGroup,<a name="line.837"></a>
+<span class="sourceLineNo">838</span>                  spaceQuotaEnforcement);<a name="line.838"></a>
+<span class="sourceLineNo">839</span>              break;<a name="line.839"></a>
+<span class="sourceLineNo">840</span>            case PUT:<a name="line.840"></a>
+<span class="sourceLineNo">841</span>            case DELETE:<a name="line.841"></a>
+<span class="sourceLineNo">842</span>              // Collect the individual mutations and apply in a batch<a name="line.842"></a>
+<span class="sourceLineNo">843</span>              if (mutations == null) {<a name="line.843"></a>
+<span class="sourceLineNo">844</span>                mutations = new ArrayList&lt;&gt;(actions.getActionCount());<a name="line.844"></a>
+<span class="sourceLineNo">845</span>              }<a name="line.845"></a>
+<span class="sourceLineNo">846</span>              mutations.add(action);<a name="line.846"></a>
+<span class="sourceLineNo">847</span>              break;<a name="line.847"></a>
+<span class="sourceLineNo">848</span>            default:<a name="line.848"></a>
+<span class="sourceLineNo">849</span>              throw new DoNotRetryIOException("Unsupported mutate type: " + type.name());<a name="line.849"></a>
+<span class="sourceLineNo">850</span>          }<a name="line.850"></a>
+<span class="sourceLineNo">851</span>        } else {<a name="line.851"></a>
+<span class="sourceLineNo">852</span>          throw new HBaseIOException("Unexpected Action type");<a name="line.852"></a>
+<span class="sourceLineNo">853</span>        }<a name="line.853"></a>
+<span class="sourceLineNo">854</span>        if (r != null) {<a name="line.854"></a>
+<span class="sourceLineNo">855</span>          ClientProtos.Result pbResult = null;<a name="line.855"></a>
+<span class="sourceLineNo">856</span>          if (isClientCellBlockSupport(context)) {<a name="line.856"></a>
+<span class="sourceLineNo">857</span>            pbResult = ProtobufUtil.toResultNoData(r);<a name="line.857"></a>
+<span class="sourceLineNo">858</span>            //  Hard to guess the size here.  Just make a rough guess.<a name="line.858"></a>
+<span class="sourceLineNo">859</span>            if (cellsToReturn == null) {<a name="line.859"></a>
+<span class="sourceLineNo">860</span>              cellsToReturn = new ArrayList&lt;&gt;();<a name="line.860"></a>
+<span class="sourceLineNo">861</span>            }<a name="line.861"></a>
+<span class="sourceLineNo">862</span>            cellsToReturn.add(r);<a name="line.862"></a>
+<span class="sourceLineNo">863</span>          } else {<a name="line.863"></a>
+<span class="sourceLineNo">864</span>            pbResult = ProtobufUtil.toResult(r);<a name="line.864"></a>
+<span class="sourceLineNo">865</span>          }<a name="line.865"></a>
+<span class="sourceLineNo">866</span>          lastBlock = addSize(context, r, lastBlock);<a name="line.866"></a>
+<span class="sourceLineNo">867</span>          hasResultOrException = true;<a name="line.867"></a>
+<span class="sourceLineNo">868</span>          resultOrExceptionBuilder.setResult(pbResult);<a name="line.868"></a>
+<span class="sourceLineNo">869</span>        }<a name="line.869"></a>
+<span class="sourceLineNo">870</span>        // Could get to here and there was no result and no exception.  Presumes we added<a name="line.870"></a>
+<span class="sourceLineNo">871</span>        // a Put or Delete to the collecting Mutations List for adding later.  In this<a name="line.871"></a>
+<span class="sourceLineNo">872</span>        // case the corresponding ResultOrException instance for the Put or Delete will be added<a name="line.872"></a>
+<span class="sourceLineNo">873</span>        // down in the doBatchOp method call rather than up here.<a name="line.873"></a>
+<span class="sourceLineNo">874</span>      } catch (IOException ie) {<a name="line.874"></a>
+<span class="sourceLineNo">875</span>        rpcServer.getMetrics().exception(ie);<a name="line.875"></a>
+<span class="sourceLineNo">876</span>        hasResultOrException = true;<a name="line.876"></a>
+<span class="sourceLineNo">877</span>        NameBytesPair pair = ResponseConverter.buildException(ie);<a name="line.877"></a>
+<span class="sourceLineNo">878</span>        resultOrExceptionBuilder.setException(pair);<a name="line.878"></a>
+<span class="sourceLineNo">879</span>        context.incrementResponseExceptionSize(pair.getSerializedSize());<a name="line.879"></a>
+<span class="sourceLineNo">880</span>      }<a name="line.880"></a>
+<span class="sourceLineNo">881</span>      if (hasResultOrException) {<a name="line.881"></a>
+<span class="sourceLineNo">882</span>        // Propagate index.<a name="line.882"></a>
+<span class="sourceLineNo">883</span>        resultOrExceptionBuilder.setIndex(action.getIndex());<a name="line.883"></a>
+<span class="sourceLineNo">884</span>        builder.addResultOrException(resultOrExceptionBuilder.build());<a name="line.884"></a>
+<span class="sourceLineNo">885</span>      }<a name="line.885"></a>
+<span class="sourceLineNo">886</span>    }<a name="line.886"></a>
+<span class="sourceLineNo">887</span>    // Finish up any outstanding mutations<a name="line.887"></a>
+<span class="sourceLineNo">888</span>    if (mutations != null &amp;&amp; !mutations.isEmpty()) {<a name="line.888"></a>
+<span class="sourceLineNo">889</span>      try {<a name="line.889"></a>
+<span class="sourceLineNo">890</span>        doBatchOp(builder, region, quota, mutations, cellScanner, spaceQuotaEnforcement, false);<a name="line.890"></a>
+<span class="sourceLineNo">891</span>      } catch (IOException ioe) {<a name="line.891"></a>
+<span class="sourceLineNo">892</span>        rpcServer.getMetrics().exception(ioe);<a name="line.892"></a>
+<span class="sourceLineNo">893</span>        NameBytesPair pair = ResponseConverter.buildException(ioe);<a name="line.893"></a>
+<span class="sourceLineNo">894</span>        resultOrExceptionBuilder.setException(pair);<a name="line.894"></a>
+<span class="sourceLineNo">895</span>        context.incrementResponseExceptionSize(pair.getSerializedSize());<a name="line.895"></a>
+<span class="sourceLineNo">896</span>        builder.addResultOrException(resultOrExceptionBuilder.build());<a name="line.896"></a>
+<span class="sourceLineNo">897</span>      }<a name="line.897"></a>
+<span class="sourceLineNo">898</span>    }<a name="line.898"></a>
+<span class="sourceLineNo">899</span>    return cellsToReturn;<a name="line.899"></a>
+<span class="sourceLineNo">900</span>  }<a name="line.900"></a>
+<span class="sourceLineNo">901</span><a name="line.901"></a>
+<span class="sourceLineNo">902</span>  private void checkCellSizeLimit(final HRegion r, final Mutation m) throws IOException {<a name="line.902"></a>
+<span class="sourceLineNo">903</span>    if (r.maxCellSize &gt; 0) {<a name="line.903"></a>
+<span class="sourceLineNo">904</span>      CellScanner cells = m.cellScanner();<a name="line.904"></a>
+<span class="sourceLineNo">905</span>      while (cells.advance()) {<a name="line.905"></a>
+<span class="sourceLineNo">906</span>        int size = PrivateCellUtil.estimatedSerializedSizeOf(cells.current());<a name="line.906"></a>
+<span class="sourceLineNo">907</span>        if (size &gt; r.maxCellSize) {<a name="line.907"></a>
+<span class="sourceLineNo">908</span>          String msg = "Cell with size " + size + " exceeds limit of " + r.maxCellSize + " bytes";<a name="line.908"></a>
+<span class="sourceLineNo">909</span>          if (LOG.isDebugEnabled()) {<a name="line.909"></a>
+<span class="sourceLineNo">910</span>            LOG.debug(msg);<a name="line.910"></a>
+<span class="sourceLineNo">911</span>          }<a name="line.911"></a>
+<span class="sourceLineNo">912</span>          throw new DoNotRetryIOException(msg);<a name="line.912"></a>
+<span class="sourceLineNo">913</span>        }<a name="line.913"></a>
+<span class="sourceLineNo">914</span>      }<a name="line.914"></a>
+<span class="sourceLineNo">915</span>    }<a name="line.915"></a>
+<span class="sourceLineNo">916</span>  }<a name="line.916"></a>
+<span class="sourceLineNo">917</span><a name="line.917"></a>
+<span class="sourceLineNo">918</span>  /**<a name="line.918"></a>
+<span class="sourceLineNo">919</span>   * Execute a list of Put/Delete mutations.<a name="line.919"></a>
+<span class="sourceLineNo">920</span>   *<a name="line.920"></a>
+<span class="sourceLineNo">921</span>   * @param builder<a name="line.921"></a>
+<span class="sourceLineNo">922</span>   * @param region<a name="line.922"></a>
+<span class="sourceLineNo">923</span>   * @param mutations<a name="line.923"></a>
+<span class="sourceLineNo">924</span>   */<a name="line.924"></a>
+<span class="sourceLineNo">925</span>  private void doBatchOp(final RegionActionResult.Builder builder, final HRegion region,<a name="line.925"></a>
+<span class="sourceLineNo">926</span>      final OperationQuota quota, final List&lt;ClientProtos.Action&gt; mutations,<a name="line.926"></a>
+<span class="sourceLineNo">927</span>      final CellScanner cells, ActivePolicyEnforcement spaceQuotaEnforcement, boolean atomic)<a name="line.927"></a>
+<span class="sourceLineNo">928</span>      throws IOException {<a name="line.928"></a>
+<span class="sourceLineNo">929</span>    Mutation[] mArray = new Mutation[mutations.size()];<a name="line.929"></a>
+<span class="sourceLineNo">930</span>    long before = EnvironmentEdgeManager.currentTime();<a name="line.930"></a>
+<span class="sourceLineNo">931</span>    boolean batchContainsPuts = false, batchContainsDelete = false;<a name="line.931"></a>
+<span class="sourceLineNo">932</span>    try {<a name="line.932"></a>
+<span class="sourceLineNo">933</span>      /** HBASE-17924<a name="line.933"></a>
+<span class="sourceLineNo">934</span>       * mutationActionMap is a map to map the relation between mutations and actions<a name="line.934"></a>
+<span class="sourceLineNo">935</span>       * since mutation array may have been reoredered.In order to return the right<a name="line.935"></a>
+<span class="sourceLineNo">936</span>       * result or exception to the corresponding actions, We need to know which action<a name="line.936"></a>
+<span class="sourceLineNo">937</span>       * is the mutation belong to. We can't sort ClientProtos.Action array, since they<a name="line.937"></a>
+<span class="sourceLineNo">938</span>       * are bonded to cellscanners.<a name="line.938"></a>
+<span class="sourceLineNo">939</span>       */<a name="line.939"></a>
+<span class="sourceLineNo">940</span>      Map&lt;Mutation, ClientProtos.Action&gt; mutationActionMap = new HashMap&lt;&gt;();<a name="line.940"></a>
+<span class="sourceLineNo">941</span>      int i = 0;<a name="line.941"></a>
+<span class="sourceLineNo">942</span>      for (ClientProtos.Action action: mutations) {<a name="line.942"></a>
+<span class="sourceLineNo">943</span>        MutationProto m = action.getMutation();<a name="line.943"></a>
+<span class="sourceLineNo">944</span>        Mutation mutation;<a name="line.944"></a>
+<span class="sourceLineNo">945</span>        if (m.getMutateType() == MutationType.PUT) {<a name="line.945"></a>
+<span class="sourceLineNo">946</span>          mutation = ProtobufUtil.toPut(m, cells);<a name="line.946"></a>
+<span class="sourceLineNo">947</span>          batchContainsPuts = true;<a name="line.947"></a>
+<span class="sourceLineNo">948</span>        } else {<a name="line.948"></a>
+<span class="sourceLineNo">949</span>          mutation = ProtobufUtil.toDelete(m, cells);<a name="line.949"></a>
+<span class="sourceLineNo">950</span>          batchContainsDelete = true;<a name="line.950"></a>
+<span class="sourceLineNo">951</span>        }<a name="line.951"></a>
+<span class="sourceLineNo">952</span>        mutationActionMap.put(mutation, action);<a name="line.952"></a>
+<span class="sourceLineNo">953</span>        mArray[i++] = mutation;<a name="line.953"></a>
+<span class="sourceLineNo">954</span>        checkCellSizeLimit(region, mutation);<a name="line.954"></a>
+<span class="sourceLineNo">955</span>        // Check if a space quota disallows this mutation<a name="line.955"></a>
+<span class="sourceLineNo">956</span>        spaceQuotaEnforcement.getPolicyEnforcement(region).check(mutation);<a name="line.956"></a>
+<span class="sourceLineNo">957</span>        quota.addMutation(mutation);<a name="line.957"></a>
+<span class="sourceLineNo">958</span>      }<a name="line.958"></a>
+<span class="sourceLineNo">959</span><a name="line.959"></a>
+<span class="sourceLineNo">960</span>      if (!region.getRegionInfo().isMetaRegion()) {<a name="line.960"></a>
+<span class="sourceLineNo">961</span>        regionServer.cacheFlusher.reclaimMemStoreMemory();<a name="line.961"></a>
+<span class="sourceLineNo">962</span>      }<a name="line.962"></a>
+<span class="sourceLineNo">963</span><a name="line.963"></a>
+<span class="sourceLineNo">964</span>      // HBASE-17924<a name="line.964"></a>
+<span class="sourceLineNo">965</span>      // Sort to improve lock efficiency for non-atomic batch of operations. If atomic (mostly<a name="line.965"></a>
+<span class="sourceLineNo">966</span>      // called from mutateRows()), order is preserved as its expected from the client<a name="line.966"></a>
+<span class="sourceLineNo">967</span>      if (!atomic) {<a name="line.967"></a>
+<span class="sourceLineNo">968</span>        Arrays.sort(mArray);<a name="line.968"></a>
+<span class="sourceLineNo">969</span>      }<a name="line.969"></a>
+<span class="sourceLineNo">970</span><a name="line.970"></a>
+<span class="sourceLineNo">971</span>      OperationStatus[] codes = region.batchMutate(mArray, atomic, HConstants.NO_NONCE,<a name="line.971"></a>
+<span class="sourceLineNo">972</span>        HConstants.NO_NONCE);<a name="line.972"></a>
+<span class="sourceLineNo">973</span>      for (i = 0; i &lt; codes.length; i++) {<a name="line.973"></a>
+<span class="sourceLineNo">974</span>        Mutation currentMutation = mArray[i];<a name="line.974"></a>
+<span class="sourceLineNo">975</span>        ClientProtos.Action currentAction = mutationActionMap.get(currentMutation);<a name="line.975"></a>
+<span class="sourceLineNo">976</span>        int index = currentAction.hasIndex() || !atomic ? currentAction.getIndex() : i;<a name="line.976"></a>
+<span class="sourceLineNo">977</span>        Exception e = null;<a name="line.977"></a>
+<span class="sourceLineNo">978</span>        switch (codes[i].getOperationStatusCode()) {<a name="line.978"></a>
+<span class="sourceLineNo">979</span>          case BAD_FAMILY:<a name="line.979"></a>
+<span class="sourceLineNo">980</span>            e = new NoSuchColumnFamilyException(codes[i].getExceptionMsg());<a name="line.980"></a>
+<span class="sourceLineNo">981</span>            builder.addResultOrException(getResultOrException(e, index));<a name="line.981"></a>
+<span class="sourceLineNo">982</span>            break;<a name="line.982"></a>
+<span class="sourceLineNo">983</span><a name="line.983"></a>
+<span class="sourceLineNo">984</span>          case SANITY_CHECK_FAILURE:<a name="line.984"></a>
+<span class="sourceLineNo">985</span>            e = new FailedSanityCheckException(codes[i].getExceptionMsg());<a name="line.985"></a>
+<span class="sourceLineNo">986</span>            builder.addResultOrException(getResultOrException(e, index));<a name="line.986"></a>
+<span class="sourceLineNo">987</span>            break;<a name="line.987"></a>
+<span class="sourceLineNo">988</span><a name="line.988"></a>
+<span class="sourceLineNo">989</span>          default:<a name="line.989"></a>
+<span class="sourceLineNo">990</span>            e = new DoNotRetryIOException(codes[i].getExceptionMsg());<a name="line.990"></a>
+<span class="sourceLineNo">991</span>            builder.addResultOrException(getResultOrException(e, index));<a name="line.991"></a>
+<span class="sourceLineNo">992</span>            break;<a name="line.992"></a>
+<span class="sourceLineNo">993</span><a name="line.993"></a>
+<span class="sourceLineNo">994</span>          case SUCCESS:<a name="line.994"></a>
+<span class="sourceLineNo">995</span>            builder.addResultOrException(getResultOrException(<a name="line.995"></a>
+<span class="sourceLineNo">996</span>              ClientProtos.Result.getDefaultInstance(), index));<a name="line.996"></a>
+<span class="sourceLineNo">997</span>            break;<a name="line.997"></a>
+<span class="sourceLineNo">998</span>        }<a name="line.998"></a>
+<span class="sourceLineNo">999</span>      }<a name="line.999"></a>
+<span class="sourceLineNo">1000</span>    } catch (IOException ie) {<a name="line.1000"></a>
+<span class="sourceLineNo">1001</span>      if (atomic) {<a name="line.1001"></a>
+<span class="sourceLineNo">1002</span>        throw ie;<a name="line.1002"></a>
 <span class="sourceLineNo">1003</span>      }<a name="line.1003"></a>
-<span class="sourceLineNo">1004</span>    }<a name="line.1004"></a>
-<span class="sourceLineNo">1005</span>    if (regionServer.metricsRegionServer != null) {<a name="line.1005"></a>
-<span class="sourceLineNo">1006</span>      long after = EnvironmentEdgeManager.currentTime();<a name="line.1006"></a>
-<span class="sourceLineNo">1007</span>      if (batchContainsPuts) {<a name="line.1007"></a>
-<span class="sourceLineNo">1008</span>        regionServer.metricsRegionServer.updatePutBatch(after - before);<a name="line.1008"></a>
-<span class="sourceLineNo">1009</span>      }<a name="line.1009"></a>
-<span class="sourceLineNo">1010</span>      if (batchContainsDelete) {<a name="line.1010"></a>
-<span class="sourceLineNo">1011</span>        regionServer.metricsRegionServer.updateDeleteBatch(after - before);<a name="line.1011"></a>
-<span class="sourceLineNo">1012</span>      }<a name="line.1012"></a>
-<span class="sourceLineNo">1013</span>    }<a name="line.1013"></a>
-<span class="sourceLineNo">1014</span>  }<a name="line.1014"></a>
-<span class="sourceLineNo">1015</span><a name="line.1015"></a>
-<span class="sourceLineNo">1016</span>  /**<a name="line.1016"></a>
-<span class="sourceLineNo">1017</span>   * Execute a list of Put/Delete mutations. The function returns OperationStatus instead of<a name="line.1017"></a>
-<span class="sourceLineNo">1018</span>   * constructing MultiResponse to save a possible loop if caller doesn't need MultiResponse.<a name="line.1018"></a>
-<span class="sourceLineNo">1019</span>   * @param region<a name="line.1019"></a>
-<span class="sourceLineNo">1020</span>   * @param mutations<a name="line.1020"></a>
-<span class="sourceLineNo">1021</span>   * @param replaySeqId<a name="line.1021"></a>
-<span class="sourceLineNo">1022</span>   * @return an array of OperationStatus which internally contains the OperationStatusCode and the<a name="line.1022"></a>
-<span class="sourceLineNo">1023</span>   *         exceptionMessage if any<a name="line.1023"></a>
-<span class="sourceLineNo">1024</span>   * @throws IOException<a name="line.1024"></a>
-<span class="sourceLineNo">1025</span>   */<a name="line.1025"></a>
-<span class="sourceLineNo">1026</span>  private OperationStatus [] doReplayBatchOp(final HRegion region,<a name="line.1026"></a>
-<span class="sourceLineNo">1027</span>      final List&lt;WALSplitter.MutationReplay&gt; mutations, long replaySeqId) throws IOException {<a name="line.1027"></a>
-<span class="sourceLineNo">1028</span>    long before = EnvironmentEdgeManager.currentTime();<a name="line.1028"></a>
-<span class="sourceLineNo">1029</span>    boolean batchContainsPuts = false, batchContainsDelete = false;<a name="line.1029"></a>
-<span class="sourceLineNo">1030</span>    try {<a name="line.1030"></a>
-<span class="sourceLineNo">1031</span>      for (Iterator&lt;WALSplitter.MutationReplay&gt; it = mutations.iterator(); it.hasNext();) {<a name="line.1031"></a>
-<span class="sourceLineNo">1032</span>        WALSplitter.MutationReplay m = it.next();<a name="line.1032"></a>
-<span class="sourceLineNo">1033</span><a name="line.1033"></a>
-<span class="sourceLineNo">1034</span>        if (m.type == MutationType.PUT) {<a name="line.1034"></a>
-<span class="sourceLineNo">1035</span>          batchContainsPuts = true;<a name="line.1035"></a>
-<span class="sourceLineNo">1036</span>        } else {<a name="line.1036"></a>
-<span class="sourceLineNo">1037</span>          batchContainsDelete = true;<a name="line.1037"></a>
-<span class="sourceLineNo">1038</span>        }<a name="line.1038"></a>
-<span class="sourceLineNo">1039</span><a name="line.1039"></a>
-<span class="sourceLineNo">1040</span>        NavigableMap&lt;byte[], List&lt;Cell&gt;&gt; map = m.mutation.getFamilyCellMap();<a name="line.1040"></a>
-<span class="sourceLineNo">1041</span>        List&lt;Cell&gt; metaCells = map.get(WALEdit.METAFAMILY);<a name="line.1041"></a>
-<span class="sourceLineNo">1042</span>        if (metaCells != null &amp;&amp; !metaCells.isEmpty()) {<a name="line.1042"></a>
-<span class="sourceLineNo">1043</span>          for (Cell metaCell : metaCells) {<a name="line.1043"></a>
-<span class="sourceLineNo">1044</span>            CompactionDescriptor compactionDesc = WALEdit.getCompaction(metaCell);<a name="line.1044"></a>
-<span class="sourceLineNo">1045</span>            boolean isDefaultReplica = RegionReplicaUtil.isDefaultReplica(region.getRegionInfo());<a name="line.1045"></a>
-<span class="sourceLineNo">1046</span>            HRegion hRegion = (HRegion)region;<a name="line.1046"></a>
-<span class="sourceLineNo">1047</span>            if (compactionDesc != null) {<a name="line.1047"></a>
-<span class="sourceLineNo">1048</span>              // replay the compaction. Remove the files from stores only if we are the primary<a name="line.1048"></a>
-<span class="sourceLineNo">1049</span>              // region replica (thus own the files)<a name="line.1049"></a>
-<span class="sourceLineNo">1050</span>              hRegion.replayWALCompactionMarker(compactionDesc, !isDefaultReplica, isDefaultReplica,<a name="line.1050"></a>
-<span class="sourceLineNo">1051</span>                replaySeqId);<a name="line.1051"></a>
-<span class="sourceLineNo">1052</span>              continue;<a name="line.1052"></a>
-<span class="sourceLineNo">1053</span>            }<a name="line.1053"></a>
-<span class="sourceLineNo">1054</span>            FlushDescriptor flushDesc = WALEdit.getFlushDescriptor(metaCell);<a name="line.1054"></a>
-<span class="sourceLineNo">1055</span>            if (flushDesc != null &amp;&amp; !isDefaultReplica) {<a name="line.1055"></a>
-<span class="sourceLineNo">1056</span>              hRegion.replayWALFlushMarker(flushDesc, replaySeqId);<a name="line.1056"></a>
+<span class="sourceLineNo">1004</span>      for (Action mutation : mutations) {<a name="line.1004"></a>
+<span class="sourceLineNo">1005</span>        builder.addResultOrException(getResultOrException(ie, mutation.getIndex()));<a name="line.1005"></a>
+<span class="sourceLineNo">1006</span>      }<a name="line.1006"></a>
+<span class="sourceLineNo">1007</span>    }<a name="line.1007"></a>
+<span class="sourceLineNo">1008</span>    if (regionServer.metricsRegionServer != null) {<a name="line.1008"></a>
+<span class="sourceLineNo">1009</span>      long after = EnvironmentEdgeManager.currentTime();<a name="line.1009"></a>
+<span class="sourceLineNo">1010</span>      if (batchContainsPuts) {<a name="line.1010"></a>
+<span class="sourceLineNo">1011</span>        regionServer.metricsRegionServer.updatePutBatch(<a name="line.1011"></a>
+<span class="sourceLineNo">1012</span>            region.getTableDescriptor().getTableName(), after - before);<a name="line.1012"></a>
+<span class="sourceLineNo">1013</span>      }<a name="line.1013"></a>
+<span class="sourceLineNo">1014</span>      if (batchContainsDelete) {<a name="line.1014"></a>
+<span class="sourceLineNo">1015</span>        regionServer.metricsRegionServer.updateDeleteBatch(<a name="line.1015"></a>
+<span class="sourceLineNo">1016</span>            region.getTableDescriptor().getTableName(), after - before);<a name="line.1016"></a>
+<span class="sourceLineNo">1017</span>      }<a name="line.1017"></a>
+<span class="sourceLineNo">1018</span>    }<a name="line.1018"></a>
+<span class="sourceLineNo">1019</span>  }<a name="line.1019"></a>
+<span class="sourceLineNo">1020</span><a name="line.1020"></a>
+<span class="sourceLineNo">1021</span>  /**<a name="line.1021"></a>
+<span class="sourceLineNo">1022</span>   * Execute a list of Put/Delete mutations. The function returns OperationStatus instead of<a name="line.1022"></a>
+<span class="sourceLineNo">1023</span>   * constructing MultiResponse to save a possible loop if caller doesn't need MultiResponse.<a name="line.1023"></a>
+<span class="sourceLineNo">1024</span>   * @param region<a name="line.1024"></a>
+<span class="sourceLineNo">1025</span>   * @param mutations<a name="line.1025"></a>
+<span class="sourceLineNo">1026</span>   * @param replaySeqId<a name="line.1026"></a>
+<span class="sourceLineNo">1027</span>   * @return an array of OperationStatus which internally contains the OperationStatusCode and the<a name="line.1027"></a>
+<span class="sourceLineNo">1028</span>   *         exceptionMessage if any<a name="line.1028"></a>
+<span class="sourceLineNo">1029</span>   * @throws IOException<a name="line.1029"></a>
+<span class="sourceLineNo">1030</span>   */<a name="line.1030"></a>
+<span class="sourceLineNo">1031</span>  private OperationStatus [] doReplayBatchOp(final HRegion region,<a name="line.1031"></a>
+<span class="sourceLineNo">1032</span>      final List&lt;WALSplitter.MutationReplay&gt; mutations, long replaySeqId) throws IOException {<a name="line.1032"></a>
+<span class="sourceLineNo">1033</span>    long before = EnvironmentEdgeManager.currentTime();<a name="line.1033"></a>
+<span class="sourceLineNo">1034</span>    boolean batchContainsPuts = false, batchContainsDelete = false;<a name="line.1034"></a>
+<span class="sourceLineNo">1035</span>    try {<a name="line.1035"></a>
+<span class="sourceLineNo">1036</span>      for (Iterator&lt;WALSplitter.MutationReplay&gt; it = mutations.iterator(); it.hasNext();) {<a name="line.1036"></a>
+<span class="sourceLineNo">1037</span>        WALSplitter.MutationReplay m = it.next();<a name="line.1037"></a>
+<span class="sourceLineNo">1038</span><a name="line.1038"></a>
+<span class="sourceLineNo">1039</span>        if (m.type == MutationType.PUT) {<a name="line.1039"></a>
+<span class="sourceLineNo">1040</span>          batchContainsPuts = true;<a name="line.1040"></a>
+<span class="sourceLineNo">1041</span>        } else {<a name="line.1041"></a>
+<span class="sourceLineNo">1042</span>          batchContainsDelete = true;<a name="line.1042"></a>
+<span class="sourceLineNo">1043</span>        }<a name="line.1043"></a>
+<span class="sourceLineNo">1044</span><a name="line.1044"></a>
+<span class="sourceLineNo">1045</span>        NavigableMap&lt;byte[], List&lt;Cell&gt;&gt; map = m.mutation.getFamilyCellMap();<a name="line.1045"></a>
+<span class="sourceLineNo">1046</span>        List&lt;Cell&gt; metaCells = map.get(WALEdit.METAFAMILY);<a name="line.1046"></a>
+<span class="sourceLineNo">1047</span>        if (metaCells != null &amp;&amp; !metaCells.isEmpty()) {<a name="line.1047"></a>
+<span class="sourceLineNo">1048</span>          for (Cell metaCell : metaCells) {<a name="line.1048"></a>
+<span class="sourceLineNo">1049</span>            CompactionDescriptor compactionDesc = WALEdit.getCompaction(metaCell);<a name="line.1049"></a>
+<span class="sourceLineNo">1050</span>            boolean isDefaultReplica = RegionReplicaUtil.isDefaultReplica(region.getRegionInfo());<a name="line.1050"></a>
+<span class="sourceLineNo">1051</span>            HRegion hRegion = (HRegion)region;<a name="line.1051"></a>
+<span class="sourceLineNo">1052</span>            if (compactionDesc != null) {<a name="line.1052"></a>
+<span class="sourceLineNo">1053</span>              // replay the compaction. Remove the files from stores only if we are the primary<a name="line.1053"></a>
+<span class="sourceLineNo">1054</span>              // region replica (thus own the files)<a name="line.1054"></a>
+<span class="sourceLineNo">1055</span>              hRegion.replayWALCompactionMarker(compactionDesc, !isDefaultReplica, isDefaultReplica,<a name="line.1055"></a>
+<span class="sourceLineNo">1056</span>                replaySeqId);<a name="line.1056"></a>
 <span class="sourceLineNo">1057</span>              continue;<a name="line.1057"></a>
 <span class="sourceLineNo">1058</span>            }<a name="line.1058"></a>
-<span class="sourceLineNo">1059</span>            RegionEventDescriptor regionEvent = WALEdit.getRegionEventDescriptor(metaCell);<a name="line.1059"></a>
-<span class="sourceLineNo">1060</span>            if (regionEvent != null &amp;&amp; !isDefaultReplica) {<a name="line.1060"></a>
-<span class="sourceLineNo">1061</span>              hRegion.replayWALRegionEventMarker(regionEvent);<a name="line.1061"></a>
+<span class="sourceLineNo">1059</span>            FlushDescriptor flushDesc = WALEdit.getFlushDescriptor(metaCell);<a name="line.1059"></a>
+<span class="sourceLineNo">1060</span>            if (flushDesc != null &amp;&amp; !isDefaultReplica) {<a name="line.1060"></a>
+<span class="sourceLineNo">1061</span>              hRegion.replayWALFlushMarker(flushDesc, replaySeqId);<a name="line.1061"></a>
 <span class="sourceLineNo">1062</span>              continue;<a name="line.1062"></a>
 <span class="sourceLineNo">1063</span>            }<a name="line.1063"></a>
-<span class="sourceLineNo">1064</span>            BulkLoadDescriptor bulkLoadEvent = WALEdit.getBulkLoadDescriptor(metaCell);<a name="line.1064"></a>
-<span class="sourceLineNo">1065</span>            if (bulkLoadEvent != null) {<a name="line.1065"></a>
-<span class="sourceLineNo">1066</span>              hRegion.replayWALBulkLoadEventMarker(bulkLoadEvent);<a name="line.1066"></a>
+<span class="sourceLineNo">1064</span>            RegionEventDescriptor regionEvent = WALEdit.getRegionEventDescriptor(metaCell);<a name="line.1064"></a>
+<span class="sourceLineNo">1065</span>            if (regionEvent != null &amp;&amp; !isDefaultReplica) {<a name="line.1065"></a>
+<span class="sourceLineNo">1066</span>              hRegion.replayWALRegionEventMarker(regionEvent);<a name="line.1066"></a>
 <span class="sourceLineNo">1067</span>              continue;<a name="line.1067"></a>
 <span class="sourceLineNo">1068</span>            }<a name="line.1068"></a>
-<span class="sourceLineNo">1069</span>          }<a name="line.1069"></a>
-<span class="sourceLineNo">1070</span>          it.remove();<a name="line.1070"></a>
-<span class="sourceLineNo">1071</span>        }<a name="line.1071"></a>
-<span class="sourceLineNo">1072</span>      }<a name="line.1072"></a>
-<span class="sourceLineNo">1073</span>      requestCount.increment();<a name="line.1073"></a>
-<span class="sourceLineNo">1074</span>      if (!region.getRegionInfo().isMetaRegion()) {<a name="line.1074"></a>
-<span class="sourceLineNo">1075</span>        regionServer.cacheFlusher.reclaimMemStoreMemory();<a name="line.1075"></a>
-<span class="sourceLineNo">1076</span>      }<a name="line.1076"></a>
-<span class="sourceLineNo">1077</span>      return region.batchReplay(mutations.toArray(<a name="line.1077"></a>
-<span class="sourceLineNo">1078</span>        new WALSplitter.MutationReplay[mutations.size()]), replaySeqId);<a name="line.1078"></a>
-<span class="sourceLineNo">1079</span>    } finally {<a name="line.1079"></a>
-<span class="sourceLineNo">1080</span>      if (regionServer.metricsRegionServer != null) {<a name="line.1080"></a>
-<span class="sourceLineNo">1081</span>        long after = EnvironmentEdgeManager.currentTime();<a name="line.1081"></a>
-<span class="sourceLineNo">1082</span>          if (batchContainsPuts) {<a name="line.1082"></a>
-<span class="sourceLineNo">1083</span>          regionServer.metricsRegionServer.updatePutBatch(after - before);<a name="line.1083"></a>
-<span class="sourceLineNo">1084</span>        }<a name="line.1084"></a>
-<span class="sourceLineNo">1085</span>        if (batchContainsDelete) {<a name="line.1085"></a>
-<span class="sourceLineNo">1086</span>          regionServer.metricsRegionServer.updateDeleteBatch(after - before);<a name="line.1086"></a>
-<span class="sourceLineNo">1087</span>        }<a name="line.1087"></a>
-<span class="sourceLineNo">1088</span>      }<a name="line.1088"></a>
-<span class="sourceLineNo">1089</span>    }<a name="line.1089"></a>
-<span class="sourceLineNo">1090</span>  }<a name="line.1090"></a>
-<span class="sourceLineNo">1091</span><a name="line.1091"></a>
-<span class="sourceLineNo">1092</span>  private void closeAllScanners() {<a name="line.1092"></a>
-<span class="sourceLineNo">1093</span>    // Close any outstanding scanners. Means they'll get an UnknownScanner<a name="line.1093"></a>
-<span class="sourceLineNo">1094</span>    // exception next time they come in.<a name="line.1094"></a>
-<span class="sourceLineNo">1095</span>    for (Map.Entry&lt;String, RegionScannerHolder&gt; e : scanners.entrySet()) {<a name="line.1095"></a>
-<span class="sourceLineNo">1096</span>      try {<a name="line.1096"></a>
-<span class="sourceLineNo">1097</span>        e.getValue().s.close();<a name="line.1097"></a>
-<span class="sourceLineNo">1098</span>      } catch (IOException ioe) {<a name="line.1098"></a>
-<span class="sourceLineNo">1099</span>        LOG.warn("Closing scanner " + e.getKey(), ioe);<a name="line.1099"></a>
-<span class="sourceLineNo">1100</span>      }<a name="line.1100"></a>
-<span class="sourceLineNo">1101</span>    }<a name="line.1101"></a>
-<span class="sourceLineNo">1102</span>  }<a name="line.1102"></a>
-<span class="sourceLineNo">1103</span><a name="line.1103"></a>
-<span class="sourceLineNo">1104</span>  // Exposed for testing<a name="line.1104"></a>
-<span class="sourceLineNo">1105</span>  interface LogDelegate {<a name="line.1105"></a>
-<span class="sourceLineNo">1106</span>    void logBatchWarning(String firstRegionName, int sum, int rowSizeWarnThreshold);<a name="line.1

<TRUNCATED>

[25/32] hbase-site git commit: Published site at .

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/29b27596/devapidocs/org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html b/devapidocs/org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html
index c2bf19f..a3527dd 100644
--- a/devapidocs/org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html
+++ b/devapidocs/org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html
@@ -18,8 +18,8 @@
     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 tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var methods = {"i0":9,"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};
+var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
 var altColor = "altColor";
 var rowColor = "rowColor";
 var tableTab = "tableTab";
@@ -111,7 +111,7 @@ var activeTableTab = "activeTableTab";
 <br>
 <pre>@InterfaceStability.Evolving
  @InterfaceAudience.Private
-public class <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html#line.39">MetricsRegionServer</a>
+public class <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html#line.41">MetricsRegionServer</a>
 extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></pre>
 <div class="block"><p>
  This class is for maintaining the various regionserver statistics
@@ -150,9 +150,21 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html#regionServerWrapper">regionServerWrapper</a></span></code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
+<td class="colFirst"><code>static boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html#RS_ENABLE_TABLE_METRICS_DEFAULT">RS_ENABLE_TABLE_METRICS_DEFAULT</a></span></code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html#RS_ENABLE_TABLE_METRICS_KEY">RS_ENABLE_TABLE_METRICS_KEY</a></span></code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
 <td class="colFirst"><code>private <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerSource.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsRegionServerSource</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html#serverSource">serverSource</a></span></code>&nbsp;</td>
 </tr>
+<tr class="altColor">
+<td class="colFirst"><code>private <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionServerTableMetrics.html" title="class in org.apache.hadoop.hbase.regionserver">RegionServerTableMetrics</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html#tableMetrics">tableMetrics</a></span></code>&nbsp;</td>
+</tr>
 </table>
 </li>
 </ul>
@@ -168,11 +180,13 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <th class="colOne" scope="col">Constructor and Description</th>
 </tr>
 <tr class="altColor">
-<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html#MetricsRegionServer-org.apache.hadoop.hbase.regionserver.MetricsRegionServerWrapper-">MetricsRegionServer</a></span>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapper.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsRegionServerWrapper</a>&nbsp;regionServerWrapper)</code>&nbsp;</td>
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html#MetricsRegionServer-org.apache.hadoop.hbase.regionserver.MetricsRegionServerWrapper-org.apache.hadoop.conf.Configuration-">MetricsRegionServer</a></span>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapper.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsRegionServerWrapper</a>&nbsp;regionServerWrapper,
+                   org.apache.hadoop.conf.Configuration&nbsp;conf)</code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
-<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html#MetricsRegionServer-org.apache.hadoop.hbase.regionserver.MetricsRegionServerWrapper-org.apache.hadoop.hbase.regionserver.MetricsRegionServerSource-">MetricsRegionServer</a></span>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapper.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsRegionServerWrapper</a>&nbsp;regionServerWrapper,
-                   <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerSource.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsRegionServerSource</a>&nbsp;serverSource)</code>&nbsp;</td>
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html#MetricsRegionServer-org.apache.hadoop.hbase.regionserver.MetricsRegionServerWrapper-org.apache.hadoop.hbase.regionserver.MetricsRegionServerSource-org.apache.hadoop.hbase.regionserver.RegionServerTableMetrics-">MetricsRegionServer</a></span>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapper.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsRegionServerWrapper</a>&nbsp;regionServerWrapper,
+                   <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerSource.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsRegionServerSource</a>&nbsp;serverSource,
+                   <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionServerTableMetrics.html" title="class in org.apache.hadoop.hbase.regionserver">RegionServerTableMetrics</a>&nbsp;tableMetrics)</code>&nbsp;</td>
 </tr>
 </table>
 </li>
@@ -184,44 +198,51 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 </a>
 <h3>Method Summary</h3>
 <table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
-<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
 <tr>
 <th class="colFirst" scope="col">Modifier and Type</th>
 <th class="colLast" scope="col">Method and Description</th>
 </tr>
 <tr id="i0" class="altColor">
+<td class="colFirst"><code>(package private) static <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionServerTableMetrics.html" title="class in org.apache.hadoop.hbase.regionserver">RegionServerTableMetrics</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html#createTableMetrics-org.apache.hadoop.conf.Configuration-">createTableMetrics</a></span>(org.apache.hadoop.conf.Configuration&nbsp;conf)</code>
+<div class="block">Creates an instance of <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionServerTableMetrics.html" title="class in org.apache.hadoop.hbase.regionserver"><code>RegionServerTableMetrics</code></a> only if the feature is enabled.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerSource.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsRegionServerSource</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html#getMetricsSource--">getMetricsSource</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i1" class="rowColor">
+<tr id="i2" class="altColor">
 <td class="colFirst"><code><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapper.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsRegionServerWrapper</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html#getRegionServerWrapper--">getRegionServerWrapper</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i2" class="altColor">
+<tr id="i3" class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html#incrSplitRequest--">incrSplitRequest</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i3" class="rowColor">
+<tr id="i4" class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html#incrSplitSuccess--">incrSplitSuccess</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i4" class="altColor">
+<tr id="i5" class="rowColor">
 <td class="colFirst"><code>void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html#updateAppend-long-">updateAppend</a></span>(long&nbsp;t)</code>&nbsp;</td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html#updateAppend-org.apache.hadoop.hbase.TableName-long-">updateAppend</a></span>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tn,
+            long&nbsp;t)</code>&nbsp;</td>
 </tr>
-<tr id="i5" class="rowColor">
+<tr id="i6" class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html#updateBulkLoad-long-">updateBulkLoad</a></span>(long&nbsp;millis)</code>&nbsp;</td>
 </tr>
-<tr id="i6" class="altColor">
+<tr id="i7" class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html#updateCheckAndDelete-long-">updateCheckAndDelete</a></span>(long&nbsp;t)</code>&nbsp;</td>
 </tr>
-<tr id="i7" class="rowColor">
+<tr id="i8" class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html#updateCheckAndPut-long-">updateCheckAndPut</a></span>(long&nbsp;t)</code>&nbsp;</td>
 </tr>
-<tr id="i8" class="altColor">
+<tr id="i9" class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html#updateCompaction-boolean-long-int-int-long-long-">updateCompaction</a></span>(boolean&nbsp;isMajor,
                 long&nbsp;t,
@@ -230,50 +251,58 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
                 long&nbsp;inputBytes,
                 long&nbsp;outputBytes)</code>&nbsp;</td>
 </tr>
-<tr id="i9" class="rowColor">
-<td class="colFirst"><code>void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html#updateDelete-long-">updateDelete</a></span>(long&nbsp;t)</code>&nbsp;</td>
-</tr>
 <tr id="i10" class="altColor">
 <td class="colFirst"><code>void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html#updateDeleteBatch-long-">updateDeleteBatch</a></span>(long&nbsp;t)</code>&nbsp;</td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html#updateDelete-org.apache.hadoop.hbase.TableName-long-">updateDelete</a></span>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tn,
+            long&nbsp;t)</code>&nbsp;</td>
 </tr>
 <tr id="i11" class="rowColor">
 <td class="colFirst"><code>void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html#updateFlush-long-long-long-">updateFlush</a></span>(long&nbsp;t,
-           long&nbsp;memstoreSize,
-           long&nbsp;fileSize)</code>&nbsp;</td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html#updateDeleteBatch-org.apache.hadoop.hbase.TableName-long-">updateDeleteBatch</a></span>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tn,
+                 long&nbsp;t)</code>&nbsp;</td>
 </tr>
 <tr id="i12" class="altColor">
 <td class="colFirst"><code>void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html#updateGet-long-">updateGet</a></span>(long&nbsp;t)</code>&nbsp;</td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html#updateFlush-long-long-long-">updateFlush</a></span>(long&nbsp;t,
+           long&nbsp;memstoreSize,
+           long&nbsp;fileSize)</code>&nbsp;</td>
 </tr>
 <tr id="i13" class="rowColor">
 <td class="colFirst"><code>void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html#updateIncrement-long-">updateIncrement</a></span>(long&nbsp;t)</code>&nbsp;</td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html#updateGet-org.apache.hadoop.hbase.TableName-long-">updateGet</a></span>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tn,
+         long&nbsp;t)</code>&nbsp;</td>
 </tr>
 <tr id="i14" class="altColor">
 <td class="colFirst"><code>void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html#updatePut-long-">updatePut</a></span>(long&nbsp;t)</code>&nbsp;</td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html#updateIncrement-org.apache.hadoop.hbase.TableName-long-">updateIncrement</a></span>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tn,
+               long&nbsp;t)</code>&nbsp;</td>
 </tr>
 <tr id="i15" class="rowColor">
 <td class="colFirst"><code>void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html#updatePutBatch-long-">updatePutBatch</a></span>(long&nbsp;t)</code>&nbsp;</td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html#updatePut-org.apache.hadoop.hbase.TableName-long-">updatePut</a></span>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tn,
+         long&nbsp;t)</code>&nbsp;</td>
 </tr>
 <tr id="i16" class="altColor">
 <td class="colFirst"><code>void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html#updateReplay-long-">updateReplay</a></span>(long&nbsp;t)</code>&nbsp;</td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html#updatePutBatch-org.apache.hadoop.hbase.TableName-long-">updatePutBatch</a></span>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tn,
+              long&nbsp;t)</code>&nbsp;</td>
 </tr>
 <tr id="i17" class="rowColor">
 <td class="colFirst"><code>void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html#updateScanSize-long-">updateScanSize</a></span>(long&nbsp;scanSize)</code>&nbsp;</td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html#updateReplay-long-">updateReplay</a></span>(long&nbsp;t)</code>&nbsp;</td>
 </tr>
 <tr id="i18" class="altColor">
 <td class="colFirst"><code>void</code></td>
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html#updateScanTime-long-">updateScanTime</a></span>(long&nbsp;t)</code>&nbsp;</td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html#updateScanSize-org.apache.hadoop.hbase.TableName-long-">updateScanSize</a></span>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tn,
+              long&nbsp;scanSize)</code>&nbsp;</td>
 </tr>
 <tr id="i19" class="rowColor">
 <td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html#updateScanTime-org.apache.hadoop.hbase.TableName-long-">updateScanTime</a></span>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tn,
+              long&nbsp;t)</code>&nbsp;</td>
+</tr>
+<tr id="i20" class="altColor">
+<td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html#updateSplitTime-long-">updateSplitTime</a></span>(long&nbsp;t)</code>&nbsp;</td>
 </tr>
 </table>
@@ -298,13 +327,39 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <!--   -->
 </a>
 <h3>Field Detail</h3>
+<a name="RS_ENABLE_TABLE_METRICS_KEY">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>RS_ENABLE_TABLE_METRICS_KEY</h4>
+<pre>public static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html#line.42">RS_ENABLE_TABLE_METRICS_KEY</a></pre>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../../constant-values.html#org.apache.hadoop.hbase.regionserver.MetricsRegionServer.RS_ENABLE_TABLE_METRICS_KEY">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+<a name="RS_ENABLE_TABLE_METRICS_DEFAULT">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>RS_ENABLE_TABLE_METRICS_DEFAULT</h4>
+<pre>public static final&nbsp;boolean <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html#line.44">RS_ENABLE_TABLE_METRICS_DEFAULT</a></pre>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../../constant-values.html#org.apache.hadoop.hbase.regionserver.MetricsRegionServer.RS_ENABLE_TABLE_METRICS_DEFAULT">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
 <a name="serverSource">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>serverSource</h4>
-<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerSource.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsRegionServerSource</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html#line.40">serverSource</a></pre>
+<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerSource.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsRegionServerSource</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html#line.46">serverSource</a></pre>
 </li>
 </ul>
 <a name="regionServerWrapper">
@@ -313,7 +368,16 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>regionServerWrapper</h4>
-<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapper.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsRegionServerWrapper</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html#line.41">regionServerWrapper</a></pre>
+<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapper.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsRegionServerWrapper</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html#line.47">regionServerWrapper</a></pre>
+</li>
+</ul>
+<a name="tableMetrics">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>tableMetrics</h4>
+<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionServerTableMetrics.html" title="class in org.apache.hadoop.hbase.regionserver">RegionServerTableMetrics</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html#line.48">tableMetrics</a></pre>
 </li>
 </ul>
 <a name="metricRegistry">
@@ -322,7 +386,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>metricRegistry</h4>
-<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/metrics/MetricRegistry.html" title="interface in org.apache.hadoop.hbase.metrics">MetricRegistry</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html#line.43">metricRegistry</a></pre>
+<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/metrics/MetricRegistry.html" title="interface in org.apache.hadoop.hbase.metrics">MetricRegistry</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html#line.50">metricRegistry</a></pre>
 </li>
 </ul>
 <a name="bulkLoadTimer">
@@ -331,7 +395,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockListLast">
 <li class="blockList">
 <h4>bulkLoadTimer</h4>
-<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/metrics/Timer.html" title="interface in org.apache.hadoop.hbase.metrics">Timer</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html#line.44">bulkLoadTimer</a></pre>
+<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/metrics/Timer.html" title="interface in org.apache.hadoop.hbase.metrics">Timer</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html#line.51">bulkLoadTimer</a></pre>
 </li>
 </ul>
 </li>
@@ -342,23 +406,25 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <!--   -->
 </a>
 <h3>Constructor Detail</h3>
-<a name="MetricsRegionServer-org.apache.hadoop.hbase.regionserver.MetricsRegionServerWrapper-">
+<a name="MetricsRegionServer-org.apache.hadoop.hbase.regionserver.MetricsRegionServerWrapper-org.apache.hadoop.conf.Configuration-">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>MetricsRegionServer</h4>
-<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html#line.46">MetricsRegionServer</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapper.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsRegionServerWrapper</a>&nbsp;regionServerWrapper)</pre>
+<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html#line.53">MetricsRegionServer</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapper.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsRegionServerWrapper</a>&nbsp;regionServerWrapper,
+                           org.apache.hadoop.conf.Configuration&nbsp;conf)</pre>
 </li>
 </ul>
-<a name="MetricsRegionServer-org.apache.hadoop.hbase.regionserver.MetricsRegionServerWrapper-org.apache.hadoop.hbase.regionserver.MetricsRegionServerSource-">
+<a name="MetricsRegionServer-org.apache.hadoop.hbase.regionserver.MetricsRegionServerWrapper-org.apache.hadoop.hbase.regionserver.MetricsRegionServerSource-org.apache.hadoop.hbase.regionserver.RegionServerTableMetrics-">
 <!--   -->
 </a>
 <ul class="blockListLast">
 <li class="blockList">
 <h4>MetricsRegionServer</h4>
-<pre><a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html#line.59">MetricsRegionServer</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapper.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsRegionServerWrapper</a>&nbsp;regionServerWrapper,
-                    <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerSource.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsRegionServerSource</a>&nbsp;serverSource)</pre>
+<pre><a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html#line.67">MetricsRegionServer</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapper.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsRegionServerWrapper</a>&nbsp;regionServerWrapper,
+                    <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerSource.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsRegionServerSource</a>&nbsp;serverSource,
+                    <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionServerTableMetrics.html" title="class in org.apache.hadoop.hbase.regionserver">RegionServerTableMetrics</a>&nbsp;tableMetrics)</pre>
 </li>
 </ul>
 </li>
@@ -369,13 +435,23 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <!--   -->
 </a>
 <h3>Method Detail</h3>
+<a name="createTableMetrics-org.apache.hadoop.conf.Configuration-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>createTableMetrics</h4>
+<pre>static&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionServerTableMetrics.html" title="class in org.apache.hadoop.hbase.regionserver">RegionServerTableMetrics</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html#line.78">createTableMetrics</a>(org.apache.hadoop.conf.Configuration&nbsp;conf)</pre>
+<div class="block">Creates an instance of <a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionServerTableMetrics.html" title="class in org.apache.hadoop.hbase.regionserver"><code>RegionServerTableMetrics</code></a> only if the feature is enabled.</div>
+</li>
+</ul>
 <a name="getMetricsSource--">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>getMetricsSource</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerSource.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsRegionServerSource</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html#line.66">getMetricsSource</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerSource.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsRegionServerSource</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html#line.86">getMetricsSource</a>()</pre>
 </li>
 </ul>
 <a name="getRegionServerWrapper--">
@@ -384,43 +460,47 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>getRegionServerWrapper</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapper.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsRegionServerWrapper</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html#line.70">getRegionServerWrapper</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapper.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsRegionServerWrapper</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html#line.90">getRegionServerWrapper</a>()</pre>
 </li>
 </ul>
-<a name="updatePutBatch-long-">
+<a name="updatePutBatch-org.apache.hadoop.hbase.TableName-long-">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>updatePutBatch</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html#line.74">updatePutBatch</a>(long&nbsp;t)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html#line.94">updatePutBatch</a>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tn,
+                           long&nbsp;t)</pre>
 </li>
 </ul>
-<a name="updatePut-long-">
+<a name="updatePut-org.apache.hadoop.hbase.TableName-long-">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>updatePut</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html#line.81">updatePut</a>(long&nbsp;t)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html#line.104">updatePut</a>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tn,
+                      long&nbsp;t)</pre>
 </li>
 </ul>
-<a name="updateDelete-long-">
+<a name="updateDelete-org.apache.hadoop.hbase.TableName-long-">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>updateDelete</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html#line.85">updateDelete</a>(long&nbsp;t)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html#line.111">updateDelete</a>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tn,
+                         long&nbsp;t)</pre>
 </li>
 </ul>
-<a name="updateDeleteBatch-long-">
+<a name="updateDeleteBatch-org.apache.hadoop.hbase.TableName-long-">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>updateDeleteBatch</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html#line.89">updateDeleteBatch</a>(long&nbsp;t)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html#line.118">updateDeleteBatch</a>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tn,
+                              long&nbsp;t)</pre>
 </li>
 </ul>
 <a name="updateCheckAndDelete-long-">
@@ -429,7 +509,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>updateCheckAndDelete</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html#line.96">updateCheckAndDelete</a>(long&nbsp;t)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html#line.128">updateCheckAndDelete</a>(long&nbsp;t)</pre>
 </li>
 </ul>
 <a name="updateCheckAndPut-long-">
@@ -438,34 +518,37 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>updateCheckAndPut</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html#line.100">updateCheckAndPut</a>(long&nbsp;t)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html#line.132">updateCheckAndPut</a>(long&nbsp;t)</pre>
 </li>
 </ul>
-<a name="updateGet-long-">
+<a name="updateGet-org.apache.hadoop.hbase.TableName-long-">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>updateGet</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html#line.104">updateGet</a>(long&nbsp;t)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html#line.136">updateGet</a>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tn,
+                      long&nbsp;t)</pre>
 </li>
 </ul>
-<a name="updateIncrement-long-">
+<a name="updateIncrement-org.apache.hadoop.hbase.TableName-long-">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>updateIncrement</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html#line.111">updateIncrement</a>(long&nbsp;t)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html#line.146">updateIncrement</a>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tn,
+                            long&nbsp;t)</pre>
 </li>
 </ul>
-<a name="updateAppend-long-">
+<a name="updateAppend-org.apache.hadoop.hbase.TableName-long-">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>updateAppend</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html#line.118">updateAppend</a>(long&nbsp;t)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html#line.156">updateAppend</a>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tn,
+                         long&nbsp;t)</pre>
 </li>
 </ul>
 <a name="updateReplay-long-">
@@ -474,25 +557,27 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>updateReplay</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html#line.125">updateReplay</a>(long&nbsp;t)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html#line.166">updateReplay</a>(long&nbsp;t)</pre>
 </li>
 </ul>
-<a name="updateScanSize-long-">
+<a name="updateScanSize-org.apache.hadoop.hbase.TableName-long-">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>updateScanSize</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html#line.129">updateScanSize</a>(long&nbsp;scanSize)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html#line.170">updateScanSize</a>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tn,
+                           long&nbsp;scanSize)</pre>
 </li>
 </ul>
-<a name="updateScanTime-long-">
+<a name="updateScanTime-org.apache.hadoop.hbase.TableName-long-">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>updateScanTime</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html#line.133">updateScanTime</a>(long&nbsp;t)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html#line.177">updateScanTime</a>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;tn,
+                           long&nbsp;t)</pre>
 </li>
 </ul>
 <a name="updateSplitTime-long-">
@@ -501,7 +586,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>updateSplitTime</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html#line.137">updateSplitTime</a>(long&nbsp;t)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html#line.184">updateSplitTime</a>(long&nbsp;t)</pre>
 </li>
 </ul>
 <a name="incrSplitRequest--">
@@ -510,7 +595,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>incrSplitRequest</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html#line.141">incrSplitRequest</a>()</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html#line.188">incrSplitRequest</a>()</pre>
 </li>
 </ul>
 <a name="incrSplitSuccess--">
@@ -519,7 +604,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>incrSplitSuccess</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html#line.145">incrSplitSuccess</a>()</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html#line.192">incrSplitSuccess</a>()</pre>
 </li>
 </ul>
 <a name="updateFlush-long-long-long-">
@@ -528,7 +613,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>updateFlush</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html#line.149">updateFlush</a>(long&nbsp;t,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html#line.196">updateFlush</a>(long&nbsp;t,
                         long&nbsp;memstoreSize,
                         long&nbsp;fileSize)</pre>
 </li>
@@ -539,7 +624,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>updateCompaction</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html#line.155">updateCompaction</a>(boolean&nbsp;isMajor,
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html#line.202">updateCompaction</a>(boolean&nbsp;isMajor,
                              long&nbsp;t,
                              int&nbsp;inputFileCount,
                              int&nbsp;outputFileCount,
@@ -553,7 +638,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockListLast">
 <li class="blockList">
 <h4>updateBulkLoad</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html#line.164">updateBulkLoad</a>(long&nbsp;millis)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html#line.211">updateBulkLoad</a>(long&nbsp;millis)</pre>
 </li>
 </ul>
 </li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/29b27596/devapidocs/org/apache/hadoop/hbase/regionserver/MetricsTableAggregateSourceImpl.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/regionserver/MetricsTableAggregateSourceImpl.html b/devapidocs/org/apache/hadoop/hbase/regionserver/MetricsTableAggregateSourceImpl.html
index c8dbc96..67563e1 100644
--- a/devapidocs/org/apache/hadoop/hbase/regionserver/MetricsTableAggregateSourceImpl.html
+++ b/devapidocs/org/apache/hadoop/hbase/regionserver/MetricsTableAggregateSourceImpl.html
@@ -50,7 +50,7 @@ var activeTableTab = "activeTableTab";
 <div class="subNav">
 <ul class="navList">
 <li><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableAggregateSource.html" title="interface in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
-<li><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableSource.html" title="interface in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableLatencies.html" title="interface in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
 </ul>
 <ul class="navList">
 <li><a href="../../../../../index.html?org/apache/hadoop/hbase/regionserver/MetricsTableAggregateSourceImpl.html" target="_top">Frames</a></li>
@@ -405,7 +405,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsT
 <div class="subNav">
 <ul class="navList">
 <li><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableAggregateSource.html" title="interface in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
-<li><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableSource.html" title="interface in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableLatencies.html" title="interface in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
 </ul>
 <ul class="navList">
 <li><a href="../../../../../index.html?org/apache/hadoop/hbase/regionserver/MetricsTableAggregateSourceImpl.html" target="_top">Frames</a></li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/29b27596/devapidocs/org/apache/hadoop/hbase/regionserver/MetricsTableLatencies.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/regionserver/MetricsTableLatencies.html b/devapidocs/org/apache/hadoop/hbase/regionserver/MetricsTableLatencies.html
new file mode 100644
index 0000000..7407f7b
--- /dev/null
+++ b/devapidocs/org/apache/hadoop/hbase/regionserver/MetricsTableLatencies.html
@@ -0,0 +1,677 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>MetricsTableLatencies (Apache HBase 3.0.0-SNAPSHOT API)</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="MetricsTableLatencies (Apache HBase 3.0.0-SNAPSHOT API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":6,"i5":6,"i6":6,"i7":6,"i8":6};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/MetricsTableLatencies.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableAggregateSourceImpl.html" title="class in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableLatenciesImpl.html" title="class in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/hadoop/hbase/regionserver/MetricsTableLatencies.html" target="_top">Frames</a></li>
+<li><a href="MetricsTableLatencies.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.hadoop.hbase.regionserver</div>
+<h2 title="Interface MetricsTableLatencies" class="title">Interface MetricsTableLatencies</h2>
+</div>
+<div class="contentContainer">
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<dl>
+<dt>All Known Implementing Classes:</dt>
+<dd><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableLatenciesImpl.html" title="class in org.apache.hadoop.hbase.regionserver">MetricsTableLatenciesImpl</a></dd>
+</dl>
+<hr>
+<br>
+<pre>public interface <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsTableLatencies.html#line.22">MetricsTableLatencies</a></pre>
+<div class="block">Latency metrics for a specific table in a RegionServer.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== FIELD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field.summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Field Summary table, listing fields, and an explanation">
+<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Field and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableLatencies.html#APPEND_TIME">APPEND_TIME</a></span></code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableLatencies.html#DELETE_BATCH_TIME">DELETE_BATCH_TIME</a></span></code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableLatencies.html#DELETE_TIME">DELETE_TIME</a></span></code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableLatencies.html#GET_TIME">GET_TIME</a></span></code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableLatencies.html#INCREMENT_TIME">INCREMENT_TIME</a></span></code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableLatencies.html#METRICS_CONTEXT">METRICS_CONTEXT</a></span></code>
+<div class="block">The name of the metrics context that metrics will be under.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableLatencies.html#METRICS_DESCRIPTION">METRICS_DESCRIPTION</a></span></code>
+<div class="block">Description</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableLatencies.html#METRICS_JMX_CONTEXT">METRICS_JMX_CONTEXT</a></span></code>
+<div class="block">The name of the metrics context that metrics will be under in jmx</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableLatencies.html#METRICS_NAME">METRICS_NAME</a></span></code>
+<div class="block">The name of the metrics</div>
+</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableLatencies.html#PUT_BATCH_TIME">PUT_BATCH_TIME</a></span></code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableLatencies.html#PUT_TIME">PUT_TIME</a></span></code>&nbsp;</td>
+</tr>
+<tr class="rowColor">
+<td class="colFirst"><code>static <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableLatencies.html#SCAN_SIZE">SCAN_SIZE</a></span></code>&nbsp;</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>static <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableLatencies.html#SCAN_TIME">SCAN_TIME</a></span></code>&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableLatencies.html#updateAppend-java.lang.String-long-">updateAppend</a></span>(<a href="http://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,
+            long&nbsp;t)</code>
+<div class="block">Update the Append time histogram.</div>
+</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableLatencies.html#updateDelete-java.lang.String-long-">updateDelete</a></span>(<a href="http://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,
+            long&nbsp;t)</code>
+<div class="block">Update the Delete time histogram</div>
+</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableLatencies.html#updateDeleteBatch-java.lang.String-long-">updateDeleteBatch</a></span>(<a href="http://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,
+                 long&nbsp;t)</code>
+<div class="block">Update the batch Delete time histogram</div>
+</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableLatencies.html#updateGet-java.lang.String-long-">updateGet</a></span>(<a href="http://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,
+         long&nbsp;t)</code>
+<div class="block">Update the Get time histogram .</div>
+</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableLatencies.html#updateIncrement-java.lang.String-long-">updateIncrement</a></span>(<a href="http://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,
+               long&nbsp;t)</code>
+<div class="block">Update the Increment time histogram.</div>
+</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableLatencies.html#updatePut-java.lang.String-long-">updatePut</a></span>(<a href="http://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,
+         long&nbsp;t)</code>
+<div class="block">Update the Put time histogram</div>
+</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableLatencies.html#updatePutBatch-java.lang.String-long-">updatePutBatch</a></span>(<a href="http://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,
+              long&nbsp;t)</code>
+<div class="block">Update the batch Put time histogram</div>
+</td>
+</tr>
+<tr id="i7" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableLatencies.html#updateScanSize-java.lang.String-long-">updateScanSize</a></span>(<a href="http://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,
+              long&nbsp;scanSize)</code>
+<div class="block">Update the scan size.</div>
+</td>
+</tr>
+<tr id="i8" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableLatencies.html#updateScanTime-java.lang.String-long-">updateScanTime</a></span>(<a href="http://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,
+              long&nbsp;t)</code>
+<div class="block">Update the scan time.</div>
+</td>
+</tr>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ FIELD DETAIL =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field.detail">
+<!--   -->
+</a>
+<h3>Field Detail</h3>
+<a name="METRICS_NAME">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>METRICS_NAME</h4>
+<pre>static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsTableLatencies.html#line.27">METRICS_NAME</a></pre>
+<div class="block">The name of the metrics</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../../constant-values.html#org.apache.hadoop.hbase.regionserver.MetricsTableLatencies.METRICS_NAME">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+<a name="METRICS_CONTEXT">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>METRICS_CONTEXT</h4>
+<pre>static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsTableLatencies.html#line.32">METRICS_CONTEXT</a></pre>
+<div class="block">The name of the metrics context that metrics will be under.</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../../constant-values.html#org.apache.hadoop.hbase.regionserver.MetricsTableLatencies.METRICS_CONTEXT">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+<a name="METRICS_DESCRIPTION">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>METRICS_DESCRIPTION</h4>
+<pre>static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsTableLatencies.html#line.37">METRICS_DESCRIPTION</a></pre>
+<div class="block">Description</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../../constant-values.html#org.apache.hadoop.hbase.regionserver.MetricsTableLatencies.METRICS_DESCRIPTION">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+<a name="METRICS_JMX_CONTEXT">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>METRICS_JMX_CONTEXT</h4>
+<pre>static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsTableLatencies.html#line.42">METRICS_JMX_CONTEXT</a></pre>
+<div class="block">The name of the metrics context that metrics will be under in jmx</div>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../../constant-values.html#org.apache.hadoop.hbase.regionserver.MetricsTableLatencies.METRICS_JMX_CONTEXT">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+<a name="GET_TIME">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>GET_TIME</h4>
+<pre>static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsTableLatencies.html#line.44">GET_TIME</a></pre>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../../constant-values.html#org.apache.hadoop.hbase.regionserver.MetricsTableLatencies.GET_TIME">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+<a name="SCAN_TIME">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>SCAN_TIME</h4>
+<pre>static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsTableLatencies.html#line.45">SCAN_TIME</a></pre>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../../constant-values.html#org.apache.hadoop.hbase.regionserver.MetricsTableLatencies.SCAN_TIME">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+<a name="SCAN_SIZE">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>SCAN_SIZE</h4>
+<pre>static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsTableLatencies.html#line.46">SCAN_SIZE</a></pre>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../../constant-values.html#org.apache.hadoop.hbase.regionserver.MetricsTableLatencies.SCAN_SIZE">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+<a name="PUT_TIME">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>PUT_TIME</h4>
+<pre>static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsTableLatencies.html#line.47">PUT_TIME</a></pre>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../../constant-values.html#org.apache.hadoop.hbase.regionserver.MetricsTableLatencies.PUT_TIME">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+<a name="PUT_BATCH_TIME">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>PUT_BATCH_TIME</h4>
+<pre>static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsTableLatencies.html#line.48">PUT_BATCH_TIME</a></pre>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../../constant-values.html#org.apache.hadoop.hbase.regionserver.MetricsTableLatencies.PUT_BATCH_TIME">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+<a name="DELETE_TIME">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>DELETE_TIME</h4>
+<pre>static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsTableLatencies.html#line.49">DELETE_TIME</a></pre>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../../constant-values.html#org.apache.hadoop.hbase.regionserver.MetricsTableLatencies.DELETE_TIME">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+<a name="DELETE_BATCH_TIME">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>DELETE_BATCH_TIME</h4>
+<pre>static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsTableLatencies.html#line.50">DELETE_BATCH_TIME</a></pre>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../../constant-values.html#org.apache.hadoop.hbase.regionserver.MetricsTableLatencies.DELETE_BATCH_TIME">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+<a name="INCREMENT_TIME">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>INCREMENT_TIME</h4>
+<pre>static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsTableLatencies.html#line.51">INCREMENT_TIME</a></pre>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../../constant-values.html#org.apache.hadoop.hbase.regionserver.MetricsTableLatencies.INCREMENT_TIME">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+<a name="APPEND_TIME">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>APPEND_TIME</h4>
+<pre>static final&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsTableLatencies.html#line.52">APPEND_TIME</a></pre>
+<dl>
+<dt><span class="seeLabel">See Also:</span></dt>
+<dd><a href="../../../../../constant-values.html#org.apache.hadoop.hbase.regionserver.MetricsTableLatencies.APPEND_TIME">Constant Field Values</a></dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="updatePut-java.lang.String-long-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>updatePut</h4>
+<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsTableLatencies.html#line.60">updatePut</a>(<a href="http://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,
+               long&nbsp;t)</pre>
+<div class="block">Update the Put time histogram</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>tableName</code> - The table the metric is for</dd>
+<dd><code>t</code> - time it took</dd>
+</dl>
+</li>
+</ul>
+<a name="updatePutBatch-java.lang.String-long-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>updatePutBatch</h4>
+<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsTableLatencies.html#line.68">updatePutBatch</a>(<a href="http://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,
+                    long&nbsp;t)</pre>
+<div class="block">Update the batch Put time histogram</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>tableName</code> - The table the metric is for</dd>
+<dd><code>t</code> - time it took</dd>
+</dl>
+</li>
+</ul>
+<a name="updateDelete-java.lang.String-long-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>updateDelete</h4>
+<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsTableLatencies.html#line.76">updateDelete</a>(<a href="http://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,
+                  long&nbsp;t)</pre>
+<div class="block">Update the Delete time histogram</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>tableName</code> - The table the metric is for</dd>
+<dd><code>t</code> - time it took</dd>
+</dl>
+</li>
+</ul>
+<a name="updateDeleteBatch-java.lang.String-long-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>updateDeleteBatch</h4>
+<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsTableLatencies.html#line.84">updateDeleteBatch</a>(<a href="http://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,
+                       long&nbsp;t)</pre>
+<div class="block">Update the batch Delete time histogram</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>tableName</code> - The table the metric is for</dd>
+<dd><code>t</code> - time it took</dd>
+</dl>
+</li>
+</ul>
+<a name="updateGet-java.lang.String-long-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>updateGet</h4>
+<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsTableLatencies.html#line.92">updateGet</a>(<a href="http://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,
+               long&nbsp;t)</pre>
+<div class="block">Update the Get time histogram .</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>tableName</code> - The table the metric is for</dd>
+<dd><code>t</code> - time it took</dd>
+</dl>
+</li>
+</ul>
+<a name="updateIncrement-java.lang.String-long-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>updateIncrement</h4>
+<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsTableLatencies.html#line.100">updateIncrement</a>(<a href="http://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,
+                     long&nbsp;t)</pre>
+<div class="block">Update the Increment time histogram.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>tableName</code> - The table the metric is for</dd>
+<dd><code>t</code> - time it took</dd>
+</dl>
+</li>
+</ul>
+<a name="updateAppend-java.lang.String-long-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>updateAppend</h4>
+<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsTableLatencies.html#line.108">updateAppend</a>(<a href="http://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,
+                  long&nbsp;t)</pre>
+<div class="block">Update the Append time histogram.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>tableName</code> - The table the metric is for</dd>
+<dd><code>t</code> - time it took</dd>
+</dl>
+</li>
+</ul>
+<a name="updateScanSize-java.lang.String-long-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>updateScanSize</h4>
+<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsTableLatencies.html#line.116">updateScanSize</a>(<a href="http://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,
+                    long&nbsp;scanSize)</pre>
+<div class="block">Update the scan size.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>tableName</code> - The table the metric is for</dd>
+<dd><code>scanSize</code> - size of the scan</dd>
+</dl>
+</li>
+</ul>
+<a name="updateScanTime-java.lang.String-long-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>updateScanTime</h4>
+<pre>void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/MetricsTableLatencies.html#line.124">updateScanTime</a>(<a href="http://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,
+                    long&nbsp;t)</pre>
+<div class="block">Update the scan time.</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>tableName</code> - The table the metric is for</dd>
+<dd><code>t</code> - time it took</dd>
+</dl>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/MetricsTableLatencies.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableAggregateSourceImpl.html" title="class in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableLatenciesImpl.html" title="class in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/hadoop/hbase/regionserver/MetricsTableLatencies.html" target="_top">Frames</a></li>
+<li><a href="MetricsTableLatencies.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li>Constr&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2007&#x2013;2017 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>


[21/32] hbase-site git commit: Published site at .

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/29b27596/devapidocs/org/apache/hadoop/hbase/regionserver/compactions/DateTieredCompactionRequest.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/regionserver/compactions/DateTieredCompactionRequest.html b/devapidocs/org/apache/hadoop/hbase/regionserver/compactions/DateTieredCompactionRequest.html
index c6a2853..e037f56 100644
--- a/devapidocs/org/apache/hadoop/hbase/regionserver/compactions/DateTieredCompactionRequest.html
+++ b/devapidocs/org/apache/hadoop/hbase/regionserver/compactions/DateTieredCompactionRequest.html
@@ -189,14 +189,14 @@ extends <a href="../../../../../../org/apache/hadoop/hbase/regionserver/compacti
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;org.apache.hadoop.hbase.regionserver.compactions.<a href="../../../../../../org/apache/hadoop/hbase/regionserver/compactions/CompactionRequestImpl.html" title="class in org.apache.hadoop.hbase.regionserver.compactions">CompactionRequestImpl</a></h3>
-<code><a href="../../../../../../org/apache/hadoop/hbase/regionserver/compactions/CompactionRequestImpl.html#getFiles--">getFiles</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/compactions/CompactionRequestImpl.html#getPriority--">getPriority</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/compactions/CompactionRequestImpl.html#getSelectionTime--">getSelectionTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/compactions/CompactionRequestImpl.html#getSize--">getSize</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/compactions/CompactionRequestImpl.html#getTracker--">getTracker</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/compactions/CompactionRequestImpl.html#isAllFiles--">isAllFiles</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/compactions/CompactionRequestImpl.html#isMajor--">isMajor</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserve
 r/compactions/CompactionRequestImpl.html#isOffPeak--">isOffPeak</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/compactions/CompactionRequestImpl.html#setDescription-java.lang.String-java.lang.String-">setDescription</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/compactions/CompactionRequestImpl.html#setIsMajor-boolean-boolean-">setIsMajor</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/compactions/CompactionRequestImpl.html#setOffPeak-boolean-">setOffPeak</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/compactions/CompactionRequestImpl.html#setPriority-int-">setPriority</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/compactions/CompactionRequestImpl.html#setTracker-org.apache.hadoop.hbase.regionserver.compactions.CompactionLifeCycleTracker-">setTracker</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/compactions/CompactionRequestImpl.html#updateFiles-java.
 util.Collection-">updateFiles</a></code></li>
+<code><a href="../../../../../../org/apache/hadoop/hbase/regionserver/compactions/CompactionRequestImpl.html#equals-java.lang.Object-">equals</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/compactions/CompactionRequestImpl.html#getFiles--">getFiles</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/compactions/CompactionRequestImpl.html#getPriority--">getPriority</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/compactions/CompactionRequestImpl.html#getSelectionTime--">getSelectionTime</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/compactions/CompactionRequestImpl.html#getSize--">getSize</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/compactions/CompactionRequestImpl.html#getTracker--">getTracker</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/compactions/CompactionRequestImpl.html#hashCode--">hashCode</a>, <a href="../../../../../../org/apache/hadoop/hbase/r
 egionserver/compactions/CompactionRequestImpl.html#isAllFiles--">isAllFiles</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/compactions/CompactionRequestImpl.html#isMajor--">isMajor</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/compactions/CompactionRequestImpl.html#isOffPeak--">isOffPeak</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/compactions/CompactionRequestImpl.html#setDescription-java.lang.String-java.lang.String-">setDescription</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/compactions/CompactionRequestImpl.html#setIsMajor-boolean-boolean-">setIsMajor</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/compactions/CompactionRequestImpl.html#setOffPeak-boolean-">setOffPeak</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/compactions/CompactionRequestImpl.html#setPriority-int-">setPriority</a>, <a href="../../../../../../org/apache/hadoop/hbase/regions
 erver/compactions/CompactionRequestImpl.html#setTracker-org.apache.hadoop.hbase.regionserver.compactions.CompactionLifeCycleTracker-">setTracker</a>, <a href="../../../../../../org/apache/hadoop/hbase/regionserver/compactions/CompactionRequestImpl.html#updateFiles-java.util.Collection-">updateFiles</a></code></li>
 </ul>
 <ul class="blockList">
 <li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
-<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang
 /Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-ex
 ternal=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/29b27596/devapidocs/org/apache/hadoop/hbase/regionserver/package-frame.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/regionserver/package-frame.html b/devapidocs/org/apache/hadoop/hbase/regionserver/package-frame.html
index 64781e2..8b881ec 100644
--- a/devapidocs/org/apache/hadoop/hbase/regionserver/package-frame.html
+++ b/devapidocs/org/apache/hadoop/hbase/regionserver/package-frame.html
@@ -42,6 +42,7 @@
 <li><a href="MetricsRegionSource.html" title="interface in org.apache.hadoop.hbase.regionserver" target="classFrame"><span class="interfaceName">MetricsRegionSource</span></a></li>
 <li><a href="MetricsRegionWrapper.html" title="interface in org.apache.hadoop.hbase.regionserver" target="classFrame"><span class="interfaceName">MetricsRegionWrapper</span></a></li>
 <li><a href="MetricsTableAggregateSource.html" title="interface in org.apache.hadoop.hbase.regionserver" target="classFrame"><span class="interfaceName">MetricsTableAggregateSource</span></a></li>
+<li><a href="MetricsTableLatencies.html" title="interface in org.apache.hadoop.hbase.regionserver" target="classFrame"><span class="interfaceName">MetricsTableLatencies</span></a></li>
 <li><a href="MetricsTableSource.html" title="interface in org.apache.hadoop.hbase.regionserver" target="classFrame"><span class="interfaceName">MetricsTableSource</span></a></li>
 <li><a href="MetricsTableWrapperAggregate.html" title="interface in org.apache.hadoop.hbase.regionserver" target="classFrame"><span class="interfaceName">MetricsTableWrapperAggregate</span></a></li>
 <li><a href="MutableOnlineRegions.html" title="interface in org.apache.hadoop.hbase.regionserver" target="classFrame"><span class="interfaceName">MutableOnlineRegions</span></a></li>
@@ -175,6 +176,8 @@
 <li><a href="MetricsRegionWrapperImpl.html" title="class in org.apache.hadoop.hbase.regionserver" target="classFrame">MetricsRegionWrapperImpl</a></li>
 <li><a href="MetricsTable.html" title="class in org.apache.hadoop.hbase.regionserver" target="classFrame">MetricsTable</a></li>
 <li><a href="MetricsTableAggregateSourceImpl.html" title="class in org.apache.hadoop.hbase.regionserver" target="classFrame">MetricsTableAggregateSourceImpl</a></li>
+<li><a href="MetricsTableLatenciesImpl.html" title="class in org.apache.hadoop.hbase.regionserver" target="classFrame">MetricsTableLatenciesImpl</a></li>
+<li><a href="MetricsTableLatenciesImpl.TableHistograms.html" title="class in org.apache.hadoop.hbase.regionserver" target="classFrame">MetricsTableLatenciesImpl.TableHistograms</a></li>
 <li><a href="MetricsTableSourceImpl.html" title="class in org.apache.hadoop.hbase.regionserver" target="classFrame">MetricsTableSourceImpl</a></li>
 <li><a href="MetricsTableWrapperAggregateImpl.html" title="class in org.apache.hadoop.hbase.regionserver" target="classFrame">MetricsTableWrapperAggregateImpl</a></li>
 <li><a href="MetricsTableWrapperAggregateImpl.MetricsTableValues.html" title="class in org.apache.hadoop.hbase.regionserver" target="classFrame">MetricsTableWrapperAggregateImpl.MetricsTableValues</a></li>
@@ -202,6 +205,7 @@
 <li><a href="RegionServerCoprocessorHost.RegionServerEnvironmentForCoreCoprocessors.html" title="class in org.apache.hadoop.hbase.regionserver" target="classFrame">RegionServerCoprocessorHost.RegionServerEnvironmentForCoreCoprocessors</a></li>
 <li><a href="RegionServerServices.PostOpenDeployContext.html" title="class in org.apache.hadoop.hbase.regionserver" target="classFrame">RegionServerServices.PostOpenDeployContext</a></li>
 <li><a href="RegionServerServices.RegionStateTransitionContext.html" title="class in org.apache.hadoop.hbase.regionserver" target="classFrame">RegionServerServices.RegionStateTransitionContext</a></li>
+<li><a href="RegionServerTableMetrics.html" title="class in org.apache.hadoop.hbase.regionserver" target="classFrame">RegionServerTableMetrics</a></li>
 <li><a href="RegionServicesForStores.html" title="class in org.apache.hadoop.hbase.regionserver" target="classFrame">RegionServicesForStores</a></li>
 <li><a href="RegionSplitPolicy.html" title="class in org.apache.hadoop.hbase.regionserver" target="classFrame">RegionSplitPolicy</a></li>
 <li><a href="ReversedKeyValueHeap.html" title="class in org.apache.hadoop.hbase.regionserver" target="classFrame">ReversedKeyValueHeap</a></li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/29b27596/devapidocs/org/apache/hadoop/hbase/regionserver/package-summary.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/regionserver/package-summary.html b/devapidocs/org/apache/hadoop/hbase/regionserver/package-summary.html
index ba37a58..c38910f 100644
--- a/devapidocs/org/apache/hadoop/hbase/regionserver/package-summary.html
+++ b/devapidocs/org/apache/hadoop/hbase/regionserver/package-summary.html
@@ -260,149 +260,155 @@
 </td>
 </tr>
 <tr class="rowColor">
+<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableLatencies.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsTableLatencies</a></td>
+<td class="colLast">
+<div class="block">Latency metrics for a specific table in a RegionServer.</div>
+</td>
+</tr>
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableSource.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsTableSource</a></td>
 <td class="colLast">
 <div class="block">This interface will be implemented to allow region server to push table metrics into
  MetricsRegionAggregateSource that will in turn push data to the Hadoop metrics system.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregate.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsTableWrapperAggregate</a></td>
 <td class="colLast">
 <div class="block">Interface of class that will wrap a MetricsTableSource and export numbers so they can be
  used in MetricsTableSource</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MutableOnlineRegions.html" title="interface in org.apache.hadoop.hbase.regionserver">MutableOnlineRegions</a></td>
 <td class="colLast">
 <div class="block">Interface to Map of online regions.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/regionserver/OnlineRegions.html" title="interface in org.apache.hadoop.hbase.regionserver">OnlineRegions</a></td>
 <td class="colLast">
 <div class="block">Provides read-only access to the Regions presently online on the
  current RegionServer</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/regionserver/Region.html" title="interface in org.apache.hadoop.hbase.regionserver">Region</a></td>
 <td class="colLast">
 <div class="block">Region is a subset of HRegion with operations required for the <a href="../../../../../org/apache/hadoop/hbase/coprocessor/RegionCoprocessor.html" title="interface in org.apache.hadoop.hbase.coprocessor"><code>Coprocessors</code></a>.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/regionserver/Region.RowLock.html" title="interface in org.apache.hadoop.hbase.regionserver">Region.RowLock</a></td>
 <td class="colLast">
 <div class="block">Row lock held by a given thread.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionScanner.html" title="interface in org.apache.hadoop.hbase.regionserver">RegionScanner</a></td>
 <td class="colLast">
 <div class="block">RegionScanner describes iterators over rows in an HRegion.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionServerServices.html" title="interface in org.apache.hadoop.hbase.regionserver">RegionServerServices</a></td>
 <td class="colLast">
 <div class="block">A curated subset of services provided by <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html" title="class in org.apache.hadoop.hbase.regionserver"><code>HRegionServer</code></a>.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/regionserver/ReplicationService.html" title="interface in org.apache.hadoop.hbase.regionserver">ReplicationService</a></td>
 <td class="colLast">
 <div class="block">Gateway to Cluster Replication.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/regionserver/ReplicationSinkService.html" title="interface in org.apache.hadoop.hbase.regionserver">ReplicationSinkService</a></td>
 <td class="colLast">
 <div class="block">A sink for a replication stream has to expose this service.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/regionserver/ReplicationSourceService.html" title="interface in org.apache.hadoop.hbase.regionserver">ReplicationSourceService</a></td>
 <td class="colLast">
 <div class="block">A source for a replication stream has to expose this service.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/regionserver/RowProcessor.html" title="interface in org.apache.hadoop.hbase.regionserver">RowProcessor</a>&lt;S extends com.google.protobuf.Message,T extends com.google.protobuf.Message&gt;</td>
 <td class="colLast">Deprecated
 <div class="block"><span class="deprecationComment">As of release 2.0.0, this will be removed in HBase 3.0.0.</span></div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/regionserver/RpcSchedulerFactory.html" title="interface in org.apache.hadoop.hbase.regionserver">RpcSchedulerFactory</a></td>
 <td class="colLast">
 <div class="block">A factory class that constructs an <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcScheduler.html" title="class in org.apache.hadoop.hbase.ipc"><code>RpcScheduler</code></a>.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/regionserver/RSRpcServices.LogDelegate.html" title="interface in org.apache.hadoop.hbase.regionserver">RSRpcServices.LogDelegate</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/regionserver/ScanOptions.html" title="interface in org.apache.hadoop.hbase.regionserver">ScanOptions</a></td>
 <td class="colLast">
 <div class="block">This class gives you the ability to change the max versions and TTL options before opening a
  scanner for a Store.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/regionserver/SequenceId.html" title="interface in org.apache.hadoop.hbase.regionserver">SequenceId</a></td>
 <td class="colLast">
 <div class="block">Interface which abstracts implementations on log sequenceId assignment</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/regionserver/Shipper.html" title="interface in org.apache.hadoop.hbase.regionserver">Shipper</a></td>
 <td class="colLast">
 <div class="block">This interface denotes a scanner as one which can ship cells.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/regionserver/ShipperListener.html" title="interface in org.apache.hadoop.hbase.regionserver">ShipperListener</a></td>
 <td class="colLast">
 <div class="block">Implementors of this interface are the ones who needs to do some action when the
  <a href="../../../../../org/apache/hadoop/hbase/regionserver/Shipper.html#shipped--"><code>Shipper.shipped()</code></a> is called</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/regionserver/SplitLogWorker.TaskExecutor.html" title="interface in org.apache.hadoop.hbase.regionserver">SplitLogWorker.TaskExecutor</a></td>
 <td class="colLast">
 <div class="block">Objects implementing this interface actually do the task that has been
  acquired by a <a href="../../../../../org/apache/hadoop/hbase/regionserver/SplitLogWorker.html" title="class in org.apache.hadoop.hbase.regionserver"><code>SplitLogWorker</code></a>.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/regionserver/Store.html" title="interface in org.apache.hadoop.hbase.regionserver">Store</a></td>
 <td class="colLast">
 <div class="block">Interface for objects that hold a column family in a Region.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreConfigInformation.html" title="interface in org.apache.hadoop.hbase.regionserver">StoreConfigInformation</a></td>
 <td class="colLast">
 <div class="block">A more restricted interface for HStore.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreFile.html" title="interface in org.apache.hadoop.hbase.regionserver">StoreFile</a></td>
 <td class="colLast">
 <div class="block">An interface to describe a store data file.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreFileManager.html" title="interface in org.apache.hadoop.hbase.regionserver">StoreFileManager</a></td>
 <td class="colLast">
 <div class="block">Manages the store files and basic metadata about that that determines the logical structure
  (e.g.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreFlushContext.html" title="interface in org.apache.hadoop.hbase.regionserver">StoreFlushContext</a></td>
 <td class="colLast">
 <div class="block">A package protected interface for a store flushing.</div>
@@ -1072,6 +1078,17 @@
 <td class="colLast">&nbsp;</td>
 </tr>
 <tr class="rowColor">
+<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableLatenciesImpl.html" title="class in org.apache.hadoop.hbase.regionserver">MetricsTableLatenciesImpl</a></td>
+<td class="colLast">
+<div class="block">Implementation of <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableLatencies.html" title="interface in org.apache.hadoop.hbase.regionserver"><code>MetricsTableLatencies</code></a> to track latencies for one table in a
+ RegionServer.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableLatenciesImpl.TableHistograms.html" title="class in org.apache.hadoop.hbase.regionserver">MetricsTableLatenciesImpl.TableHistograms</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableSourceImpl.html" title="class in org.apache.hadoop.hbase.regionserver">MetricsTableSourceImpl</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
@@ -1233,91 +1250,97 @@
 <td class="colLast">&nbsp;</td>
 </tr>
 <tr class="altColor">
+<td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionServerTableMetrics.html" title="class in org.apache.hadoop.hbase.regionserver">RegionServerTableMetrics</a></td>
+<td class="colLast">
+<div class="block">Captures operation metrics by table.</div>
+</td>
+</tr>
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionServicesForStores.html" title="class in org.apache.hadoop.hbase.regionserver">RegionServicesForStores</a></td>
 <td class="colLast">
 <div class="block">Services a Store needs from a Region.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSplitPolicy.html" title="class in org.apache.hadoop.hbase.regionserver">RegionSplitPolicy</a></td>
 <td class="colLast">
 <div class="block">A split policy determines when a region should be split.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/regionserver/ReversedKeyValueHeap.html" title="class in org.apache.hadoop.hbase.regionserver">ReversedKeyValueHeap</a></td>
 <td class="colLast">
 <div class="block">ReversedKeyValueHeap is used for supporting reversed scanning.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/regionserver/ReversedKeyValueHeap.ReversedKVScannerComparator.html" title="class in org.apache.hadoop.hbase.regionserver">ReversedKeyValueHeap.ReversedKVScannerComparator</a></td>
 <td class="colLast">
 <div class="block">In ReversedKVScannerComparator, we compare the row of scanners' peek values
  first, sort bigger one before the smaller one.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/regionserver/ReversedMobStoreScanner.html" title="class in org.apache.hadoop.hbase.regionserver">ReversedMobStoreScanner</a></td>
 <td class="colLast">
 <div class="block">ReversedMobStoreScanner extends from ReversedStoreScanner, and is used to support
  reversed scanning in both the memstore and the MOB store.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/regionserver/ReversedRegionScannerImpl.html" title="class in org.apache.hadoop.hbase.regionserver">ReversedRegionScannerImpl</a></td>
 <td class="colLast">
 <div class="block">ReversibleRegionScannerImpl extends from RegionScannerImpl, and is used to
  support reversed scanning.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/regionserver/ReversedStoreScanner.html" title="class in org.apache.hadoop.hbase.regionserver">ReversedStoreScanner</a></td>
 <td class="colLast">
 <div class="block">ReversedStoreScanner extends from StoreScanner, and is used to support
  reversed scanning.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/regionserver/RSDumpServlet.html" title="class in org.apache.hadoop.hbase.regionserver">RSDumpServlet</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/regionserver/RSRpcServices.html" title="class in org.apache.hadoop.hbase.regionserver">RSRpcServices</a></td>
 <td class="colLast">
 <div class="block">Implements the regionserver RPC services.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/regionserver/RSRpcServices.RegionScannerCloseCallBack.html" title="class in org.apache.hadoop.hbase.regionserver">RSRpcServices.RegionScannerCloseCallBack</a></td>
 <td class="colLast">
 <div class="block">An Rpc callback for closing a RegionScanner.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/regionserver/RSRpcServices.RegionScannerHolder.html" title="class in org.apache.hadoop.hbase.regionserver">RSRpcServices.RegionScannerHolder</a></td>
 <td class="colLast">
 <div class="block">Holder class which holds the RegionScanner, nextCallSeq and RpcCallbacks together.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/regionserver/RSRpcServices.RegionScannersCloseCallBack.html" title="class in org.apache.hadoop.hbase.regionserver">RSRpcServices.RegionScannersCloseCallBack</a></td>
 <td class="colLast">
 <div class="block">An RpcCallBack that creates a list of scanners that needs to perform callBack operation on
  completion of multiGets.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/regionserver/RSStatusServlet.html" title="class in org.apache.hadoop.hbase.regionserver">RSStatusServlet</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/regionserver/ScanInfo.html" title="class in org.apache.hadoop.hbase.regionserver">ScanInfo</a></td>
 <td class="colLast">
 <div class="block">Immutable information for scans over a store.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/regionserver/ScannerContext.html" title="class in org.apache.hadoop.hbase.regionserver">ScannerContext</a></td>
 <td class="colLast">
 <div class="block">ScannerContext instances encapsulate limit tracking AND progress towards those limits during
@@ -1325,276 +1348,276 @@
  <a href="../../../../../org/apache/hadoop/hbase/regionserver/InternalScanner.html#next-java.util.List-"><code>InternalScanner.next(java.util.List)</code></a>.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/regionserver/ScannerContext.Builder.html" title="class in org.apache.hadoop.hbase.regionserver">ScannerContext.Builder</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/regionserver/ScannerContext.LimitFields.html" title="class in org.apache.hadoop.hbase.regionserver">ScannerContext.LimitFields</a></td>
 <td class="colLast">
 <div class="block">The different fields that can be used as limits in calls to
  <a href="../../../../../org/apache/hadoop/hbase/regionserver/InternalScanner.html#next-java.util.List-"><code>InternalScanner.next(java.util.List)</code></a> and <a href="../../../../../org/apache/hadoop/hbase/regionserver/InternalScanner.html#next-java.util.List-"><code>InternalScanner.next(java.util.List)</code></a></div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/regionserver/ScannerIdGenerator.html" title="class in org.apache.hadoop.hbase.regionserver">ScannerIdGenerator</a></td>
 <td class="colLast">
 <div class="block">Generate a new style scanner id to prevent collision with previous started server or other RSs.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/regionserver/SecureBulkLoadManager.html" title="class in org.apache.hadoop.hbase.regionserver">SecureBulkLoadManager</a></td>
 <td class="colLast">
 <div class="block">Bulk loads in secure mode.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/regionserver/SecureBulkLoadManager.SecureBulkLoadListener.html" title="class in org.apache.hadoop.hbase.regionserver">SecureBulkLoadManager.SecureBulkLoadListener</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/regionserver/Segment.html" title="class in org.apache.hadoop.hbase.regionserver">Segment</a></td>
 <td class="colLast">
 <div class="block">This is an abstraction of a segment maintained in a memstore, e.g., the active
  cell set or its snapshot.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/regionserver/SegmentFactory.html" title="class in org.apache.hadoop.hbase.regionserver">SegmentFactory</a></td>
 <td class="colLast">
 <div class="block">A singleton store segment factory.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/regionserver/SegmentScanner.html" title="class in org.apache.hadoop.hbase.regionserver">SegmentScanner</a></td>
 <td class="colLast">
 <div class="block">A scanner of a single memstore segment.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/regionserver/ServerNonceManager.html" title="class in org.apache.hadoop.hbase.regionserver">ServerNonceManager</a></td>
 <td class="colLast">
 <div class="block">Implementation of nonce manager that stores nonces in a hash map and cleans them up after
  some time; if nonce group/client ID is supplied, nonces are stored by client ID.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/regionserver/ServerNonceManager.OperationContext.html" title="class in org.apache.hadoop.hbase.regionserver">ServerNonceManager.OperationContext</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/regionserver/ShutdownHook.html" title="class in org.apache.hadoop.hbase.regionserver">ShutdownHook</a></td>
 <td class="colLast">
 <div class="block">Manage regionserver shutdown hooks.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/regionserver/ShutdownHook.DoNothingStoppable.html" title="class in org.apache.hadoop.hbase.regionserver">ShutdownHook.DoNothingStoppable</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/regionserver/ShutdownHook.DoNothingThread.html" title="class in org.apache.hadoop.hbase.regionserver">ShutdownHook.DoNothingThread</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/regionserver/ShutdownHook.ShutdownHookThread.html" title="class in org.apache.hadoop.hbase.regionserver">ShutdownHook.ShutdownHookThread</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/regionserver/SimpleRpcSchedulerFactory.html" title="class in org.apache.hadoop.hbase.regionserver">SimpleRpcSchedulerFactory</a></td>
 <td class="colLast">
 <div class="block">Constructs a <a href="../../../../../org/apache/hadoop/hbase/ipc/SimpleRpcScheduler.html" title="class in org.apache.hadoop.hbase.ipc"><code>SimpleRpcScheduler</code></a>.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/regionserver/SplitLogWorker.html" title="class in org.apache.hadoop.hbase.regionserver">SplitLogWorker</a></td>
 <td class="colLast">
 <div class="block">This worker is spawned in every regionserver, including master.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/regionserver/SplitRequest.html" title="class in org.apache.hadoop.hbase.regionserver">SplitRequest</a></td>
 <td class="colLast">
 <div class="block">Handles processing region splits.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/regionserver/SteppingSplitPolicy.html" title="class in org.apache.hadoop.hbase.regionserver">SteppingSplitPolicy</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreEngine.html" title="class in org.apache.hadoop.hbase.regionserver">StoreEngine</a>&lt;SF extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreFlusher.html" title="class in org.apache.hadoop.hbase.regionserver">StoreFlusher</a>,CP extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/compactions/CompactionPolicy.html" title="class in org.apache.hadoop.hbase.regionserver.compactions">CompactionPolicy</a>,C extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/compactions/Compactor.html" title="class in org.apache.hadoop.hbase.regionserver.compactions">Compactor</a>,SFM extends <a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreFileManager.html" title="interface in org.apache.hadoop.hbase.regionserver">StoreFileManager</a>&gt;</td>
 <td class="colLast">
 <div class="block">StoreEngine is a factory that can create the objects necessary for HStore to operate.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreFileComparators.html" title="class in org.apache.hadoop.hbase.regionserver">StoreFileComparators</a></td>
 <td class="colLast">
 <div class="block">Useful comparators for comparing store files.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreFileComparators.GetBulkTime.html" title="class in org.apache.hadoop.hbase.regionserver">StoreFileComparators.GetBulkTime</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreFileComparators.GetFileSize.html" title="class in org.apache.hadoop.hbase.regionserver">StoreFileComparators.GetFileSize</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreFileComparators.GetMaxTimestamp.html" title="class in org.apache.hadoop.hbase.regionserver">StoreFileComparators.GetMaxTimestamp</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreFileComparators.GetPathName.html" title="class in org.apache.hadoop.hbase.regionserver">StoreFileComparators.GetPathName</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreFileComparators.GetSeqId.html" title="class in org.apache.hadoop.hbase.regionserver">StoreFileComparators.GetSeqId</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreFileInfo.html" title="class in org.apache.hadoop.hbase.regionserver">StoreFileInfo</a></td>
 <td class="colLast">
 <div class="block">Describe a StoreFile (hfile, reference, link)</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreFileReader.html" title="class in org.apache.hadoop.hbase.regionserver">StoreFileReader</a></td>
 <td class="colLast">
 <div class="block">Reader for a StoreFile.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/regionserver/StorefileRefresherChore.html" title="class in org.apache.hadoop.hbase.regionserver">StorefileRefresherChore</a></td>
 <td class="colLast">
 <div class="block">A chore for refreshing the store files for secondary regions hosted in the region server.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreFileScanner.html" title="class in org.apache.hadoop.hbase.regionserver">StoreFileScanner</a></td>
 <td class="colLast">
 <div class="block">KeyValueScanner adaptor over the Reader.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreFileWriter.html" title="class in org.apache.hadoop.hbase.regionserver">StoreFileWriter</a></td>
 <td class="colLast">
 <div class="block">A StoreFile writer.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreFileWriter.Builder.html" title="class in org.apache.hadoop.hbase.regionserver">StoreFileWriter.Builder</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreFlusher.html" title="class in org.apache.hadoop.hbase.regionserver">StoreFlusher</a></td>
 <td class="colLast">
 <div class="block">Store flusher interface.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreScanner.html" title="class in org.apache.hadoop.hbase.regionserver">StoreScanner</a></td>
 <td class="colLast">
 <div class="block">Scanner scans both the memstore and the Store.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/regionserver/StoreUtils.html" title="class in org.apache.hadoop.hbase.regionserver">StoreUtils</a></td>
 <td class="colLast">
 <div class="block">Utility functions for region server storage layer.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/regionserver/StripeMultiFileWriter.html" title="class in org.apache.hadoop.hbase.regionserver">StripeMultiFileWriter</a></td>
 <td class="colLast">
 <div class="block">Base class for cell sink that separates the provided cells into multiple files for stripe
  compaction.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/regionserver/StripeMultiFileWriter.BoundaryMultiWriter.html" title="class in org.apache.hadoop.hbase.regionserver">StripeMultiFileWriter.BoundaryMultiWriter</a></td>
 <td class="colLast">
 <div class="block">MultiWriter that separates the cells based on fixed row-key boundaries.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/regionserver/StripeMultiFileWriter.SizeMultiWriter.html" title="class in org.apache.hadoop.hbase.regionserver">StripeMultiFileWriter.SizeMultiWriter</a></td>
 <td class="colLast">
 <div class="block">MultiWriter that separates the cells based on target cell number per file and file count.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/regionserver/StripeStoreConfig.html" title="class in org.apache.hadoop.hbase.regionserver">StripeStoreConfig</a></td>
 <td class="colLast">
 <div class="block">Configuration class for stripe store and compactions.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/regionserver/StripeStoreEngine.html" title="class in org.apache.hadoop.hbase.regionserver">StripeStoreEngine</a></td>
 <td class="colLast">
 <div class="block">The storage engine that implements the stripe-based store/compaction scheme.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/regionserver/StripeStoreFileManager.html" title="class in org.apache.hadoop.hbase.regionserver">StripeStoreFileManager</a></td>
 <td class="colLast">
 <div class="block">Stripe implementation of StoreFileManager.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/regionserver/StripeStoreFileManager.KeyBeforeConcatenatedLists.html" title="class in org.apache.hadoop.hbase.regionserver">StripeStoreFileManager.KeyBeforeConcatenatedLists</a></td>
 <td class="colLast">
 <div class="block">An extension of ConcatenatedLists that has several peculiar properties.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/regionserver/StripeStoreFileManager.State.html" title="class in org.apache.hadoop.hbase.regionserver">StripeStoreFileManager.State</a></td>
 <td class="colLast">
 <div class="block">The state class.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/regionserver/StripeStoreFlusher.html" title="class in org.apache.hadoop.hbase.regionserver">StripeStoreFlusher</a></td>
 <td class="colLast">
 <div class="block">Stripe implementation of StoreFlusher.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/regionserver/StripeStoreFlusher.BoundaryStripeFlushRequest.html" title="class in org.apache.hadoop.hbase.regionserver">StripeStoreFlusher.BoundaryStripeFlushRequest</a></td>
 <td class="colLast">
 <div class="block">Stripe flush request wrapper based on boundaries.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/regionserver/StripeStoreFlusher.SizeStripeFlushRequest.html" title="class in org.apache.hadoop.hbase.regionserver">StripeStoreFlusher.SizeStripeFlushRequest</a></td>
 <td class="colLast">
 <div class="block">Stripe flush request wrapper based on size.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/regionserver/StripeStoreFlusher.StripeFlushRequest.html" title="class in org.apache.hadoop.hbase.regionserver">StripeStoreFlusher.StripeFlushRequest</a></td>
 <td class="colLast">
 <div class="block">Stripe flush request wrapper that writes a non-striped file.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/regionserver/TimeRangeTracker.html" title="class in org.apache.hadoop.hbase.regionserver">TimeRangeTracker</a></td>
 <td class="colLast">
 <div class="block">Stores minimum and maximum timestamp values, it is [minimumTimestamp, maximumTimestamp] in
  interval notation.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/regionserver/TimeRangeTracker.NonSyncTimeRangeTracker.html" title="class in org.apache.hadoop.hbase.regionserver">TimeRangeTracker.NonSyncTimeRangeTracker</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/regionserver/TimeRangeTracker.SyncTimeRangeTracker.html" title="class in org.apache.hadoop.hbase.regionserver">TimeRangeTracker.SyncTimeRangeTracker</a></td>
 <td class="colLast">&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colFirst"><a href="../../../../../org/apache/hadoop/hbase/regionserver/VersionedSegmentsList.html" title="class in org.apache.hadoop.hbase.regionserver">VersionedSegmentsList</a></td>
 <td class="colLast">
 <div class="block">A list of segment managers coupled with the version of the memstore (version at the time it was

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/29b27596/devapidocs/org/apache/hadoop/hbase/regionserver/package-tree.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/regionserver/package-tree.html b/devapidocs/org/apache/hadoop/hbase/regionserver/package-tree.html
index 25643b4..44b0484 100644
--- a/devapidocs/org/apache/hadoop/hbase/regionserver/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/regionserver/package-tree.html
@@ -129,6 +129,7 @@
 <li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionAggregateSourceImpl.html" title="class in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">MetricsRegionAggregateSourceImpl</span></a> (implements org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionAggregateSource.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsRegionAggregateSource</a>)</li>
 <li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.html" title="class in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">MetricsRegionServerSourceImpl</span></a> (implements org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerSource.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsRegionServerSource</a>)</li>
 <li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableAggregateSourceImpl.html" title="class in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">MetricsTableAggregateSourceImpl</span></a> (implements org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableAggregateSource.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsTableAggregateSource</a>)</li>
+<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableLatenciesImpl.html" title="class in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">MetricsTableLatenciesImpl</span></a> (implements org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableLatencies.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsTableLatencies</a>)</li>
 </ul>
 </li>
 <li type="circle">org.apache.hadoop.hbase.<a href="../../../../../org/apache/hadoop/hbase/ByteBufferCell.html" title="class in org.apache.hadoop.hbase"><span class="typeNameLink">ByteBufferCell</span></a> (implements org.apache.hadoop.hbase.<a href="../../../../../org/apache/hadoop/hbase/Cell.html" title="interface in org.apache.hadoop.hbase">Cell</a>)
@@ -357,6 +358,7 @@
 <li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionWrapperImpl.html" title="class in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">MetricsRegionWrapperImpl</span></a> (implements java.io.<a href="http://docs.oracle.com/javase/8/docs/api/java/io/Closeable.html?is-external=true" title="class or interface in java.io">Closeable</a>, org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionWrapper.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsRegionWrapper</a>)</li>
 <li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionWrapperImpl.HRegionMetricsWrapperRunnable.html" title="class in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">MetricsRegionWrapperImpl.HRegionMetricsWrapperRunnable</span></a> (implements java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Runnable.html?is-external=true" title="class or interface in java.lang">Runnable</a>)</li>
 <li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTable.html" title="class in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">MetricsTable</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableLatenciesImpl.TableHistograms.html" title="class in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">MetricsTableLatenciesImpl.TableHistograms</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableSourceImpl.html" title="class in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">MetricsTableSourceImpl</span></a> (implements org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableSource.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsTableSource</a>)</li>
 <li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregateImpl.html" title="class in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">MetricsTableWrapperAggregateImpl</span></a> (implements java.io.<a href="http://docs.oracle.com/javase/8/docs/api/java/io/Closeable.html?is-external=true" title="class or interface in java.io">Closeable</a>, org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregate.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsTableWrapperAggregate</a>)</li>
 <li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregateImpl.MetricsTableValues.html" title="class in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">MetricsTableWrapperAggregateImpl.MetricsTableValues</span></a></li>
@@ -425,6 +427,7 @@
 <li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionServerAccounting.html" title="class in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">RegionServerAccounting</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionServerServices.PostOpenDeployContext.html" title="class in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">RegionServerServices.PostOpenDeployContext</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionServerServices.RegionStateTransitionContext.html" title="class in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">RegionServerServices.RegionStateTransitionContext</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionServerTableMetrics.html" title="class in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">RegionServerTableMetrics</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionServicesForStores.html" title="class in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">RegionServicesForStores</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/RSRpcServices.html" title="class in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">RSRpcServices</span></a> (implements org.apache.hadoop.hbase.shaded.protobuf.generated.AdminProtos.AdminService.BlockingInterface, org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos.ClientService.BlockingInterface, org.apache.hadoop.hbase.conf.<a href="../../../../../org/apache/hadoop/hbase/conf/ConfigurationObserver.html" title="interface in org.apache.hadoop.hbase.conf">ConfigurationObserver</a>, org.apache.hadoop.hbase.ipc.<a href="../../../../../org/apache/hadoop/hbase/ipc/HBaseRPCErrorHandler.html" title="interface in org.apache.hadoop.hbase.ipc">HBaseRPCErrorHandler</a>, org.apache.hadoop.hbase.ipc.<a href="../../../../../org/apache/hadoop/hbase/ipc/PriorityFunction.html" title="interface in org.apache.hadoop.hbase.ipc">PriorityFunction</a>)</li>
 <li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/RSRpcServices.RegionScannerCloseCallBack.html" title="class in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">RSRpcServices.RegionScannerCloseCallBack</span></a> (implements org.apache.hadoop.hbase.ipc.<a href="../../../../../org/apache/hadoop/hbase/ipc/RpcCallback.html" title="interface in org.apache.hadoop.hbase.ipc">RpcCallback</a>)</li>
@@ -649,6 +652,7 @@
 <li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceFactory.html" title="interface in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">MetricsRegionServerSourceFactory</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapper.html" title="interface in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">MetricsRegionServerWrapper</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionWrapper.html" title="interface in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">MetricsRegionWrapper</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableLatencies.html" title="interface in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">MetricsTableLatencies</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableWrapperAggregate.html" title="interface in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">MetricsTableWrapperAggregate</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/OnlineRegions.html" title="interface in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">OnlineRegions</span></a>
 <ul>
@@ -699,19 +703,19 @@
 <ul>
 <li type="circle">java.lang.<a href="http://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="http://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="http://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/FlushType.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">FlushType</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/Region.Operation.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">Region.Operation</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/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/CompactingMemStore.IndexType.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">CompactingMemStore.IndexType</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreCompactionStrategy.Action.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">MemStoreCompactionStrategy.Action</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/Region.Operation.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">Region.Operation</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/ScannerContext.NextState.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">ScannerContext.NextState</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/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/BloomType.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">BloomType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/FlushType.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">FlushType</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/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/SplitLogWorker.TaskExecutor.Status.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">SplitLogWorker.TaskExecutor.Status</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/DefaultHeapMemoryTuner.StepDirection.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">DefaultHeapMemoryTuner.StepDirection</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/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/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.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/HRegion.FlushResult.Result.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">HRegion.FlushResult.Result</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/TimeRangeTracker.Type.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">TimeRangeTracker.Type</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.regionserver.<a href="../../../../../org/apache/hadoop/hbase/regionserver/MemStoreCompactionStrategy.Action.html" title="enum in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">MemStoreCompactionStrategy.Action</span></a></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/29b27596/devapidocs/org/apache/hadoop/hbase/regionserver/package-use.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/regionserver/package-use.html b/devapidocs/org/apache/hadoop/hbase/regionserver/package-use.html
index dde1176..7351d33 100644
--- a/devapidocs/org/apache/hadoop/hbase/regionserver/package-use.html
+++ b/devapidocs/org/apache/hadoop/hbase/regionserver/package-use.html
@@ -1415,6 +1415,14 @@ Input/OutputFormats, a table indexing MapReduce job, and utility methods.</div>
 <td class="colOne"><a href="../../../../../org/apache/hadoop/hbase/regionserver/class-use/MetricsTableAggregateSourceImpl.html#org.apache.hadoop.hbase.regionserver">MetricsTableAggregateSourceImpl</a>&nbsp;</td>
 </tr>
 <tr class="rowColor">
+<td class="colOne"><a href="../../../../../org/apache/hadoop/hbase/regionserver/class-use/MetricsTableLatencies.html#org.apache.hadoop.hbase.regionserver">MetricsTableLatencies</a>
+<div class="block">Latency metrics for a specific table in a RegionServer.</div>
+</td>
+</tr>
+<tr class="altColor">
+<td class="colOne"><a href="../../../../../org/apache/hadoop/hbase/regionserver/class-use/MetricsTableLatenciesImpl.TableHistograms.html#org.apache.hadoop.hbase.regionserver">MetricsTableLatenciesImpl.TableHistograms</a>&nbsp;</td>
+</tr>
+<tr class="rowColor">
 <td class="colOne"><a href="../../../../../org/apache/hadoop/hbase/regionserver/class-use/MetricsTableSource.html#org.apache.hadoop.hbase.regionserver">MetricsTableSource</a>
 <div class="block">This interface will be implemented to allow region server to push table metrics into
  MetricsRegionAggregateSource that will in turn push data to the Hadoop metrics system.</div>
@@ -1552,37 +1560,42 @@ Input/OutputFormats, a table indexing MapReduce job, and utility methods.</div>
 </td>
 </tr>
 <tr class="altColor">
+<td class="colOne"><a href="../../../../../org/apache/hadoop/hbase/regionserver/class-use/RegionServerTableMetrics.html#org.apache.hadoop.hbase.regionserver">RegionServerTableMetrics</a>
+<div class="block">Captures operation metrics by table.</div>
+</td>
+</tr>
+<tr class="rowColor">
 <td class="colOne"><a href="../../../../../org/apache/hadoop/hbase/regionserver/class-use/RegionServicesForStores.html#org.apache.hadoop.hbase.regionserver">RegionServicesForStores</a>
 <div class="block">Services a Store needs from a Region.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colOne"><a href="../../../../../org/apache/hadoop/hbase/regionserver/class-use/RegionSplitPolicy.html#org.apache.hadoop.hbase.regionserver">RegionSplitPolicy</a>
 <div class="block">A split policy determines when a region should be split.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colOne"><a href="../../../../../org/apache/hadoop/hbase/regionserver/class-use/ReplicationService.html#org.apache.hadoop.hbase.regionserver">ReplicationService</a>
 <div class="block">Gateway to Cluster Replication.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colOne"><a href="../../../../../org/apache/hadoop/hbase/regionserver/class-use/ReplicationSinkService.html#org.apache.hadoop.hbase.regionserver">ReplicationSinkService</a>
 <div class="block">A sink for a replication stream has to expose this service.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colOne"><a href="../../../../../org/apache/hadoop/hbase/regionserver/class-use/ReplicationSourceService.html#org.apache.hadoop.hbase.regionserver">ReplicationSourceService</a>
 <div class="block">A source for a replication stream has to expose this service.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colOne"><a href="../../../../../org/apache/hadoop/hbase/regionserver/class-use/ReversedStoreScanner.html#org.apache.hadoop.hbase.regionserver">ReversedStoreScanner</a>
 <div class="block">ReversedStoreScanner extends from StoreScanner, and is used to support
  reversed scanning.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colOne"><a href="../../../../../org/apache/hadoop/hbase/regionserver/class-use/RowProcessor.html#org.apache.hadoop.hbase.regionserver">RowProcessor</a>
 <div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
 <div class="block"><span class="deprecationComment">As of release 2.0.0, this will be removed in HBase 3.0.0. For customization, use
@@ -1590,238 +1603,238 @@ Input/OutputFormats, a table indexing MapReduce job, and utility methods.</div>
 </div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colOne"><a href="../../../../../org/apache/hadoop/hbase/regionserver/class-use/RpcSchedulerFactory.html#org.apache.hadoop.hbase.regionserver">RpcSchedulerFactory</a>
 <div class="block">A factory class that constructs an <a href="../../../../../org/apache/hadoop/hbase/ipc/RpcScheduler.html" title="class in org.apache.hadoop.hbase.ipc"><code>RpcScheduler</code></a>.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colOne"><a href="../../../../../org/apache/hadoop/hbase/regionserver/class-use/RSRpcServices.html#org.apache.hadoop.hbase.regionserver">RSRpcServices</a>
 <div class="block">Implements the regionserver RPC services.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colOne"><a href="../../../../../org/apache/hadoop/hbase/regionserver/class-use/RSRpcServices.LogDelegate.html#org.apache.hadoop.hbase.regionserver">RSRpcServices.LogDelegate</a>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colOne"><a href="../../../../../org/apache/hadoop/hbase/regionserver/class-use/RSRpcServices.RegionScannerHolder.html#org.apache.hadoop.hbase.regionserver">RSRpcServices.RegionScannerHolder</a>
 <div class="block">Holder class which holds the RegionScanner, nextCallSeq and RpcCallbacks together.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colOne"><a href="../../../../../org/apache/hadoop/hbase/regionserver/class-use/RSRpcServices.RegionScannersCloseCallBack.html#org.apache.hadoop.hbase.regionserver">RSRpcServices.RegionScannersCloseCallBack</a>
 <div class="block">An RpcCallBack that creates a list of scanners that needs to perform callBack operation on
  completion of multiGets.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colOne"><a href="../../../../../org/apache/hadoop/hbase/regionserver/class-use/ScanInfo.html#org.apache.hadoop.hbase.regionserver">ScanInfo</a>
 <div class="block">Immutable information for scans over a store.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colOne"><a href="../../../../../org/apache/hadoop/hbase/regionserver/class-use/ScannerContext.html#org.apache.hadoop.hbase.regionserver">ScannerContext</a>
 <div class="block">ScannerContext instances encapsulate limit tracking AND progress towards those limits during
  invocations of <a href="../../../../../org/apache/hadoop/hbase/regionserver/InternalScanner.html#next-java.util.List-"><code>InternalScanner.next(java.util.List)</code></a> and
  <a href="../../../../../org/apache/hadoop/hbase/regionserver/InternalScanner.html#next-java.util.List-"><code>InternalScanner.next(java.util.List)</code></a>.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colOne"><a href="../../../../../org/apache/hadoop/hbase/regionserver/class-use/ScannerContext.Builder.html#org.apache.hadoop.hbase.regionserver">ScannerContext.Builder</a>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colOne"><a href="../../../../../org/apache/hadoop/hbase/regionserver/class-use/ScannerContext.LimitFields.html#org.apache.hadoop.hbase.regionserver">ScannerContext.LimitFields</a>
 <div class="block">The different fields that can be used as limits in calls to
  <a href="../../../../../org/apache/hadoop/hbase/regionserver/InternalScanner.html#next-java.util.List-"><code>InternalScanner.next(java.util.List)</code></a> and <a href="../../../../../org/apache/hadoop/hbase/regionserver/InternalScanner.html#next-java.util.List-"><code>InternalScanner.next(java.util.List)</code></a></div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colOne"><a href="../../../../../org/apache/hadoop/hbase/regionserver/class-use/ScannerContext.LimitScope.html#org.apache.hadoop.hbase.regionserver">ScannerContext.LimitScope</a>
 <div class="block">The various scopes where a limit can be enforced.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colOne"><a href="../../../../../org/apache/hadoop/hbase/regionserver/class-use/ScannerContext.NextState.html#org.apache.hadoop.hbase.regionserver">ScannerContext.NextState</a>
 <div class="block">The possible states a scanner may be in following a call to <a href="../../../../../org/apache/hadoop/hbase/regionserver/InternalScanner.html#next-java.util.List-"><code>InternalScanner.next(List)</code></a></div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colOne"><a href="../../../../../org/apache/hadoop/hbase/regionserver/class-use/ScannerIdGenerator.html#org.apache.hadoop.hbase.regionserver">ScannerIdGenerator</a>
 <div class="block">Generate a new style scanner id to prevent collision with previous started server or other RSs.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colOne"><a href="../../../../../org/apache/hadoop/hbase/regionserver/class-use/ScanOptions.html#org.apache.hadoop.hbase.regionserver">ScanOptions</a>
 <div class="block">This class gives you the ability to change the max versions and TTL options before opening a
  scanner for a Store.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colOne"><a href="../../../../../org/apache/hadoop/hbase/regionserver/class-use/ScanType.html#org.apache.hadoop.hbase.regionserver">ScanType</a>
 <div class="block">Enum to distinguish general scan types.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colOne"><a href="../../../../../org/apache/hadoop/hbase/regionserver/class-use/SecureBulkLoadManager.html#org.apache.hadoop.hbase.regionserver">SecureBulkLoadManager</a>
 <div class="block">Bulk loads in secure mode.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colOne"><a href="../../../../../org/apache/hadoop/hbase/regionserver/class-use/Segment.html#org.apache.hadoop.hbase.regionserver">Segment</a>
 <div class="block">This is an abstraction of a segment maintained in a memstore, e.g., the active
  cell set or its snapshot.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colOne"><a href="../../../../../org/apache/hadoop/hbase/regionserver/class-use/SegmentFactory.html#org.apache.hadoop.hbase.regionserver">SegmentFactory</a>
 <div class="block">A singleton store segment factory.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colOne"><a href="../../../../../org/apache/hadoop/hbase/regionserver/class-use/ServerNonceManager.html#org.apache.hadoop.hbase.regionserver">ServerNonceManager</a>
 <div class="block">Implementation of nonce manager that stores nonces in a hash map and cleans them up after
  some time; if nonce group/client ID is supplied, nonces are stored by client ID.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colOne"><a href="../../../../../org/apache/hadoop/hbase/regionserver/class-use/ServerNonceManager.OperationContext.html#org.apache.hadoop.hbase.regionserver">ServerNonceManager.OperationContext</a>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colOne"><a href="../../../../../org/apache/hadoop/hbase/regionserver/class-use/Shipper.html#org.apache.hadoop.hbase.regionserver">Shipper</a>
 <div class="block">This interface denotes a scanner as one which can ship cells.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colOne"><a href="../../../../../org/apache/hadoop/hbase/regionserver/class-use/ShipperListener.html#org.apache.hadoop.hbase.regionserver">ShipperListener</a>
 <div class="block">Implementors of this interface are the ones who needs to do some action when the
  <a href="../../../../../org/apache/hadoop/hbase/regionserver/Shipper.html#shipped--"><code>Shipper.shipped()</code></a> is called</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colOne"><a href="../../../../../org/apache/hadoop/hbase/regionserver/class-use/SplitLogWorker.html#org.apache.hadoop.hbase.regionserver">SplitLogWorker</a>
 <div class="block">This worker is spawned in every regionserver, including master.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colOne"><a href="../../../../../org/apache/hadoop/hbase/regionserver/class-use/SplitLogWorker.TaskExecutor.html#org.apache.hadoop.hbase.regionserver">SplitLogWorker.TaskExecutor</a>
 <div class="block">Objects implementing this interface actually do the task that has been
  acquired by a <a href="../../../../../org/apache/hadoop/hbase/regionserver/SplitLogWorker.html" title="class in org.apache.hadoop.hbase.regionserver"><code>SplitLogWorker</code></a>.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colOne"><a href="../../../../../org/apache/hadoop/hbase/regionserver/class-use/SplitLogWorker.TaskExecutor.Status.html#org.apache.hadoop.hbase.regionserver">SplitLogWorker.TaskExecutor.Status</a>&nbsp;</td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colOne"><a href="../../../../../org/apache/hadoop/hbase/regionserver/class-use/Store.html#org.apache.hadoop.hbase.regionserver">Store</a>
 <div class="block">Interface for objects that hold a column family in a Region.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colOne"><a href="../../../../../org/apache/hadoop/hbase/regionserver/class-use/StoreConfigInformation.html#org.apache.hadoop.hbase.regionserver">StoreConfigInformation</a>
 <div class="block">A more restricted interface for HStore.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colOne"><a href="../../../../../org/apache/hadoop/hbase/regionserver/class-use/StoreEngine.html#org.apache.hadoop.hbase.regionserver">StoreEngine</a>
 <div class="block">StoreEngine is a factory that can create the objects necessary for HStore to operate.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colOne"><a href="../../../../../org/apache/hadoop/hbase/regionserver/class-use/StoreFile.html#org.apache.hadoop.hbase.regionserver">StoreFile</a>
 <div class="block">An interface to describe a store data file.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colOne"><a href="../../../../../org/apache/hadoop/hbase/regionserver/class-use/StoreFileInfo.html#org.apache.hadoop.hbase.regionserver">StoreFileInfo</a>
 <div class="block">Describe a StoreFile (hfile, reference, link)</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colOne"><a href="../../../../../org/apache/hadoop/hbase/regionserver/class-use/StoreFileManager.html#org.apache.hadoop.hbase.regionserver">StoreFileManager</a>
 <div class="block">Manages the store files and basic metadata about that that determines the logical structure
  (e.g.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colOne"><a href="../../../../../org/apache/hadoop/hbase/regionserver/class-use/StoreFileReader.html#org.apache.hadoop.hbase.regionserver">StoreFileReader</a>
 <div class="block">Reader for a StoreFile.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colOne"><a href="../../../../../org/apache/hadoop/hbase/regionserver/class-use/StorefileRefresherChore.html#org.apache.hadoop.hbase.regionserver">StorefileRefresherChore</a>
 <div class="block">A chore for refreshing the store files for secondary regions hosted in the region server.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colOne"><a href="../../../../../org/apache/hadoop/hbase/regionserver/class-use/StoreFileScanner.html#org.apache.hadoop.hbase.regionserver">StoreFileScanner</a>
 <div class="block">KeyValueScanner adaptor over the Reader.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colOne"><a href="../../../../../org/apache/hadoop/hbase/regionserver/class-use/StoreFileWriter.html#org.apache.hadoop.hbase.regionserver">StoreFileWriter</a>
 <div class="block">A StoreFile writer.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colOne"><a href="../../../../../org/apache/hadoop/hbase/regionserver/class-use/StoreFileWriter.Builder.html#org.apache.hadoop.hbase.regionserver">StoreFileWriter.Builder</a>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colOne"><a href="../../../../../org/apache/hadoop/hbase/regionserver/class-use/StoreFlushContext.html#org.apache.hadoop.hbase.regionserver">StoreFlushContext</a>
 <div class="block">A package protected interface for a store flushing.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colOne"><a href="../../../../../org/apache/hadoop/hbase/regionserver/class-use/StoreFlusher.html#org.apache.hadoop.hbase.regionserver">StoreFlusher</a>
 <div class="block">Store flusher interface.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colOne"><a href="../../../../../org/apache/hadoop/hbase/regionserver/class-use/StoreScanner.html#org.apache.hadoop.hbase.regionserver">StoreScanner</a>
 <div class="block">Scanner scans both the memstore and the Store.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colOne"><a href="../../../../../org/apache/hadoop/hbase/regionserver/class-use/StripeMultiFileWriter.html#org.apache.hadoop.hbase.regionserver">StripeMultiFileWriter</a>
 <div class="block">Base class for cell sink that separates the provided cells into multiple files for stripe
  compaction.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colOne"><a href="../../../../../org/apache/hadoop/hbase/regionserver/class-use/StripeStoreConfig.html#org.apache.hadoop.hbase.regionserver">StripeStoreConfig</a>
 <div class="block">Configuration class for stripe store and compactions.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colOne"><a href="../../../../../org/apache/hadoop/hbase/regionserver/class-use/StripeStoreFileManager.html#org.apache.hadoop.hbase.regionserver">StripeStoreFileManager</a>
 <div class="block">Stripe implementation of StoreFileManager.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colOne"><a href="../../../../../org/apache/hadoop/hbase/regionserver/class-use/StripeStoreFileManager.State.html#org.apache.hadoop.hbase.regionserver">StripeStoreFileManager.State</a>
 <div class="block">The state class.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colOne"><a href="../../../../../org/apache/hadoop/hbase/regionserver/class-use/StripeStoreFlusher.StripeFlushRequest.html#org.apache.hadoop.hbase.regionserver">StripeStoreFlusher.StripeFlushRequest</a>
 <div class="block">Stripe flush request wrapper that writes a non-striped file.</div>
 </td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colOne"><a href="../../../../../org/apache/hadoop/hbase/regionserver/class-use/TimeRangeTracker.html#org.apache.hadoop.hbase.regionserver">TimeRangeTracker</a>
 <div class="block">Stores minimum and maximum timestamp values, it is [minimumTimestamp, maximumTimestamp] in
  interval notation.</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colOne"><a href="../../../../../org/apache/hadoop/hbase/regionserver/class-use/TimeRangeTracker.Type.html#org.apache.hadoop.hbase.regionserver">TimeRangeTracker.Type</a>&nbsp;</td>
 </tr>
-<tr class="altColor">
+<tr class="rowColor">
 <td class="colOne"><a href="../../../../../org/apache/hadoop/hbase/regionserver/class-use/VersionedSegmentsList.html#org.apache.hadoop.hbase.regionserver">VersionedSegmentsList</a>
 <div class="block">A list of segment managers coupled with the version of the memstore (version at the time it was
  created).</div>
 </td>
 </tr>
-<tr class="rowColor">
+<tr class="altColor">
 <td class="colOne"><a href="../../../../../org/apache/hadoop/hbase/regionserver/class-use/WrongRegionException.html#org.apache.hadoop.hbase.regionserver">WrongRegionException</a>
 <div class="block">Thrown when a request contains a key which is not part of this region</div>
 </td>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/29b27596/devapidocs/org/apache/hadoop/hbase/regionserver/querymatcher/package-tree.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/regionserver/querymatcher/package-tree.html b/devapidocs/org/apache/hadoop/hbase/regionserver/querymatcher/package-tree.html
index 9d29552..b9cd85d 100644
--- a/devapidocs/org/apache/hadoop/hbase/regionserver/querymatcher/package-tree.html
+++ b/devapidocs/org/apache/hadoop/hbase/regionserver/querymatcher/package-tree.html
@@ -130,8 +130,8 @@
 <ul>
 <li type="circle">java.lang.<a href="http://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="http://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="http://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>)
 <ul>
-<li type="circle">org.apache.hadoop.hbase.regionserver.querymatcher.<a href="../../../../../../org/apache/hadoop/hbase/regionserver/querymatcher/ScanQueryMatcher.MatchCode.html" title="enum in org.apache.hadoop.hbase.regionserver.querymatcher"><span class="typeNameLink">ScanQueryMatcher.MatchCode</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.regionserver.querymatcher.<a href="../../../../../../org/apache/hadoop/hbase/regionserver/querymatcher/StripeCompactionScanQueryMatcher.DropDeletesInOutput.html" title="enum in org.apache.hadoop.hbase.regionserver.querymatcher"><span class="typeNameLink">StripeCompactionScanQueryMatcher.DropDeletesInOutput</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.regionserver.querymatcher.<a href="../../../../../../org/apache/hadoop/hbase/regionserver/querymatcher/ScanQueryMatcher.MatchCode.html" title="enum in org.apache.hadoop.hbase.regionserver.querymatcher"><span class="typeNameLink">ScanQueryMatcher.MatchCode</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.regionserver.querymatcher.<a href="../../../../../../org/apache/hadoop/hbase/regionserver/querymatcher/DeleteTracker.DeleteResult.html" title="enum in org.apache.hadoop.hbase.regionserver.querymatcher"><span class="typeNameLink">DeleteTracker.DeleteResult</span></a></li>
 </ul>
 </li>


[14/32] hbase-site git commit: Published site at .

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/29b27596/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html
index 3d4870d..745c063 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html
@@ -26,153 +26,200 @@
 <span class="sourceLineNo">018</span>package org.apache.hadoop.hbase.regionserver;<a name="line.18"></a>
 <span class="sourceLineNo">019</span><a name="line.19"></a>
 <span class="sourceLineNo">020</span>import org.apache.hadoop.hbase.CompatibilitySingletonFactory;<a name="line.20"></a>
-<span class="sourceLineNo">021</span>import org.apache.yetus.audience.InterfaceAudience;<a name="line.21"></a>
-<span class="sourceLineNo">022</span>import org.apache.yetus.audience.InterfaceStability;<a name="line.22"></a>
-<span class="sourceLineNo">023</span>import org.apache.hadoop.hbase.metrics.MetricRegistries;<a name="line.23"></a>
-<span class="sourceLineNo">024</span>import org.apache.hadoop.hbase.metrics.MetricRegistry;<a name="line.24"></a>
-<span class="sourceLineNo">025</span>import org.apache.hadoop.hbase.metrics.Timer;<a name="line.25"></a>
-<span class="sourceLineNo">026</span><a name="line.26"></a>
-<span class="sourceLineNo">027</span>import org.apache.hadoop.hbase.shaded.com.google.common.annotations.VisibleForTesting;<a name="line.27"></a>
+<span class="sourceLineNo">021</span>import org.apache.hadoop.hbase.TableName;<a name="line.21"></a>
+<span class="sourceLineNo">022</span>import org.apache.hadoop.hbase.metrics.MetricRegistries;<a name="line.22"></a>
+<span class="sourceLineNo">023</span>import org.apache.hadoop.hbase.metrics.MetricRegistry;<a name="line.23"></a>
+<span class="sourceLineNo">024</span>import org.apache.hadoop.hbase.metrics.Timer;<a name="line.24"></a>
+<span class="sourceLineNo">025</span>import org.apache.hadoop.conf.Configuration;<a name="line.25"></a>
+<span class="sourceLineNo">026</span>import org.apache.yetus.audience.InterfaceAudience;<a name="line.26"></a>
+<span class="sourceLineNo">027</span>import org.apache.yetus.audience.InterfaceStability;<a name="line.27"></a>
 <span class="sourceLineNo">028</span><a name="line.28"></a>
-<span class="sourceLineNo">029</span>/**<a name="line.29"></a>
-<span class="sourceLineNo">030</span> * &lt;p&gt;<a name="line.30"></a>
-<span class="sourceLineNo">031</span> * This class is for maintaining the various regionserver statistics<a name="line.31"></a>
-<span class="sourceLineNo">032</span> * and publishing them through the metrics interfaces.<a name="line.32"></a>
-<span class="sourceLineNo">033</span> * &lt;/p&gt;<a name="line.33"></a>
-<span class="sourceLineNo">034</span> * This class has a number of metrics variables that are publicly accessible;<a name="line.34"></a>
-<span class="sourceLineNo">035</span> * these variables (objects) have methods to update their values.<a name="line.35"></a>
-<span class="sourceLineNo">036</span> */<a name="line.36"></a>
-<span class="sourceLineNo">037</span>@InterfaceStability.Evolving<a name="line.37"></a>
-<span class="sourceLineNo">038</span>@InterfaceAudience.Private<a name="line.38"></a>
-<span class="sourceLineNo">039</span>public class MetricsRegionServer {<a name="line.39"></a>
-<span class="sourceLineNo">040</span>  private MetricsRegionServerSource serverSource;<a name="line.40"></a>
-<span class="sourceLineNo">041</span>  private MetricsRegionServerWrapper regionServerWrapper;<a name="line.41"></a>
-<span class="sourceLineNo">042</span><a name="line.42"></a>
-<span class="sourceLineNo">043</span>  private MetricRegistry metricRegistry;<a name="line.43"></a>
-<span class="sourceLineNo">044</span>  private Timer bulkLoadTimer;<a name="line.44"></a>
+<span class="sourceLineNo">029</span>import org.apache.hadoop.hbase.shaded.com.google.common.annotations.VisibleForTesting;<a name="line.29"></a>
+<span class="sourceLineNo">030</span><a name="line.30"></a>
+<span class="sourceLineNo">031</span>/**<a name="line.31"></a>
+<span class="sourceLineNo">032</span> * &lt;p&gt;<a name="line.32"></a>
+<span class="sourceLineNo">033</span> * This class is for maintaining the various regionserver statistics<a name="line.33"></a>
+<span class="sourceLineNo">034</span> * and publishing them through the metrics interfaces.<a name="line.34"></a>
+<span class="sourceLineNo">035</span> * &lt;/p&gt;<a name="line.35"></a>
+<span class="sourceLineNo">036</span> * This class has a number of metrics variables that are publicly accessible;<a name="line.36"></a>
+<span class="sourceLineNo">037</span> * these variables (objects) have methods to update their values.<a name="line.37"></a>
+<span class="sourceLineNo">038</span> */<a name="line.38"></a>
+<span class="sourceLineNo">039</span>@InterfaceStability.Evolving<a name="line.39"></a>
+<span class="sourceLineNo">040</span>@InterfaceAudience.Private<a name="line.40"></a>
+<span class="sourceLineNo">041</span>public class MetricsRegionServer {<a name="line.41"></a>
+<span class="sourceLineNo">042</span>  public static final String RS_ENABLE_TABLE_METRICS_KEY =<a name="line.42"></a>
+<span class="sourceLineNo">043</span>      "hbase.regionserver.enable.table.latencies";<a name="line.43"></a>
+<span class="sourceLineNo">044</span>  public static final boolean RS_ENABLE_TABLE_METRICS_DEFAULT = true;<a name="line.44"></a>
 <span class="sourceLineNo">045</span><a name="line.45"></a>
-<span class="sourceLineNo">046</span>  public MetricsRegionServer(MetricsRegionServerWrapper regionServerWrapper) {<a name="line.46"></a>
-<span class="sourceLineNo">047</span>    this(regionServerWrapper,<a name="line.47"></a>
-<span class="sourceLineNo">048</span>        CompatibilitySingletonFactory.getInstance(MetricsRegionServerSourceFactory.class)<a name="line.48"></a>
-<span class="sourceLineNo">049</span>            .createServer(regionServerWrapper));<a name="line.49"></a>
-<span class="sourceLineNo">050</span><a name="line.50"></a>
-<span class="sourceLineNo">051</span>    // Create hbase-metrics module based metrics. The registry should already be registered by the<a name="line.51"></a>
-<span class="sourceLineNo">052</span>    // MetricsRegionServerSource<a name="line.52"></a>
-<span class="sourceLineNo">053</span>    metricRegistry = MetricRegistries.global().get(serverSource.getMetricRegistryInfo()).get();<a name="line.53"></a>
-<span class="sourceLineNo">054</span><a name="line.54"></a>
-<span class="sourceLineNo">055</span>    // create and use metrics from the new hbase-metrics based registry.<a name="line.55"></a>
-<span class="sourceLineNo">056</span>    bulkLoadTimer = metricRegistry.timer("Bulkload");<a name="line.56"></a>
-<span class="sourceLineNo">057</span>  }<a name="line.57"></a>
+<span class="sourceLineNo">046</span>  private MetricsRegionServerSource serverSource;<a name="line.46"></a>
+<span class="sourceLineNo">047</span>  private MetricsRegionServerWrapper regionServerWrapper;<a name="line.47"></a>
+<span class="sourceLineNo">048</span>  private RegionServerTableMetrics tableMetrics;<a name="line.48"></a>
+<span class="sourceLineNo">049</span><a name="line.49"></a>
+<span class="sourceLineNo">050</span>  private MetricRegistry metricRegistry;<a name="line.50"></a>
+<span class="sourceLineNo">051</span>  private Timer bulkLoadTimer;<a name="line.51"></a>
+<span class="sourceLineNo">052</span><a name="line.52"></a>
+<span class="sourceLineNo">053</span>  public MetricsRegionServer(MetricsRegionServerWrapper regionServerWrapper, Configuration conf) {<a name="line.53"></a>
+<span class="sourceLineNo">054</span>    this(regionServerWrapper,<a name="line.54"></a>
+<span class="sourceLineNo">055</span>        CompatibilitySingletonFactory.getInstance(MetricsRegionServerSourceFactory.class)<a name="line.55"></a>
+<span class="sourceLineNo">056</span>            .createServer(regionServerWrapper),<a name="line.56"></a>
+<span class="sourceLineNo">057</span>        createTableMetrics(conf));<a name="line.57"></a>
 <span class="sourceLineNo">058</span><a name="line.58"></a>
-<span class="sourceLineNo">059</span>  MetricsRegionServer(MetricsRegionServerWrapper regionServerWrapper,<a name="line.59"></a>
-<span class="sourceLineNo">060</span>                      MetricsRegionServerSource serverSource) {<a name="line.60"></a>
-<span class="sourceLineNo">061</span>    this.regionServerWrapper = regionServerWrapper;<a name="line.61"></a>
-<span class="sourceLineNo">062</span>    this.serverSource = serverSource;<a name="line.62"></a>
-<span class="sourceLineNo">063</span>  }<a name="line.63"></a>
-<span class="sourceLineNo">064</span><a name="line.64"></a>
-<span class="sourceLineNo">065</span>  @VisibleForTesting<a name="line.65"></a>
-<span class="sourceLineNo">066</span>  public MetricsRegionServerSource getMetricsSource() {<a name="line.66"></a>
-<span class="sourceLineNo">067</span>    return serverSource;<a name="line.67"></a>
-<span class="sourceLineNo">068</span>  }<a name="line.68"></a>
-<span class="sourceLineNo">069</span><a name="line.69"></a>
-<span class="sourceLineNo">070</span>  public MetricsRegionServerWrapper getRegionServerWrapper() {<a name="line.70"></a>
-<span class="sourceLineNo">071</span>    return regionServerWrapper;<a name="line.71"></a>
-<span class="sourceLineNo">072</span>  }<a name="line.72"></a>
-<span class="sourceLineNo">073</span><a name="line.73"></a>
-<span class="sourceLineNo">074</span>  public void updatePutBatch(long t) {<a name="line.74"></a>
-<span class="sourceLineNo">075</span>    if (t &gt; 1000) {<a name="line.75"></a>
-<span class="sourceLineNo">076</span>      serverSource.incrSlowPut();<a name="line.76"></a>
-<span class="sourceLineNo">077</span>    }<a name="line.77"></a>
-<span class="sourceLineNo">078</span>    serverSource.updatePutBatch(t);<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>  public void updatePut(long t) {<a name="line.81"></a>
-<span class="sourceLineNo">082</span>    serverSource.updatePut(t);<a name="line.82"></a>
+<span class="sourceLineNo">059</span>    // Create hbase-metrics module based metrics. The registry should already be registered by the<a name="line.59"></a>
+<span class="sourceLineNo">060</span>    // MetricsRegionServerSource<a name="line.60"></a>
+<span class="sourceLineNo">061</span>    metricRegistry = MetricRegistries.global().get(serverSource.getMetricRegistryInfo()).get();<a name="line.61"></a>
+<span class="sourceLineNo">062</span><a name="line.62"></a>
+<span class="sourceLineNo">063</span>    // create and use metrics from the new hbase-metrics based registry.<a name="line.63"></a>
+<span class="sourceLineNo">064</span>    bulkLoadTimer = metricRegistry.timer("Bulkload");<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>  MetricsRegionServer(MetricsRegionServerWrapper regionServerWrapper,<a name="line.67"></a>
+<span class="sourceLineNo">068</span>                      MetricsRegionServerSource serverSource,<a name="line.68"></a>
+<span class="sourceLineNo">069</span>                      RegionServerTableMetrics tableMetrics) {<a name="line.69"></a>
+<span class="sourceLineNo">070</span>    this.regionServerWrapper = regionServerWrapper;<a name="line.70"></a>
+<span class="sourceLineNo">071</span>    this.serverSource = serverSource;<a name="line.71"></a>
+<span class="sourceLineNo">072</span>    this.tableMetrics = tableMetrics;<a name="line.72"></a>
+<span class="sourceLineNo">073</span>  }<a name="line.73"></a>
+<span class="sourceLineNo">074</span><a name="line.74"></a>
+<span class="sourceLineNo">075</span>  /**<a name="line.75"></a>
+<span class="sourceLineNo">076</span>   * Creates an instance of {@link RegionServerTableMetrics} only if the feature is enabled.<a name="line.76"></a>
+<span class="sourceLineNo">077</span>   */<a name="line.77"></a>
+<span class="sourceLineNo">078</span>  static RegionServerTableMetrics createTableMetrics(Configuration conf) {<a name="line.78"></a>
+<span class="sourceLineNo">079</span>    if (conf.getBoolean(RS_ENABLE_TABLE_METRICS_KEY, RS_ENABLE_TABLE_METRICS_DEFAULT)) {<a name="line.79"></a>
+<span class="sourceLineNo">080</span>      return new RegionServerTableMetrics();<a name="line.80"></a>
+<span class="sourceLineNo">081</span>    }<a name="line.81"></a>
+<span class="sourceLineNo">082</span>    return null;<a name="line.82"></a>
 <span class="sourceLineNo">083</span>  }<a name="line.83"></a>
 <span class="sourceLineNo">084</span><a name="line.84"></a>
-<span class="sourceLineNo">085</span>  public void updateDelete(long t) {<a name="line.85"></a>
-<span class="sourceLineNo">086</span>    serverSource.updateDelete(t);<a name="line.86"></a>
-<span class="sourceLineNo">087</span>  }<a name="line.87"></a>
-<span class="sourceLineNo">088</span><a name="line.88"></a>
-<span class="sourceLineNo">089</span>  public void updateDeleteBatch(long t) {<a name="line.89"></a>
-<span class="sourceLineNo">090</span>    if (t &gt; 1000) {<a name="line.90"></a>
-<span class="sourceLineNo">091</span>      serverSource.incrSlowDelete();<a name="line.91"></a>
-<span class="sourceLineNo">092</span>    }<a name="line.92"></a>
-<span class="sourceLineNo">093</span>    serverSource.updateDeleteBatch(t);<a name="line.93"></a>
-<span class="sourceLineNo">094</span>  }<a name="line.94"></a>
-<span class="sourceLineNo">095</span><a name="line.95"></a>
-<span class="sourceLineNo">096</span>  public void updateCheckAndDelete(long t) {<a name="line.96"></a>
-<span class="sourceLineNo">097</span>    serverSource.updateCheckAndDelete(t);<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>  public void updateCheckAndPut(long t) {<a name="line.100"></a>
-<span class="sourceLineNo">101</span>    serverSource.updateCheckAndPut(t);<a name="line.101"></a>
+<span class="sourceLineNo">085</span>  @VisibleForTesting<a name="line.85"></a>
+<span class="sourceLineNo">086</span>  public MetricsRegionServerSource getMetricsSource() {<a name="line.86"></a>
+<span class="sourceLineNo">087</span>    return serverSource;<a name="line.87"></a>
+<span class="sourceLineNo">088</span>  }<a name="line.88"></a>
+<span class="sourceLineNo">089</span><a name="line.89"></a>
+<span class="sourceLineNo">090</span>  public MetricsRegionServerWrapper getRegionServerWrapper() {<a name="line.90"></a>
+<span class="sourceLineNo">091</span>    return regionServerWrapper;<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>  public void updatePutBatch(TableName tn, long t) {<a name="line.94"></a>
+<span class="sourceLineNo">095</span>    if (tableMetrics != null &amp;&amp; tn != null) {<a name="line.95"></a>
+<span class="sourceLineNo">096</span>      tableMetrics.updatePut(tn, t);<a name="line.96"></a>
+<span class="sourceLineNo">097</span>    }<a name="line.97"></a>
+<span class="sourceLineNo">098</span>    if (t &gt; 1000) {<a name="line.98"></a>
+<span class="sourceLineNo">099</span>      serverSource.incrSlowPut();<a name="line.99"></a>
+<span class="sourceLineNo">100</span>    }<a name="line.100"></a>
+<span class="sourceLineNo">101</span>    serverSource.updatePutBatch(t);<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>  public void updateGet(long t) {<a name="line.104"></a>
-<span class="sourceLineNo">105</span>    if (t &gt; 1000) {<a name="line.105"></a>
-<span class="sourceLineNo">106</span>      serverSource.incrSlowGet();<a name="line.106"></a>
+<span class="sourceLineNo">104</span>  public void updatePut(TableName tn, long t) {<a name="line.104"></a>
+<span class="sourceLineNo">105</span>    if (tableMetrics != null &amp;&amp; tn != null) {<a name="line.105"></a>
+<span class="sourceLineNo">106</span>      tableMetrics.updatePut(tn, t);<a name="line.106"></a>
 <span class="sourceLineNo">107</span>    }<a name="line.107"></a>
-<span class="sourceLineNo">108</span>    serverSource.updateGet(t);<a name="line.108"></a>
+<span class="sourceLineNo">108</span>    serverSource.updatePut(t);<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 void updateIncrement(long t) {<a name="line.111"></a>
-<span class="sourceLineNo">112</span>    if (t &gt; 1000) {<a name="line.112"></a>
-<span class="sourceLineNo">113</span>      serverSource.incrSlowIncrement();<a name="line.113"></a>
+<span class="sourceLineNo">111</span>  public void updateDelete(TableName tn, long t) {<a name="line.111"></a>
+<span class="sourceLineNo">112</span>    if (tableMetrics != null &amp;&amp; tn != null) {<a name="line.112"></a>
+<span class="sourceLineNo">113</span>      tableMetrics.updateDelete(tn, t);<a name="line.113"></a>
 <span class="sourceLineNo">114</span>    }<a name="line.114"></a>
-<span class="sourceLineNo">115</span>    serverSource.updateIncrement(t);<a name="line.115"></a>
+<span class="sourceLineNo">115</span>    serverSource.updateDelete(t);<a name="line.115"></a>
 <span class="sourceLineNo">116</span>  }<a name="line.116"></a>
 <span class="sourceLineNo">117</span><a name="line.117"></a>
-<span class="sourceLineNo">118</span>  public void updateAppend(long t) {<a name="line.118"></a>
-<span class="sourceLineNo">119</span>    if (t &gt; 1000) {<a name="line.119"></a>
-<span class="sourceLineNo">120</span>      serverSource.incrSlowAppend();<a name="line.120"></a>
+<span class="sourceLineNo">118</span>  public void updateDeleteBatch(TableName tn, long t) {<a name="line.118"></a>
+<span class="sourceLineNo">119</span>    if (tableMetrics != null &amp;&amp; tn != null) {<a name="line.119"></a>
+<span class="sourceLineNo">120</span>      tableMetrics.updateDelete(tn, t);<a name="line.120"></a>
 <span class="sourceLineNo">121</span>    }<a name="line.121"></a>
-<span class="sourceLineNo">122</span>    serverSource.updateAppend(t);<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>  public void updateReplay(long t){<a name="line.125"></a>
-<span class="sourceLineNo">126</span>    serverSource.updateReplay(t);<a name="line.126"></a>
-<span class="sourceLineNo">127</span>  }<a name="line.127"></a>
-<span class="sourceLineNo">128</span><a name="line.128"></a>
-<span class="sourceLineNo">129</span>  public void updateScanSize(long scanSize){<a name="line.129"></a>
-<span class="sourceLineNo">130</span>    serverSource.updateScanSize(scanSize);<a name="line.130"></a>
-<span class="sourceLineNo">131</span>  }<a name="line.131"></a>
-<span class="sourceLineNo">132</span><a name="line.132"></a>
-<span class="sourceLineNo">133</span>  public void updateScanTime(long t) {<a name="line.133"></a>
-<span class="sourceLineNo">134</span>    serverSource.updateScanTime(t);<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>  public void updateSplitTime(long t) {<a name="line.137"></a>
-<span class="sourceLineNo">138</span>    serverSource.updateSplitTime(t);<a name="line.138"></a>
-<span class="sourceLineNo">139</span>  }<a name="line.139"></a>
-<span class="sourceLineNo">140</span><a name="line.140"></a>
-<span class="sourceLineNo">141</span>  public void incrSplitRequest() {<a name="line.141"></a>
-<span class="sourceLineNo">142</span>    serverSource.incrSplitRequest();<a name="line.142"></a>
-<span class="sourceLineNo">143</span>  }<a name="line.143"></a>
-<span class="sourceLineNo">144</span><a name="line.144"></a>
-<span class="sourceLineNo">145</span>  public void incrSplitSuccess() {<a name="line.145"></a>
-<span class="sourceLineNo">146</span>    serverSource.incrSplitSuccess();<a name="line.146"></a>
-<span class="sourceLineNo">147</span>  }<a name="line.147"></a>
-<span class="sourceLineNo">148</span><a name="line.148"></a>
-<span class="sourceLineNo">149</span>  public void updateFlush(long t, long memstoreSize, long fileSize) {<a name="line.149"></a>
-<span class="sourceLineNo">150</span>    serverSource.updateFlushTime(t);<a name="line.150"></a>
-<span class="sourceLineNo">151</span>    serverSource.updateFlushMemStoreSize(memstoreSize);<a name="line.151"></a>
-<span class="sourceLineNo">152</span>    serverSource.updateFlushOutputSize(fileSize);<a name="line.152"></a>
-<span class="sourceLineNo">153</span>  }<a name="line.153"></a>
-<span class="sourceLineNo">154</span><a name="line.154"></a>
-<span class="sourceLineNo">155</span>  public void updateCompaction(boolean isMajor, long t, int inputFileCount, int outputFileCount,<a name="line.155"></a>
-<span class="sourceLineNo">156</span>      long inputBytes, long outputBytes) {<a name="line.156"></a>
-<span class="sourceLineNo">157</span>    serverSource.updateCompactionTime(isMajor, t);<a name="line.157"></a>
-<span class="sourceLineNo">158</span>    serverSource.updateCompactionInputFileCount(isMajor, inputFileCount);<a name="line.158"></a>
-<span class="sourceLineNo">159</span>    serverSource.updateCompactionOutputFileCount(isMajor, outputFileCount);<a name="line.159"></a>
-<span class="sourceLineNo">160</span>    serverSource.updateCompactionInputSize(isMajor, inputBytes);<a name="line.160"></a>
-<span class="sourceLineNo">161</span>    serverSource.updateCompactionOutputSize(isMajor, outputBytes);<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>  public void updateBulkLoad(long millis) {<a name="line.164"></a>
-<span class="sourceLineNo">165</span>    this.bulkLoadTimer.updateMillis(millis);<a name="line.165"></a>
-<span class="sourceLineNo">166</span>  }<a name="line.166"></a>
-<span class="sourceLineNo">167</span>}<a name="line.167"></a>
+<span class="sourceLineNo">122</span>    if (t &gt; 1000) {<a name="line.122"></a>
+<span class="sourceLineNo">123</span>      serverSource.incrSlowDelete();<a name="line.123"></a>
+<span class="sourceLineNo">124</span>    }<a name="line.124"></a>
+<span class="sourceLineNo">125</span>    serverSource.updateDeleteBatch(t);<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>  public void updateCheckAndDelete(long t) {<a name="line.128"></a>
+<span class="sourceLineNo">129</span>    serverSource.updateCheckAndDelete(t);<a name="line.129"></a>
+<span class="sourceLineNo">130</span>  }<a name="line.130"></a>
+<span class="sourceLineNo">131</span><a name="line.131"></a>
+<span class="sourceLineNo">132</span>  public void updateCheckAndPut(long t) {<a name="line.132"></a>
+<span class="sourceLineNo">133</span>    serverSource.updateCheckAndPut(t);<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>  public void updateGet(TableName tn, long t) {<a name="line.136"></a>
+<span class="sourceLineNo">137</span>    if (tableMetrics != null &amp;&amp; tn != null) {<a name="line.137"></a>
+<span class="sourceLineNo">138</span>      tableMetrics.updateGet(tn, t);<a name="line.138"></a>
+<span class="sourceLineNo">139</span>    }<a name="line.139"></a>
+<span class="sourceLineNo">140</span>    if (t &gt; 1000) {<a name="line.140"></a>
+<span class="sourceLineNo">141</span>      serverSource.incrSlowGet();<a name="line.141"></a>
+<span class="sourceLineNo">142</span>    }<a name="line.142"></a>
+<span class="sourceLineNo">143</span>    serverSource.updateGet(t);<a name="line.143"></a>
+<span class="sourceLineNo">144</span>  }<a name="line.144"></a>
+<span class="sourceLineNo">145</span><a name="line.145"></a>
+<span class="sourceLineNo">146</span>  public void updateIncrement(TableName tn, long t) {<a name="line.146"></a>
+<span class="sourceLineNo">147</span>    if (tableMetrics != null &amp;&amp; tn != null) {<a name="line.147"></a>
+<span class="sourceLineNo">148</span>      tableMetrics.updateIncrement(tn, t);<a name="line.148"></a>
+<span class="sourceLineNo">149</span>    }<a name="line.149"></a>
+<span class="sourceLineNo">150</span>    if (t &gt; 1000) {<a name="line.150"></a>
+<span class="sourceLineNo">151</span>      serverSource.incrSlowIncrement();<a name="line.151"></a>
+<span class="sourceLineNo">152</span>    }<a name="line.152"></a>
+<span class="sourceLineNo">153</span>    serverSource.updateIncrement(t);<a name="line.153"></a>
+<span class="sourceLineNo">154</span>  }<a name="line.154"></a>
+<span class="sourceLineNo">155</span><a name="line.155"></a>
+<span class="sourceLineNo">156</span>  public void updateAppend(TableName tn, long t) {<a name="line.156"></a>
+<span class="sourceLineNo">157</span>    if (tableMetrics != null &amp;&amp; tn != null) {<a name="line.157"></a>
+<span class="sourceLineNo">158</span>      tableMetrics.updateAppend(tn, t);<a name="line.158"></a>
+<span class="sourceLineNo">159</span>    }<a name="line.159"></a>
+<span class="sourceLineNo">160</span>    if (t &gt; 1000) {<a name="line.160"></a>
+<span class="sourceLineNo">161</span>      serverSource.incrSlowAppend();<a name="line.161"></a>
+<span class="sourceLineNo">162</span>    }<a name="line.162"></a>
+<span class="sourceLineNo">163</span>    serverSource.updateAppend(t);<a name="line.163"></a>
+<span class="sourceLineNo">164</span>  }<a name="line.164"></a>
+<span class="sourceLineNo">165</span><a name="line.165"></a>
+<span class="sourceLineNo">166</span>  public void updateReplay(long t){<a name="line.166"></a>
+<span class="sourceLineNo">167</span>    serverSource.updateReplay(t);<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>  public void updateScanSize(TableName tn, long scanSize){<a name="line.170"></a>
+<span class="sourceLineNo">171</span>    if (tableMetrics != null &amp;&amp; tn != null) {<a name="line.171"></a>
+<span class="sourceLineNo">172</span>      tableMetrics.updateScanSize(tn, scanSize);<a name="line.172"></a>
+<span class="sourceLineNo">173</span>    }<a name="line.173"></a>
+<span class="sourceLineNo">174</span>    serverSource.updateScanSize(scanSize);<a name="line.174"></a>
+<span class="sourceLineNo">175</span>  }<a name="line.175"></a>
+<span class="sourceLineNo">176</span><a name="line.176"></a>
+<span class="sourceLineNo">177</span>  public void updateScanTime(TableName tn, long t) {<a name="line.177"></a>
+<span class="sourceLineNo">178</span>    if (tableMetrics != null &amp;&amp; tn != null) {<a name="line.178"></a>
+<span class="sourceLineNo">179</span>      tableMetrics.updateScanTime(tn, t);<a name="line.179"></a>
+<span class="sourceLineNo">180</span>    }<a name="line.180"></a>
+<span class="sourceLineNo">181</span>    serverSource.updateScanTime(t);<a name="line.181"></a>
+<span class="sourceLineNo">182</span>  }<a name="line.182"></a>
+<span class="sourceLineNo">183</span><a name="line.183"></a>
+<span class="sourceLineNo">184</span>  public void updateSplitTime(long t) {<a name="line.184"></a>
+<span class="sourceLineNo">185</span>    serverSource.updateSplitTime(t);<a name="line.185"></a>
+<span class="sourceLineNo">186</span>  }<a name="line.186"></a>
+<span class="sourceLineNo">187</span><a name="line.187"></a>
+<span class="sourceLineNo">188</span>  public void incrSplitRequest() {<a name="line.188"></a>
+<span class="sourceLineNo">189</span>    serverSource.incrSplitRequest();<a name="line.189"></a>
+<span class="sourceLineNo">190</span>  }<a name="line.190"></a>
+<span class="sourceLineNo">191</span><a name="line.191"></a>
+<span class="sourceLineNo">192</span>  public void incrSplitSuccess() {<a name="line.192"></a>
+<span class="sourceLineNo">193</span>    serverSource.incrSplitSuccess();<a name="line.193"></a>
+<span class="sourceLineNo">194</span>  }<a name="line.194"></a>
+<span class="sourceLineNo">195</span><a name="line.195"></a>
+<span class="sourceLineNo">196</span>  public void updateFlush(long t, long memstoreSize, long fileSize) {<a name="line.196"></a>
+<span class="sourceLineNo">197</span>    serverSource.updateFlushTime(t);<a name="line.197"></a>
+<span class="sourceLineNo">198</span>    serverSource.updateFlushMemStoreSize(memstoreSize);<a name="line.198"></a>
+<span class="sourceLineNo">199</span>    serverSource.updateFlushOutputSize(fileSize);<a name="line.199"></a>
+<span class="sourceLineNo">200</span>  }<a name="line.200"></a>
+<span class="sourceLineNo">201</span><a name="line.201"></a>
+<span class="sourceLineNo">202</span>  public void updateCompaction(boolean isMajor, long t, int inputFileCount, int outputFileCount,<a name="line.202"></a>
+<span class="sourceLineNo">203</span>      long inputBytes, long outputBytes) {<a name="line.203"></a>
+<span class="sourceLineNo">204</span>    serverSource.updateCompactionTime(isMajor, t);<a name="line.204"></a>
+<span class="sourceLineNo">205</span>    serverSource.updateCompactionInputFileCount(isMajor, inputFileCount);<a name="line.205"></a>
+<span class="sourceLineNo">206</span>    serverSource.updateCompactionOutputFileCount(isMajor, outputFileCount);<a name="line.206"></a>
+<span class="sourceLineNo">207</span>    serverSource.updateCompactionInputSize(isMajor, inputBytes);<a name="line.207"></a>
+<span class="sourceLineNo">208</span>    serverSource.updateCompactionOutputSize(isMajor, outputBytes);<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>  public void updateBulkLoad(long millis) {<a name="line.211"></a>
+<span class="sourceLineNo">212</span>    this.bulkLoadTimer.updateMillis(millis);<a name="line.212"></a>
+<span class="sourceLineNo">213</span>  }<a name="line.213"></a>
+<span class="sourceLineNo">214</span>}<a name="line.214"></a>
 
 
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/29b27596/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/MetricsTableLatencies.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/MetricsTableLatencies.html b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/MetricsTableLatencies.html
new file mode 100644
index 0000000..d0d0df4
--- /dev/null
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/MetricsTableLatencies.html
@@ -0,0 +1,197 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+<title>Source code</title>
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<div class="sourceContainer">
+<pre><span class="sourceLineNo">001</span>/*<a name="line.1"></a>
+<span class="sourceLineNo">002</span> * Licensed to the Apache Software Foundation (ASF) under one or more<a name="line.2"></a>
+<span class="sourceLineNo">003</span> * contributor license agreements.  See the NOTICE file distributed with<a name="line.3"></a>
+<span class="sourceLineNo">004</span> * this work for additional information regarding copyright ownership.<a name="line.4"></a>
+<span class="sourceLineNo">005</span> * The ASF licenses this file to you under the Apache License, Version 2.0<a name="line.5"></a>
+<span class="sourceLineNo">006</span> * (the "License"); you may not use this file except in compliance with<a name="line.6"></a>
+<span class="sourceLineNo">007</span> * the License.  You may obtain a copy of the License at<a name="line.7"></a>
+<span class="sourceLineNo">008</span> *<a name="line.8"></a>
+<span class="sourceLineNo">009</span> * http://www.apache.org/licenses/LICENSE-2.0<a name="line.9"></a>
+<span class="sourceLineNo">010</span> *<a name="line.10"></a>
+<span class="sourceLineNo">011</span> * Unless required by applicable law or agreed to in writing, software<a name="line.11"></a>
+<span class="sourceLineNo">012</span> * distributed under the License is distributed on an "AS IS" BASIS,<a name="line.12"></a>
+<span class="sourceLineNo">013</span> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.<a name="line.13"></a>
+<span class="sourceLineNo">014</span> * See the License for the specific language governing permissions and<a name="line.14"></a>
+<span class="sourceLineNo">015</span> * limitations under the License.<a name="line.15"></a>
+<span class="sourceLineNo">016</span> */<a name="line.16"></a>
+<span class="sourceLineNo">017</span>package org.apache.hadoop.hbase.regionserver;<a name="line.17"></a>
+<span class="sourceLineNo">018</span><a name="line.18"></a>
+<span class="sourceLineNo">019</span>/**<a name="line.19"></a>
+<span class="sourceLineNo">020</span> * Latency metrics for a specific table in a RegionServer.<a name="line.20"></a>
+<span class="sourceLineNo">021</span> */<a name="line.21"></a>
+<span class="sourceLineNo">022</span>public interface MetricsTableLatencies {<a name="line.22"></a>
+<span class="sourceLineNo">023</span><a name="line.23"></a>
+<span class="sourceLineNo">024</span>  /**<a name="line.24"></a>
+<span class="sourceLineNo">025</span>   * The name of the metrics<a name="line.25"></a>
+<span class="sourceLineNo">026</span>   */<a name="line.26"></a>
+<span class="sourceLineNo">027</span>  String METRICS_NAME = "TableLatencies";<a name="line.27"></a>
+<span class="sourceLineNo">028</span><a name="line.28"></a>
+<span class="sourceLineNo">029</span>  /**<a name="line.29"></a>
+<span class="sourceLineNo">030</span>   * The name of the metrics context that metrics will be under.<a name="line.30"></a>
+<span class="sourceLineNo">031</span>   */<a name="line.31"></a>
+<span class="sourceLineNo">032</span>  String METRICS_CONTEXT = "regionserver";<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>   * Description<a name="line.35"></a>
+<span class="sourceLineNo">036</span>   */<a name="line.36"></a>
+<span class="sourceLineNo">037</span>  String METRICS_DESCRIPTION = "Metrics about Tables on a single HBase RegionServer";<a name="line.37"></a>
+<span class="sourceLineNo">038</span><a name="line.38"></a>
+<span class="sourceLineNo">039</span>  /**<a name="line.39"></a>
+<span class="sourceLineNo">040</span>   * The name of the metrics context that metrics will be under in jmx<a name="line.40"></a>
+<span class="sourceLineNo">041</span>   */<a name="line.41"></a>
+<span class="sourceLineNo">042</span>  String METRICS_JMX_CONTEXT = "RegionServer,sub=" + METRICS_NAME;<a name="line.42"></a>
+<span class="sourceLineNo">043</span><a name="line.43"></a>
+<span class="sourceLineNo">044</span>  String GET_TIME = "getTime";<a name="line.44"></a>
+<span class="sourceLineNo">045</span>  String SCAN_TIME = "scanTime";<a name="line.45"></a>
+<span class="sourceLineNo">046</span>  String SCAN_SIZE = "scanSize";<a name="line.46"></a>
+<span class="sourceLineNo">047</span>  String PUT_TIME = "putTime";<a name="line.47"></a>
+<span class="sourceLineNo">048</span>  String PUT_BATCH_TIME = "putBatchTime";<a name="line.48"></a>
+<span class="sourceLineNo">049</span>  String DELETE_TIME = "deleteTime";<a name="line.49"></a>
+<span class="sourceLineNo">050</span>  String DELETE_BATCH_TIME = "deleteBatchTime";<a name="line.50"></a>
+<span class="sourceLineNo">051</span>  String INCREMENT_TIME = "incrementTime";<a name="line.51"></a>
+<span class="sourceLineNo">052</span>  String APPEND_TIME = "appendTime";<a name="line.52"></a>
+<span class="sourceLineNo">053</span><a name="line.53"></a>
+<span class="sourceLineNo">054</span>  /**<a name="line.54"></a>
+<span class="sourceLineNo">055</span>   * Update the Put time histogram<a name="line.55"></a>
+<span class="sourceLineNo">056</span>   *<a name="line.56"></a>
+<span class="sourceLineNo">057</span>   * @param tableName The table the metric is for<a name="line.57"></a>
+<span class="sourceLineNo">058</span>   * @param t time it took<a name="line.58"></a>
+<span class="sourceLineNo">059</span>   */<a name="line.59"></a>
+<span class="sourceLineNo">060</span>  void updatePut(String tableName, long t);<a name="line.60"></a>
+<span class="sourceLineNo">061</span><a name="line.61"></a>
+<span class="sourceLineNo">062</span>  /**<a name="line.62"></a>
+<span class="sourceLineNo">063</span>   * Update the batch Put time histogram<a name="line.63"></a>
+<span class="sourceLineNo">064</span>   *<a name="line.64"></a>
+<span class="sourceLineNo">065</span>   * @param tableName The table the metric is for<a name="line.65"></a>
+<span class="sourceLineNo">066</span>   * @param t time it took<a name="line.66"></a>
+<span class="sourceLineNo">067</span>   */<a name="line.67"></a>
+<span class="sourceLineNo">068</span>  void updatePutBatch(String tableName, long t);<a name="line.68"></a>
+<span class="sourceLineNo">069</span><a name="line.69"></a>
+<span class="sourceLineNo">070</span>  /**<a name="line.70"></a>
+<span class="sourceLineNo">071</span>   * Update the Delete time histogram<a name="line.71"></a>
+<span class="sourceLineNo">072</span>   *<a name="line.72"></a>
+<span class="sourceLineNo">073</span>   * @param tableName The table the metric is for<a name="line.73"></a>
+<span class="sourceLineNo">074</span>   * @param t time it took<a name="line.74"></a>
+<span class="sourceLineNo">075</span>   */<a name="line.75"></a>
+<span class="sourceLineNo">076</span>  void updateDelete(String tableName, long t);<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>   * Update the batch Delete time histogram<a name="line.79"></a>
+<span class="sourceLineNo">080</span>   *<a name="line.80"></a>
+<span class="sourceLineNo">081</span>   * @param tableName The table the metric is for<a name="line.81"></a>
+<span class="sourceLineNo">082</span>   * @param t time it took<a name="line.82"></a>
+<span class="sourceLineNo">083</span>   */<a name="line.83"></a>
+<span class="sourceLineNo">084</span>  void updateDeleteBatch(String tableName, long t);<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>   * Update the Get time histogram .<a name="line.87"></a>
+<span class="sourceLineNo">088</span>   *<a name="line.88"></a>
+<span class="sourceLineNo">089</span>   * @param tableName The table the metric is for<a name="line.89"></a>
+<span class="sourceLineNo">090</span>   * @param t time it took<a name="line.90"></a>
+<span class="sourceLineNo">091</span>   */<a name="line.91"></a>
+<span class="sourceLineNo">092</span>  void updateGet(String tableName, long t);<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>   * Update the Increment time histogram.<a name="line.95"></a>
+<span class="sourceLineNo">096</span>   *<a name="line.96"></a>
+<span class="sourceLineNo">097</span>   * @param tableName The table the metric is for<a name="line.97"></a>
+<span class="sourceLineNo">098</span>   * @param t time it took<a name="line.98"></a>
+<span class="sourceLineNo">099</span>   */<a name="line.99"></a>
+<span class="sourceLineNo">100</span>  void updateIncrement(String tableName, long t);<a name="line.100"></a>
+<span class="sourceLineNo">101</span><a name="line.101"></a>
+<span class="sourceLineNo">102</span>  /**<a name="line.102"></a>
+<span class="sourceLineNo">103</span>   * Update the Append time histogram.<a name="line.103"></a>
+<span class="sourceLineNo">104</span>   *<a name="line.104"></a>
+<span class="sourceLineNo">105</span>   * @param tableName The table the metric is for<a name="line.105"></a>
+<span class="sourceLineNo">106</span>   * @param t time it took<a name="line.106"></a>
+<span class="sourceLineNo">107</span>   */<a name="line.107"></a>
+<span class="sourceLineNo">108</span>  void updateAppend(String tableName, long t);<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>   * Update the scan size.<a name="line.111"></a>
+<span class="sourceLineNo">112</span>   *<a name="line.112"></a>
+<span class="sourceLineNo">113</span>   * @param tableName The table the metric is for<a name="line.113"></a>
+<span class="sourceLineNo">114</span>   * @param scanSize size of the scan<a name="line.114"></a>
+<span class="sourceLineNo">115</span>   */<a name="line.115"></a>
+<span class="sourceLineNo">116</span>  void updateScanSize(String tableName, long scanSize);<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>   * Update the scan time.<a name="line.119"></a>
+<span class="sourceLineNo">120</span>   *<a name="line.120"></a>
+<span class="sourceLineNo">121</span>   * @param tableName The table the metric is for<a name="line.121"></a>
+<span class="sourceLineNo">122</span>   * @param t time it took<a name="line.122"></a>
+<span class="sourceLineNo">123</span>   */<a name="line.123"></a>
+<span class="sourceLineNo">124</span>  void updateScanTime(String tableName, long t);<a name="line.124"></a>
+<span class="sourceLineNo">125</span>}<a name="line.125"></a>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/29b27596/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/MetricsTableLatenciesImpl.TableHistograms.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/MetricsTableLatenciesImpl.TableHistograms.html b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/MetricsTableLatenciesImpl.TableHistograms.html
new file mode 100644
index 0000000..2da0bcf
--- /dev/null
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/MetricsTableLatenciesImpl.TableHistograms.html
@@ -0,0 +1,247 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+<title>Source code</title>
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<div class="sourceContainer">
+<pre><span class="sourceLineNo">001</span>/*<a name="line.1"></a>
+<span class="sourceLineNo">002</span> * Licensed to the Apache Software Foundation (ASF) under one or more<a name="line.2"></a>
+<span class="sourceLineNo">003</span> * contributor license agreements.  See the NOTICE file distributed with<a name="line.3"></a>
+<span class="sourceLineNo">004</span> * this work for additional information regarding copyright ownership.<a name="line.4"></a>
+<span class="sourceLineNo">005</span> * The ASF licenses this file to you under the Apache License, Version 2.0<a name="line.5"></a>
+<span class="sourceLineNo">006</span> * (the "License"); you may not use this file except in compliance with<a name="line.6"></a>
+<span class="sourceLineNo">007</span> * the License.  You may obtain a copy of the License at<a name="line.7"></a>
+<span class="sourceLineNo">008</span> *<a name="line.8"></a>
+<span class="sourceLineNo">009</span> * http://www.apache.org/licenses/LICENSE-2.0<a name="line.9"></a>
+<span class="sourceLineNo">010</span> *<a name="line.10"></a>
+<span class="sourceLineNo">011</span> * Unless required by applicable law or agreed to in writing, software<a name="line.11"></a>
+<span class="sourceLineNo">012</span> * distributed under the License is distributed on an "AS IS" BASIS,<a name="line.12"></a>
+<span class="sourceLineNo">013</span> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.<a name="line.13"></a>
+<span class="sourceLineNo">014</span> * See the License for the specific language governing permissions and<a name="line.14"></a>
+<span class="sourceLineNo">015</span> * limitations under the License.<a name="line.15"></a>
+<span class="sourceLineNo">016</span> */<a name="line.16"></a>
+<span class="sourceLineNo">017</span>package org.apache.hadoop.hbase.regionserver;<a name="line.17"></a>
+<span class="sourceLineNo">018</span><a name="line.18"></a>
+<span class="sourceLineNo">019</span>import java.util.HashMap;<a name="line.19"></a>
+<span class="sourceLineNo">020</span><a name="line.20"></a>
+<span class="sourceLineNo">021</span>import org.apache.hadoop.hbase.TableName;<a name="line.21"></a>
+<span class="sourceLineNo">022</span>import org.apache.hadoop.hbase.metrics.BaseSourceImpl;<a name="line.22"></a>
+<span class="sourceLineNo">023</span>import org.apache.hadoop.metrics2.MetricHistogram;<a name="line.23"></a>
+<span class="sourceLineNo">024</span>import org.apache.hadoop.metrics2.lib.DynamicMetricsRegistry;<a name="line.24"></a>
+<span class="sourceLineNo">025</span>import org.apache.yetus.audience.InterfaceAudience;<a name="line.25"></a>
+<span class="sourceLineNo">026</span><a name="line.26"></a>
+<span class="sourceLineNo">027</span>import com.google.common.annotations.VisibleForTesting;<a name="line.27"></a>
+<span class="sourceLineNo">028</span><a name="line.28"></a>
+<span class="sourceLineNo">029</span>/**<a name="line.29"></a>
+<span class="sourceLineNo">030</span> * Implementation of {@link MetricsTableLatencies} to track latencies for one table in a<a name="line.30"></a>
+<span class="sourceLineNo">031</span> * RegionServer.<a name="line.31"></a>
+<span class="sourceLineNo">032</span> */<a name="line.32"></a>
+<span class="sourceLineNo">033</span>@InterfaceAudience.Private<a name="line.33"></a>
+<span class="sourceLineNo">034</span>public class MetricsTableLatenciesImpl extends BaseSourceImpl implements MetricsTableLatencies {<a name="line.34"></a>
+<span class="sourceLineNo">035</span><a name="line.35"></a>
+<span class="sourceLineNo">036</span>  private final HashMap&lt;TableName,TableHistograms&gt; histogramsByTable = new HashMap&lt;&gt;();<a name="line.36"></a>
+<span class="sourceLineNo">037</span><a name="line.37"></a>
+<span class="sourceLineNo">038</span>  @VisibleForTesting<a name="line.38"></a>
+<span class="sourceLineNo">039</span>  public static class TableHistograms {<a name="line.39"></a>
+<span class="sourceLineNo">040</span>    final MetricHistogram getTimeHisto;<a name="line.40"></a>
+<span class="sourceLineNo">041</span>    final MetricHistogram incrementTimeHisto;<a name="line.41"></a>
+<span class="sourceLineNo">042</span>    final MetricHistogram appendTimeHisto;<a name="line.42"></a>
+<span class="sourceLineNo">043</span>    final MetricHistogram putTimeHisto;<a name="line.43"></a>
+<span class="sourceLineNo">044</span>    final MetricHistogram putBatchTimeHisto;<a name="line.44"></a>
+<span class="sourceLineNo">045</span>    final MetricHistogram deleteTimeHisto;<a name="line.45"></a>
+<span class="sourceLineNo">046</span>    final MetricHistogram deleteBatchTimeHisto;<a name="line.46"></a>
+<span class="sourceLineNo">047</span>    final MetricHistogram scanTimeHisto;<a name="line.47"></a>
+<span class="sourceLineNo">048</span>    final MetricHistogram scanSizeHisto;<a name="line.48"></a>
+<span class="sourceLineNo">049</span><a name="line.49"></a>
+<span class="sourceLineNo">050</span>    TableHistograms(DynamicMetricsRegistry registry, TableName tn) {<a name="line.50"></a>
+<span class="sourceLineNo">051</span>      getTimeHisto = registry.newTimeHistogram(qualifyMetricsName(tn, GET_TIME));<a name="line.51"></a>
+<span class="sourceLineNo">052</span>      incrementTimeHisto = registry.newTimeHistogram(<a name="line.52"></a>
+<span class="sourceLineNo">053</span>          qualifyMetricsName(tn, INCREMENT_TIME));<a name="line.53"></a>
+<span class="sourceLineNo">054</span>      appendTimeHisto = registry.newTimeHistogram(qualifyMetricsName(tn, APPEND_TIME));<a name="line.54"></a>
+<span class="sourceLineNo">055</span>      putTimeHisto = registry.newTimeHistogram(qualifyMetricsName(tn, PUT_TIME));<a name="line.55"></a>
+<span class="sourceLineNo">056</span>      putBatchTimeHisto = registry.newTimeHistogram(qualifyMetricsName(tn, PUT_BATCH_TIME));<a name="line.56"></a>
+<span class="sourceLineNo">057</span>      deleteTimeHisto = registry.newTimeHistogram(qualifyMetricsName(tn, DELETE_TIME));<a name="line.57"></a>
+<span class="sourceLineNo">058</span>      deleteBatchTimeHisto = registry.newTimeHistogram(<a name="line.58"></a>
+<span class="sourceLineNo">059</span>          qualifyMetricsName(tn, DELETE_BATCH_TIME));<a name="line.59"></a>
+<span class="sourceLineNo">060</span>      scanTimeHisto = registry.newTimeHistogram(qualifyMetricsName(tn, SCAN_TIME));<a name="line.60"></a>
+<span class="sourceLineNo">061</span>      scanSizeHisto = registry.newSizeHistogram(qualifyMetricsName(tn, SCAN_SIZE));<a name="line.61"></a>
+<span class="sourceLineNo">062</span>    }<a name="line.62"></a>
+<span class="sourceLineNo">063</span><a name="line.63"></a>
+<span class="sourceLineNo">064</span>    public void updatePut(long time) {<a name="line.64"></a>
+<span class="sourceLineNo">065</span>      putTimeHisto.add(time);<a name="line.65"></a>
+<span class="sourceLineNo">066</span>    }<a name="line.66"></a>
+<span class="sourceLineNo">067</span><a name="line.67"></a>
+<span class="sourceLineNo">068</span>    public void updatePutBatch(long time) {<a name="line.68"></a>
+<span class="sourceLineNo">069</span>      putBatchTimeHisto.add(time);<a name="line.69"></a>
+<span class="sourceLineNo">070</span>    }<a name="line.70"></a>
+<span class="sourceLineNo">071</span><a name="line.71"></a>
+<span class="sourceLineNo">072</span>    public void updateDelete(long t) {<a name="line.72"></a>
+<span class="sourceLineNo">073</span>      deleteTimeHisto.add(t);<a name="line.73"></a>
+<span class="sourceLineNo">074</span>    }<a name="line.74"></a>
+<span class="sourceLineNo">075</span><a name="line.75"></a>
+<span class="sourceLineNo">076</span>    public void updateDeleteBatch(long t) {<a name="line.76"></a>
+<span class="sourceLineNo">077</span>      deleteBatchTimeHisto.add(t);<a name="line.77"></a>
+<span class="sourceLineNo">078</span>    }<a name="line.78"></a>
+<span class="sourceLineNo">079</span><a name="line.79"></a>
+<span class="sourceLineNo">080</span>    public void updateGet(long t) {<a name="line.80"></a>
+<span class="sourceLineNo">081</span>      getTimeHisto.add(t);<a name="line.81"></a>
+<span class="sourceLineNo">082</span>    }<a name="line.82"></a>
+<span class="sourceLineNo">083</span><a name="line.83"></a>
+<span class="sourceLineNo">084</span>    public void updateIncrement(long t) {<a name="line.84"></a>
+<span class="sourceLineNo">085</span>      incrementTimeHisto.add(t);<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>    public void updateAppend(long t) {<a name="line.88"></a>
+<span class="sourceLineNo">089</span>      appendTimeHisto.add(t);<a name="line.89"></a>
+<span class="sourceLineNo">090</span>    }<a name="line.90"></a>
+<span class="sourceLineNo">091</span><a name="line.91"></a>
+<span class="sourceLineNo">092</span>    public void updateScanSize(long scanSize) {<a name="line.92"></a>
+<span class="sourceLineNo">093</span>      scanSizeHisto.add(scanSize);<a name="line.93"></a>
+<span class="sourceLineNo">094</span>    }<a name="line.94"></a>
+<span class="sourceLineNo">095</span><a name="line.95"></a>
+<span class="sourceLineNo">096</span>    public void updateScanTime(long t) {<a name="line.96"></a>
+<span class="sourceLineNo">097</span>      scanTimeHisto.add(t);<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>  @VisibleForTesting<a name="line.101"></a>
+<span class="sourceLineNo">102</span>  public static String qualifyMetricsName(TableName tableName, String metric) {<a name="line.102"></a>
+<span class="sourceLineNo">103</span>    StringBuilder sb = new StringBuilder();<a name="line.103"></a>
+<span class="sourceLineNo">104</span>    sb.append("Namespace_").append(tableName.getNamespaceAsString());<a name="line.104"></a>
+<span class="sourceLineNo">105</span>    sb.append("_table_").append(tableName.getQualifierAsString());<a name="line.105"></a>
+<span class="sourceLineNo">106</span>    sb.append("_metric_").append(metric);<a name="line.106"></a>
+<span class="sourceLineNo">107</span>    return sb.toString();<a name="line.107"></a>
+<span class="sourceLineNo">108</span>  }<a name="line.108"></a>
+<span class="sourceLineNo">109</span><a name="line.109"></a>
+<span class="sourceLineNo">110</span>  @VisibleForTesting<a name="line.110"></a>
+<span class="sourceLineNo">111</span>  public TableHistograms getOrCreateTableHistogram(String tableName) {<a name="line.111"></a>
+<span class="sourceLineNo">112</span>    // TODO Java8's ConcurrentHashMap#computeIfAbsent would be stellar instead<a name="line.112"></a>
+<span class="sourceLineNo">113</span>    final TableName tn = TableName.valueOf(tableName);<a name="line.113"></a>
+<span class="sourceLineNo">114</span>    TableHistograms latency = histogramsByTable.get(tn);<a name="line.114"></a>
+<span class="sourceLineNo">115</span>    if (latency == null) {<a name="line.115"></a>
+<span class="sourceLineNo">116</span>      latency = new TableHistograms(getMetricsRegistry(), tn);<a name="line.116"></a>
+<span class="sourceLineNo">117</span>      histogramsByTable.put(tn, latency);<a name="line.117"></a>
+<span class="sourceLineNo">118</span>    }<a name="line.118"></a>
+<span class="sourceLineNo">119</span>    return latency;<a name="line.119"></a>
+<span class="sourceLineNo">120</span>  }<a name="line.120"></a>
+<span class="sourceLineNo">121</span><a name="line.121"></a>
+<span class="sourceLineNo">122</span>  public MetricsTableLatenciesImpl() {<a name="line.122"></a>
+<span class="sourceLineNo">123</span>    this(METRICS_NAME, METRICS_DESCRIPTION, METRICS_CONTEXT, METRICS_JMX_CONTEXT);<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>  public MetricsTableLatenciesImpl(String metricsName, String metricsDescription,<a name="line.126"></a>
+<span class="sourceLineNo">127</span>      String metricsContext, String metricsJmxContext) {<a name="line.127"></a>
+<span class="sourceLineNo">128</span>    super(metricsName, metricsDescription, metricsContext, metricsJmxContext);<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>  @Override<a name="line.131"></a>
+<span class="sourceLineNo">132</span>  public void updatePut(String tableName, long t) {<a name="line.132"></a>
+<span class="sourceLineNo">133</span>    getOrCreateTableHistogram(tableName).updatePut(t);<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>  @Override<a name="line.136"></a>
+<span class="sourceLineNo">137</span>  public void updatePutBatch(String tableName, long t) {<a name="line.137"></a>
+<span class="sourceLineNo">138</span>    getOrCreateTableHistogram(tableName).updatePutBatch(t);<a name="line.138"></a>
+<span class="sourceLineNo">139</span>  }<a name="line.139"></a>
+<span class="sourceLineNo">140</span><a name="line.140"></a>
+<span class="sourceLineNo">141</span>  @Override<a name="line.141"></a>
+<span class="sourceLineNo">142</span>  public void updateDelete(String tableName, long t) {<a name="line.142"></a>
+<span class="sourceLineNo">143</span>    getOrCreateTableHistogram(tableName).updateDelete(t);<a name="line.143"></a>
+<span class="sourceLineNo">144</span>  }<a name="line.144"></a>
+<span class="sourceLineNo">145</span><a name="line.145"></a>
+<span class="sourceLineNo">146</span>  @Override<a name="line.146"></a>
+<span class="sourceLineNo">147</span>  public void updateDeleteBatch(String tableName, long t) {<a name="line.147"></a>
+<span class="sourceLineNo">148</span>    getOrCreateTableHistogram(tableName).updateDeleteBatch(t);<a name="line.148"></a>
+<span class="sourceLineNo">149</span>  }<a name="line.149"></a>
+<span class="sourceLineNo">150</span><a name="line.150"></a>
+<span class="sourceLineNo">151</span>  @Override<a name="line.151"></a>
+<span class="sourceLineNo">152</span>  public void updateGet(String tableName, long t) {<a name="line.152"></a>
+<span class="sourceLineNo">153</span>    getOrCreateTableHistogram(tableName).updateGet(t);<a name="line.153"></a>
+<span class="sourceLineNo">154</span>  }<a name="line.154"></a>
+<span class="sourceLineNo">155</span><a name="line.155"></a>
+<span class="sourceLineNo">156</span>  @Override<a name="line.156"></a>
+<span class="sourceLineNo">157</span>  public void updateIncrement(String tableName, long t) {<a name="line.157"></a>
+<span class="sourceLineNo">158</span>    getOrCreateTableHistogram(tableName).updateIncrement(t);<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>  @Override<a name="line.161"></a>
+<span class="sourceLineNo">162</span>  public void updateAppend(String tableName, long t) {<a name="line.162"></a>
+<span class="sourceLineNo">163</span>    getOrCreateTableHistogram(tableName).updateAppend(t);<a name="line.163"></a>
+<span class="sourceLineNo">164</span>  }<a name="line.164"></a>
+<span class="sourceLineNo">165</span><a name="line.165"></a>
+<span class="sourceLineNo">166</span>  @Override<a name="line.166"></a>
+<span class="sourceLineNo">167</span>  public void updateScanSize(String tableName, long scanSize) {<a name="line.167"></a>
+<span class="sourceLineNo">168</span>    getOrCreateTableHistogram(tableName).updateScanSize(scanSize);<a name="line.168"></a>
+<span class="sourceLineNo">169</span>  }<a name="line.169"></a>
+<span class="sourceLineNo">170</span><a name="line.170"></a>
+<span class="sourceLineNo">171</span>  @Override<a name="line.171"></a>
+<span class="sourceLineNo">172</span>  public void updateScanTime(String tableName, long t) {<a name="line.172"></a>
+<span class="sourceLineNo">173</span>    getOrCreateTableHistogram(tableName).updateScanTime(t);<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>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/29b27596/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/MetricsTableLatenciesImpl.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/MetricsTableLatenciesImpl.html b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/MetricsTableLatenciesImpl.html
new file mode 100644
index 0000000..2da0bcf
--- /dev/null
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/MetricsTableLatenciesImpl.html
@@ -0,0 +1,247 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+<title>Source code</title>
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+</head>
+<body>
+<div class="sourceContainer">
+<pre><span class="sourceLineNo">001</span>/*<a name="line.1"></a>
+<span class="sourceLineNo">002</span> * Licensed to the Apache Software Foundation (ASF) under one or more<a name="line.2"></a>
+<span class="sourceLineNo">003</span> * contributor license agreements.  See the NOTICE file distributed with<a name="line.3"></a>
+<span class="sourceLineNo">004</span> * this work for additional information regarding copyright ownership.<a name="line.4"></a>
+<span class="sourceLineNo">005</span> * The ASF licenses this file to you under the Apache License, Version 2.0<a name="line.5"></a>
+<span class="sourceLineNo">006</span> * (the "License"); you may not use this file except in compliance with<a name="line.6"></a>
+<span class="sourceLineNo">007</span> * the License.  You may obtain a copy of the License at<a name="line.7"></a>
+<span class="sourceLineNo">008</span> *<a name="line.8"></a>
+<span class="sourceLineNo">009</span> * http://www.apache.org/licenses/LICENSE-2.0<a name="line.9"></a>
+<span class="sourceLineNo">010</span> *<a name="line.10"></a>
+<span class="sourceLineNo">011</span> * Unless required by applicable law or agreed to in writing, software<a name="line.11"></a>
+<span class="sourceLineNo">012</span> * distributed under the License is distributed on an "AS IS" BASIS,<a name="line.12"></a>
+<span class="sourceLineNo">013</span> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.<a name="line.13"></a>
+<span class="sourceLineNo">014</span> * See the License for the specific language governing permissions and<a name="line.14"></a>
+<span class="sourceLineNo">015</span> * limitations under the License.<a name="line.15"></a>
+<span class="sourceLineNo">016</span> */<a name="line.16"></a>
+<span class="sourceLineNo">017</span>package org.apache.hadoop.hbase.regionserver;<a name="line.17"></a>
+<span class="sourceLineNo">018</span><a name="line.18"></a>
+<span class="sourceLineNo">019</span>import java.util.HashMap;<a name="line.19"></a>
+<span class="sourceLineNo">020</span><a name="line.20"></a>
+<span class="sourceLineNo">021</span>import org.apache.hadoop.hbase.TableName;<a name="line.21"></a>
+<span class="sourceLineNo">022</span>import org.apache.hadoop.hbase.metrics.BaseSourceImpl;<a name="line.22"></a>
+<span class="sourceLineNo">023</span>import org.apache.hadoop.metrics2.MetricHistogram;<a name="line.23"></a>
+<span class="sourceLineNo">024</span>import org.apache.hadoop.metrics2.lib.DynamicMetricsRegistry;<a name="line.24"></a>
+<span class="sourceLineNo">025</span>import org.apache.yetus.audience.InterfaceAudience;<a name="line.25"></a>
+<span class="sourceLineNo">026</span><a name="line.26"></a>
+<span class="sourceLineNo">027</span>import com.google.common.annotations.VisibleForTesting;<a name="line.27"></a>
+<span class="sourceLineNo">028</span><a name="line.28"></a>
+<span class="sourceLineNo">029</span>/**<a name="line.29"></a>
+<span class="sourceLineNo">030</span> * Implementation of {@link MetricsTableLatencies} to track latencies for one table in a<a name="line.30"></a>
+<span class="sourceLineNo">031</span> * RegionServer.<a name="line.31"></a>
+<span class="sourceLineNo">032</span> */<a name="line.32"></a>
+<span class="sourceLineNo">033</span>@InterfaceAudience.Private<a name="line.33"></a>
+<span class="sourceLineNo">034</span>public class MetricsTableLatenciesImpl extends BaseSourceImpl implements MetricsTableLatencies {<a name="line.34"></a>
+<span class="sourceLineNo">035</span><a name="line.35"></a>
+<span class="sourceLineNo">036</span>  private final HashMap&lt;TableName,TableHistograms&gt; histogramsByTable = new HashMap&lt;&gt;();<a name="line.36"></a>
+<span class="sourceLineNo">037</span><a name="line.37"></a>
+<span class="sourceLineNo">038</span>  @VisibleForTesting<a name="line.38"></a>
+<span class="sourceLineNo">039</span>  public static class TableHistograms {<a name="line.39"></a>
+<span class="sourceLineNo">040</span>    final MetricHistogram getTimeHisto;<a name="line.40"></a>
+<span class="sourceLineNo">041</span>    final MetricHistogram incrementTimeHisto;<a name="line.41"></a>
+<span class="sourceLineNo">042</span>    final MetricHistogram appendTimeHisto;<a name="line.42"></a>
+<span class="sourceLineNo">043</span>    final MetricHistogram putTimeHisto;<a name="line.43"></a>
+<span class="sourceLineNo">044</span>    final MetricHistogram putBatchTimeHisto;<a name="line.44"></a>
+<span class="sourceLineNo">045</span>    final MetricHistogram deleteTimeHisto;<a name="line.45"></a>
+<span class="sourceLineNo">046</span>    final MetricHistogram deleteBatchTimeHisto;<a name="line.46"></a>
+<span class="sourceLineNo">047</span>    final MetricHistogram scanTimeHisto;<a name="line.47"></a>
+<span class="sourceLineNo">048</span>    final MetricHistogram scanSizeHisto;<a name="line.48"></a>
+<span class="sourceLineNo">049</span><a name="line.49"></a>
+<span class="sourceLineNo">050</span>    TableHistograms(DynamicMetricsRegistry registry, TableName tn) {<a name="line.50"></a>
+<span class="sourceLineNo">051</span>      getTimeHisto = registry.newTimeHistogram(qualifyMetricsName(tn, GET_TIME));<a name="line.51"></a>
+<span class="sourceLineNo">052</span>      incrementTimeHisto = registry.newTimeHistogram(<a name="line.52"></a>
+<span class="sourceLineNo">053</span>          qualifyMetricsName(tn, INCREMENT_TIME));<a name="line.53"></a>
+<span class="sourceLineNo">054</span>      appendTimeHisto = registry.newTimeHistogram(qualifyMetricsName(tn, APPEND_TIME));<a name="line.54"></a>
+<span class="sourceLineNo">055</span>      putTimeHisto = registry.newTimeHistogram(qualifyMetricsName(tn, PUT_TIME));<a name="line.55"></a>
+<span class="sourceLineNo">056</span>      putBatchTimeHisto = registry.newTimeHistogram(qualifyMetricsName(tn, PUT_BATCH_TIME));<a name="line.56"></a>
+<span class="sourceLineNo">057</span>      deleteTimeHisto = registry.newTimeHistogram(qualifyMetricsName(tn, DELETE_TIME));<a name="line.57"></a>
+<span class="sourceLineNo">058</span>      deleteBatchTimeHisto = registry.newTimeHistogram(<a name="line.58"></a>
+<span class="sourceLineNo">059</span>          qualifyMetricsName(tn, DELETE_BATCH_TIME));<a name="line.59"></a>
+<span class="sourceLineNo">060</span>      scanTimeHisto = registry.newTimeHistogram(qualifyMetricsName(tn, SCAN_TIME));<a name="line.60"></a>
+<span class="sourceLineNo">061</span>      scanSizeHisto = registry.newSizeHistogram(qualifyMetricsName(tn, SCAN_SIZE));<a name="line.61"></a>
+<span class="sourceLineNo">062</span>    }<a name="line.62"></a>
+<span class="sourceLineNo">063</span><a name="line.63"></a>
+<span class="sourceLineNo">064</span>    public void updatePut(long time) {<a name="line.64"></a>
+<span class="sourceLineNo">065</span>      putTimeHisto.add(time);<a name="line.65"></a>
+<span class="sourceLineNo">066</span>    }<a name="line.66"></a>
+<span class="sourceLineNo">067</span><a name="line.67"></a>
+<span class="sourceLineNo">068</span>    public void updatePutBatch(long time) {<a name="line.68"></a>
+<span class="sourceLineNo">069</span>      putBatchTimeHisto.add(time);<a name="line.69"></a>
+<span class="sourceLineNo">070</span>    }<a name="line.70"></a>
+<span class="sourceLineNo">071</span><a name="line.71"></a>
+<span class="sourceLineNo">072</span>    public void updateDelete(long t) {<a name="line.72"></a>
+<span class="sourceLineNo">073</span>      deleteTimeHisto.add(t);<a name="line.73"></a>
+<span class="sourceLineNo">074</span>    }<a name="line.74"></a>
+<span class="sourceLineNo">075</span><a name="line.75"></a>
+<span class="sourceLineNo">076</span>    public void updateDeleteBatch(long t) {<a name="line.76"></a>
+<span class="sourceLineNo">077</span>      deleteBatchTimeHisto.add(t);<a name="line.77"></a>
+<span class="sourceLineNo">078</span>    }<a name="line.78"></a>
+<span class="sourceLineNo">079</span><a name="line.79"></a>
+<span class="sourceLineNo">080</span>    public void updateGet(long t) {<a name="line.80"></a>
+<span class="sourceLineNo">081</span>      getTimeHisto.add(t);<a name="line.81"></a>
+<span class="sourceLineNo">082</span>    }<a name="line.82"></a>
+<span class="sourceLineNo">083</span><a name="line.83"></a>
+<span class="sourceLineNo">084</span>    public void updateIncrement(long t) {<a name="line.84"></a>
+<span class="sourceLineNo">085</span>      incrementTimeHisto.add(t);<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>    public void updateAppend(long t) {<a name="line.88"></a>
+<span class="sourceLineNo">089</span>      appendTimeHisto.add(t);<a name="line.89"></a>
+<span class="sourceLineNo">090</span>    }<a name="line.90"></a>
+<span class="sourceLineNo">091</span><a name="line.91"></a>
+<span class="sourceLineNo">092</span>    public void updateScanSize(long scanSize) {<a name="line.92"></a>
+<span class="sourceLineNo">093</span>      scanSizeHisto.add(scanSize);<a name="line.93"></a>
+<span class="sourceLineNo">094</span>    }<a name="line.94"></a>
+<span class="sourceLineNo">095</span><a name="line.95"></a>
+<span class="sourceLineNo">096</span>    public void updateScanTime(long t) {<a name="line.96"></a>
+<span class="sourceLineNo">097</span>      scanTimeHisto.add(t);<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>  @VisibleForTesting<a name="line.101"></a>
+<span class="sourceLineNo">102</span>  public static String qualifyMetricsName(TableName tableName, String metric) {<a name="line.102"></a>
+<span class="sourceLineNo">103</span>    StringBuilder sb = new StringBuilder();<a name="line.103"></a>
+<span class="sourceLineNo">104</span>    sb.append("Namespace_").append(tableName.getNamespaceAsString());<a name="line.104"></a>
+<span class="sourceLineNo">105</span>    sb.append("_table_").append(tableName.getQualifierAsString());<a name="line.105"></a>
+<span class="sourceLineNo">106</span>    sb.append("_metric_").append(metric);<a name="line.106"></a>
+<span class="sourceLineNo">107</span>    return sb.toString();<a name="line.107"></a>
+<span class="sourceLineNo">108</span>  }<a name="line.108"></a>
+<span class="sourceLineNo">109</span><a name="line.109"></a>
+<span class="sourceLineNo">110</span>  @VisibleForTesting<a name="line.110"></a>
+<span class="sourceLineNo">111</span>  public TableHistograms getOrCreateTableHistogram(String tableName) {<a name="line.111"></a>
+<span class="sourceLineNo">112</span>    // TODO Java8's ConcurrentHashMap#computeIfAbsent would be stellar instead<a name="line.112"></a>
+<span class="sourceLineNo">113</span>    final TableName tn = TableName.valueOf(tableName);<a name="line.113"></a>
+<span class="sourceLineNo">114</span>    TableHistograms latency = histogramsByTable.get(tn);<a name="line.114"></a>
+<span class="sourceLineNo">115</span>    if (latency == null) {<a name="line.115"></a>
+<span class="sourceLineNo">116</span>      latency = new TableHistograms(getMetricsRegistry(), tn);<a name="line.116"></a>
+<span class="sourceLineNo">117</span>      histogramsByTable.put(tn, latency);<a name="line.117"></a>
+<span class="sourceLineNo">118</span>    }<a name="line.118"></a>
+<span class="sourceLineNo">119</span>    return latency;<a name="line.119"></a>
+<span class="sourceLineNo">120</span>  }<a name="line.120"></a>
+<span class="sourceLineNo">121</span><a name="line.121"></a>
+<span class="sourceLineNo">122</span>  public MetricsTableLatenciesImpl() {<a name="line.122"></a>
+<span class="sourceLineNo">123</span>    this(METRICS_NAME, METRICS_DESCRIPTION, METRICS_CONTEXT, METRICS_JMX_CONTEXT);<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>  public MetricsTableLatenciesImpl(String metricsName, String metricsDescription,<a name="line.126"></a>
+<span class="sourceLineNo">127</span>      String metricsContext, String metricsJmxContext) {<a name="line.127"></a>
+<span class="sourceLineNo">128</span>    super(metricsName, metricsDescription, metricsContext, metricsJmxContext);<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>  @Override<a name="line.131"></a>
+<span class="sourceLineNo">132</span>  public void updatePut(String tableName, long t) {<a name="line.132"></a>
+<span class="sourceLineNo">133</span>    getOrCreateTableHistogram(tableName).updatePut(t);<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>  @Override<a name="line.136"></a>
+<span class="sourceLineNo">137</span>  public void updatePutBatch(String tableName, long t) {<a name="line.137"></a>
+<span class="sourceLineNo">138</span>    getOrCreateTableHistogram(tableName).updatePutBatch(t);<a name="line.138"></a>
+<span class="sourceLineNo">139</span>  }<a name="line.139"></a>
+<span class="sourceLineNo">140</span><a name="line.140"></a>
+<span class="sourceLineNo">141</span>  @Override<a name="line.141"></a>
+<span class="sourceLineNo">142</span>  public void updateDelete(String tableName, long t) {<a name="line.142"></a>
+<span class="sourceLineNo">143</span>    getOrCreateTableHistogram(tableName).updateDelete(t);<a name="line.143"></a>
+<span class="sourceLineNo">144</span>  }<a name="line.144"></a>
+<span class="sourceLineNo">145</span><a name="line.145"></a>
+<span class="sourceLineNo">146</span>  @Override<a name="line.146"></a>
+<span class="sourceLineNo">147</span>  public void updateDeleteBatch(String tableName, long t) {<a name="line.147"></a>
+<span class="sourceLineNo">148</span>    getOrCreateTableHistogram(tableName).updateDeleteBatch(t);<a name="line.148"></a>
+<span class="sourceLineNo">149</span>  }<a name="line.149"></a>
+<span class="sourceLineNo">150</span><a name="line.150"></a>
+<span class="sourceLineNo">151</span>  @Override<a name="line.151"></a>
+<span class="sourceLineNo">152</span>  public void updateGet(String tableName, long t) {<a name="line.152"></a>
+<span class="sourceLineNo">153</span>    getOrCreateTableHistogram(tableName).updateGet(t);<a name="line.153"></a>
+<span class="sourceLineNo">154</span>  }<a name="line.154"></a>
+<span class="sourceLineNo">155</span><a name="line.155"></a>
+<span class="sourceLineNo">156</span>  @Override<a name="line.156"></a>
+<span class="sourceLineNo">157</span>  public void updateIncrement(String tableName, long t) {<a name="line.157"></a>
+<span class="sourceLineNo">158</span>    getOrCreateTableHistogram(tableName).updateIncrement(t);<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>  @Override<a name="line.161"></a>
+<span class="sourceLineNo">162</span>  public void updateAppend(String tableName, long t) {<a name="line.162"></a>
+<span class="sourceLineNo">163</span>    getOrCreateTableHistogram(tableName).updateAppend(t);<a name="line.163"></a>
+<span class="sourceLineNo">164</span>  }<a name="line.164"></a>
+<span class="sourceLineNo">165</span><a name="line.165"></a>
+<span class="sourceLineNo">166</span>  @Override<a name="line.166"></a>
+<span class="sourceLineNo">167</span>  public void updateScanSize(String tableName, long scanSize) {<a name="line.167"></a>
+<span class="sourceLineNo">168</span>    getOrCreateTableHistogram(tableName).updateScanSize(scanSize);<a name="line.168"></a>
+<span class="sourceLineNo">169</span>  }<a name="line.169"></a>
+<span class="sourceLineNo">170</span><a name="line.170"></a>
+<span class="sourceLineNo">171</span>  @Override<a name="line.171"></a>
+<span class="sourceLineNo">172</span>  public void updateScanTime(String tableName, long t) {<a name="line.172"></a>
+<span class="sourceLineNo">173</span>    getOrCreateTableHistogram(tableName).updateScanTime(t);<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>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</pre>
+</div>
+</body>
+</html>


[03/32] hbase-site git commit: Published site at .

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/29b27596/hbase-build-configuration/mail-lists.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/mail-lists.html b/hbase-build-configuration/mail-lists.html
index 834b0c2..72d065f 100644
--- a/hbase-build-configuration/mail-lists.html
+++ b/hbase-build-configuration/mail-lists.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="20171201" />
+    <meta name="Date-Revision-yyyymmdd" content="20171202" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Build Configuration &#x2013; Project Mailing Lists</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -176,7 +176,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-02</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/29b27596/hbase-build-configuration/plugin-management.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/plugin-management.html b/hbase-build-configuration/plugin-management.html
index 498c9c3..96e061e 100644
--- a/hbase-build-configuration/plugin-management.html
+++ b/hbase-build-configuration/plugin-management.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="20171201" />
+    <meta name="Date-Revision-yyyymmdd" content="20171202" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Build Configuration &#x2013; Project Plugin Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -271,7 +271,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-02</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/29b27596/hbase-build-configuration/plugins.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/plugins.html b/hbase-build-configuration/plugins.html
index fad1cda..3a33e70 100644
--- a/hbase-build-configuration/plugins.html
+++ b/hbase-build-configuration/plugins.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="20171201" />
+    <meta name="Date-Revision-yyyymmdd" content="20171202" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Build Configuration &#x2013; Project Plugins</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -214,7 +214,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-02</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/29b27596/hbase-build-configuration/project-info.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/project-info.html b/hbase-build-configuration/project-info.html
index 1f59ca8..7c43226 100644
--- a/hbase-build-configuration/project-info.html
+++ b/hbase-build-configuration/project-info.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="20171201" />
+    <meta name="Date-Revision-yyyymmdd" content="20171202" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Build Configuration &#x2013; Project Information</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -167,7 +167,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-02</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/29b27596/hbase-build-configuration/project-summary.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/project-summary.html b/hbase-build-configuration/project-summary.html
index f3b4899..43c1d1a 100644
--- a/hbase-build-configuration/project-summary.html
+++ b/hbase-build-configuration/project-summary.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="20171201" />
+    <meta name="Date-Revision-yyyymmdd" content="20171202" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Build Configuration &#x2013; Project Summary</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -163,7 +163,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-02</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/29b27596/hbase-build-configuration/source-repository.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/source-repository.html b/hbase-build-configuration/source-repository.html
index 3505a9d..73ae114 100644
--- a/hbase-build-configuration/source-repository.html
+++ b/hbase-build-configuration/source-repository.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="20171201" />
+    <meta name="Date-Revision-yyyymmdd" content="20171202" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Build Configuration &#x2013; Source Code Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -134,7 +134,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-02</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/29b27596/hbase-build-configuration/team-list.html
----------------------------------------------------------------------
diff --git a/hbase-build-configuration/team-list.html b/hbase-build-configuration/team-list.html
index b83db64..5a12cdd 100644
--- a/hbase-build-configuration/team-list.html
+++ b/hbase-build-configuration/team-list.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="20171201" />
+    <meta name="Date-Revision-yyyymmdd" content="20171202" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase - Build Configuration &#x2013; Project Team</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -547,7 +547,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-02</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/29b27596/hbase-shaded-check-invariants/checkstyle.html
----------------------------------------------------------------------
diff --git a/hbase-shaded-check-invariants/checkstyle.html b/hbase-shaded-check-invariants/checkstyle.html
index ff41cd3..006f0ce 100644
--- a/hbase-shaded-check-invariants/checkstyle.html
+++ b/hbase-shaded-check-invariants/checkstyle.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="20171201" />
+    <meta name="Date-Revision-yyyymmdd" content="20171202" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase Shaded Packaging Invariants &#x2013; Checkstyle Results</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -150,7 +150,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-02</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/29b27596/hbase-shaded-check-invariants/dependencies.html
----------------------------------------------------------------------
diff --git a/hbase-shaded-check-invariants/dependencies.html b/hbase-shaded-check-invariants/dependencies.html
index e40213b..2d23f0b 100644
--- a/hbase-shaded-check-invariants/dependencies.html
+++ b/hbase-shaded-check-invariants/dependencies.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="20171201" />
+    <meta name="Date-Revision-yyyymmdd" content="20171202" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase Shaded Packaging Invariants &#x2013; Project Dependencies</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -2883,7 +2883,7 @@ Jackson JSON processor's data binding functionality.</p>
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-02</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/29b27596/hbase-shaded-check-invariants/dependency-convergence.html
----------------------------------------------------------------------
diff --git a/hbase-shaded-check-invariants/dependency-convergence.html b/hbase-shaded-check-invariants/dependency-convergence.html
index b94fd57..77aa07a 100644
--- a/hbase-shaded-check-invariants/dependency-convergence.html
+++ b/hbase-shaded-check-invariants/dependency-convergence.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="20171201" />
+    <meta name="Date-Revision-yyyymmdd" content="20171202" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase Shaded Packaging Invariants &#x2013; Reactor Dependency Convergence</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -838,7 +838,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-02</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/29b27596/hbase-shaded-check-invariants/dependency-info.html
----------------------------------------------------------------------
diff --git a/hbase-shaded-check-invariants/dependency-info.html b/hbase-shaded-check-invariants/dependency-info.html
index 15c0493..eb849f3 100644
--- a/hbase-shaded-check-invariants/dependency-info.html
+++ b/hbase-shaded-check-invariants/dependency-info.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="20171201" />
+    <meta name="Date-Revision-yyyymmdd" content="20171202" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase Shaded Packaging Invariants &#x2013; Dependency Information</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -148,7 +148,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-02</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/29b27596/hbase-shaded-check-invariants/dependency-management.html
----------------------------------------------------------------------
diff --git a/hbase-shaded-check-invariants/dependency-management.html b/hbase-shaded-check-invariants/dependency-management.html
index bdd7c94..c9db20d 100644
--- a/hbase-shaded-check-invariants/dependency-management.html
+++ b/hbase-shaded-check-invariants/dependency-management.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="20171201" />
+    <meta name="Date-Revision-yyyymmdd" content="20171202" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase Shaded Packaging Invariants &#x2013; Project Dependency Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -545,19 +545,19 @@
 <tr class="a">
 <td>org.eclipse.jetty</td>
 <td><a class="externalLink" href="http://www.eclipse.org/jetty">jetty-http</a></td>
-<td>9.4.6.v20170531</td>
+<td>9.3.19.v20170502</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache Software License - Version 2.0</a>, <a class="externalLink" href="http://www.eclipse.org/org/documents/epl-v10.php">Eclipse Public License - Version 1.0</a></td></tr>
 <tr class="b">
 <td>org.eclipse.jetty</td>
 <td><a class="externalLink" href="http://www.eclipse.org/jetty">jetty-io</a></td>
-<td>9.4.6.v20170531</td>
+<td>9.3.19.v20170502</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache Software License - Version 2.0</a>, <a class="externalLink" href="http://www.eclipse.org/org/documents/epl-v10.php">Eclipse Public License - Version 1.0</a></td></tr>
 <tr class="a">
 <td>org.eclipse.jetty</td>
 <td><a class="externalLink" href="http://www.eclipse.org/jetty">jetty-jmx</a></td>
-<td>9.4.6.v20170531</td>
+<td>9.3.19.v20170502</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache Software License - Version 2.0</a>, <a class="externalLink" href="http://www.eclipse.org/org/documents/epl-v10.php">Eclipse Public License - Version 1.0</a></td></tr>
 <tr class="b">
@@ -569,37 +569,37 @@
 <tr class="a">
 <td>org.eclipse.jetty</td>
 <td><a class="externalLink" href="http://www.eclipse.org/jetty">jetty-security</a></td>
-<td>9.4.6.v20170531</td>
+<td>9.3.19.v20170502</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache Software License - Version 2.0</a>, <a class="externalLink" href="http://www.eclipse.org/org/documents/epl-v10.php">Eclipse Public License - Version 1.0</a></td></tr>
 <tr class="b">
 <td>org.eclipse.jetty</td>
 <td><a class="externalLink" href="http://www.eclipse.org/jetty">jetty-server</a></td>
-<td>9.4.6.v20170531</td>
+<td>9.3.19.v20170502</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache Software License - Version 2.0</a>, <a class="externalLink" href="http://www.eclipse.org/org/documents/epl-v10.php">Eclipse Public License - Version 1.0</a></td></tr>
 <tr class="a">
 <td>org.eclipse.jetty</td>
 <td><a class="externalLink" href="http://www.eclipse.org/jetty">jetty-servlet</a></td>
-<td>9.4.6.v20170531</td>
+<td>9.3.19.v20170502</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache Software License - Version 2.0</a>, <a class="externalLink" href="http://www.eclipse.org/org/documents/epl-v10.php">Eclipse Public License - Version 1.0</a></td></tr>
 <tr class="b">
 <td>org.eclipse.jetty</td>
 <td><a class="externalLink" href="http://www.eclipse.org/jetty">jetty-util</a></td>
-<td>9.4.6.v20170531</td>
+<td>9.3.19.v20170502</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache Software License - Version 2.0</a>, <a class="externalLink" href="http://www.eclipse.org/org/documents/epl-v10.php">Eclipse Public License - Version 1.0</a></td></tr>
 <tr class="a">
 <td>org.eclipse.jetty</td>
 <td><a class="externalLink" href="http://www.eclipse.org/jetty">jetty-util-ajax</a></td>
-<td>9.4.6.v20170531</td>
+<td>9.3.19.v20170502</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache Software License - Version 2.0</a>, <a class="externalLink" href="http://www.eclipse.org/org/documents/epl-v10.php">Eclipse Public License - Version 1.0</a></td></tr>
 <tr class="b">
 <td>org.eclipse.jetty</td>
 <td><a class="externalLink" href="http://www.eclipse.org/jetty">jetty-webapp</a></td>
-<td>9.4.6.v20170531</td>
+<td>9.3.19.v20170502</td>
 <td>jar</td>
 <td><a class="externalLink" href="http://www.apache.org/licenses/LICENSE-2.0">Apache Software License - Version 2.0</a>, <a class="externalLink" href="http://www.eclipse.org/org/documents/epl-v10.php">Eclipse Public License - Version 1.0</a></td></tr>
 <tr class="a">
@@ -804,7 +804,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-02</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/29b27596/hbase-shaded-check-invariants/index.html
----------------------------------------------------------------------
diff --git a/hbase-shaded-check-invariants/index.html b/hbase-shaded-check-invariants/index.html
index ebdd1d7..e0e050f 100644
--- a/hbase-shaded-check-invariants/index.html
+++ b/hbase-shaded-check-invariants/index.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="20171201" />
+    <meta name="Date-Revision-yyyymmdd" content="20171202" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase Shaded Packaging Invariants &#x2013; About</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -122,7 +122,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-02</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/29b27596/hbase-shaded-check-invariants/integration.html
----------------------------------------------------------------------
diff --git a/hbase-shaded-check-invariants/integration.html b/hbase-shaded-check-invariants/integration.html
index 6c017d8..e5c4c98 100644
--- a/hbase-shaded-check-invariants/integration.html
+++ b/hbase-shaded-check-invariants/integration.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="20171201" />
+    <meta name="Date-Revision-yyyymmdd" content="20171202" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase Shaded Packaging Invariants &#x2013; CI Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -126,7 +126,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-02</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/29b27596/hbase-shaded-check-invariants/issue-tracking.html
----------------------------------------------------------------------
diff --git a/hbase-shaded-check-invariants/issue-tracking.html b/hbase-shaded-check-invariants/issue-tracking.html
index 5f65dd8..4a8c9a2 100644
--- a/hbase-shaded-check-invariants/issue-tracking.html
+++ b/hbase-shaded-check-invariants/issue-tracking.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="20171201" />
+    <meta name="Date-Revision-yyyymmdd" content="20171202" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase Shaded Packaging Invariants &#x2013; Issue Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -123,7 +123,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-02</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/29b27596/hbase-shaded-check-invariants/license.html
----------------------------------------------------------------------
diff --git a/hbase-shaded-check-invariants/license.html b/hbase-shaded-check-invariants/license.html
index abd1d92..9ba3ce6 100644
--- a/hbase-shaded-check-invariants/license.html
+++ b/hbase-shaded-check-invariants/license.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="20171201" />
+    <meta name="Date-Revision-yyyymmdd" content="20171202" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase Shaded Packaging Invariants &#x2013; Project Licenses</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -326,7 +326,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-02</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/29b27596/hbase-shaded-check-invariants/mail-lists.html
----------------------------------------------------------------------
diff --git a/hbase-shaded-check-invariants/mail-lists.html b/hbase-shaded-check-invariants/mail-lists.html
index 3903010..1e4d596 100644
--- a/hbase-shaded-check-invariants/mail-lists.html
+++ b/hbase-shaded-check-invariants/mail-lists.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="20171201" />
+    <meta name="Date-Revision-yyyymmdd" content="20171202" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase Shaded Packaging Invariants &#x2013; Project Mailing Lists</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -176,7 +176,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-02</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/29b27596/hbase-shaded-check-invariants/plugin-management.html
----------------------------------------------------------------------
diff --git a/hbase-shaded-check-invariants/plugin-management.html b/hbase-shaded-check-invariants/plugin-management.html
index b6c0169..f5525e7 100644
--- a/hbase-shaded-check-invariants/plugin-management.html
+++ b/hbase-shaded-check-invariants/plugin-management.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="20171201" />
+    <meta name="Date-Revision-yyyymmdd" content="20171202" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase Shaded Packaging Invariants &#x2013; Project Plugin Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -271,7 +271,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-02</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/29b27596/hbase-shaded-check-invariants/plugins.html
----------------------------------------------------------------------
diff --git a/hbase-shaded-check-invariants/plugins.html b/hbase-shaded-check-invariants/plugins.html
index 930d43b..fdf85fd 100644
--- a/hbase-shaded-check-invariants/plugins.html
+++ b/hbase-shaded-check-invariants/plugins.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="20171201" />
+    <meta name="Date-Revision-yyyymmdd" content="20171202" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase Shaded Packaging Invariants &#x2013; Project Plugins</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -218,7 +218,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-02</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/29b27596/hbase-shaded-check-invariants/project-info.html
----------------------------------------------------------------------
diff --git a/hbase-shaded-check-invariants/project-info.html b/hbase-shaded-check-invariants/project-info.html
index f7aed29..2309ec1 100644
--- a/hbase-shaded-check-invariants/project-info.html
+++ b/hbase-shaded-check-invariants/project-info.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="20171201" />
+    <meta name="Date-Revision-yyyymmdd" content="20171202" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase Shaded Packaging Invariants &#x2013; Project Information</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -170,7 +170,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-02</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/29b27596/hbase-shaded-check-invariants/project-reports.html
----------------------------------------------------------------------
diff --git a/hbase-shaded-check-invariants/project-reports.html b/hbase-shaded-check-invariants/project-reports.html
index 9287aac..9a20279 100644
--- a/hbase-shaded-check-invariants/project-reports.html
+++ b/hbase-shaded-check-invariants/project-reports.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="20171201" />
+    <meta name="Date-Revision-yyyymmdd" content="20171202" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase Shaded Packaging Invariants &#x2013; Generated Reports</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -128,7 +128,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-02</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/29b27596/hbase-shaded-check-invariants/project-summary.html
----------------------------------------------------------------------
diff --git a/hbase-shaded-check-invariants/project-summary.html b/hbase-shaded-check-invariants/project-summary.html
index 331f60a..8b2ab4c 100644
--- a/hbase-shaded-check-invariants/project-summary.html
+++ b/hbase-shaded-check-invariants/project-summary.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="20171201" />
+    <meta name="Date-Revision-yyyymmdd" content="20171202" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase Shaded Packaging Invariants &#x2013; Project Summary</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -166,7 +166,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-02</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/29b27596/hbase-shaded-check-invariants/source-repository.html
----------------------------------------------------------------------
diff --git a/hbase-shaded-check-invariants/source-repository.html b/hbase-shaded-check-invariants/source-repository.html
index f363f21..1c61673 100644
--- a/hbase-shaded-check-invariants/source-repository.html
+++ b/hbase-shaded-check-invariants/source-repository.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="20171201" />
+    <meta name="Date-Revision-yyyymmdd" content="20171202" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase Shaded Packaging Invariants &#x2013; Source Code Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -134,7 +134,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-02</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/29b27596/hbase-shaded-check-invariants/team-list.html
----------------------------------------------------------------------
diff --git a/hbase-shaded-check-invariants/team-list.html b/hbase-shaded-check-invariants/team-list.html
index 229afdf..0d6262f 100644
--- a/hbase-shaded-check-invariants/team-list.html
+++ b/hbase-shaded-check-invariants/team-list.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="20171201" />
+    <meta name="Date-Revision-yyyymmdd" content="20171202" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase Shaded Packaging Invariants &#x2013; Project Team</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -547,7 +547,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-02</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/29b27596/index.html
----------------------------------------------------------------------
diff --git a/index.html b/index.html
index 776f5c1..d662d56 100644
--- a/index.html
+++ b/index.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="20171201" />
+    <meta name="Date-Revision-yyyymmdd" content="20171202" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Apache HBaseâ„¢ Home</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -438,7 +438,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: 2017-12-01</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-02</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/29b27596/integration.html
----------------------------------------------------------------------
diff --git a/integration.html b/integration.html
index bded3de..30400c2 100644
--- a/integration.html
+++ b/integration.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="20171201" />
+    <meta name="Date-Revision-yyyymmdd" content="20171202" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; CI Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -296,7 +296,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-02</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/29b27596/issue-tracking.html
----------------------------------------------------------------------
diff --git a/issue-tracking.html b/issue-tracking.html
index 29145eb..0413365 100644
--- a/issue-tracking.html
+++ b/issue-tracking.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="20171201" />
+    <meta name="Date-Revision-yyyymmdd" content="20171202" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Issue Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -293,7 +293,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-02</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/29b27596/license.html
----------------------------------------------------------------------
diff --git a/license.html b/license.html
index c822e25..3e7aedb 100644
--- a/license.html
+++ b/license.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="20171201" />
+    <meta name="Date-Revision-yyyymmdd" content="20171202" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Project Licenses</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -496,7 +496,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-02</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/29b27596/mail-lists.html
----------------------------------------------------------------------
diff --git a/mail-lists.html b/mail-lists.html
index fdacf34..375f83f 100644
--- a/mail-lists.html
+++ b/mail-lists.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="20171201" />
+    <meta name="Date-Revision-yyyymmdd" content="20171202" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Project Mailing Lists</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -346,7 +346,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-02</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/29b27596/metrics.html
----------------------------------------------------------------------
diff --git a/metrics.html b/metrics.html
index f77b0a1..8ed4039 100644
--- a/metrics.html
+++ b/metrics.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="20171201" />
+    <meta name="Date-Revision-yyyymmdd" content="20171202" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013;  
       Apache HBase (TM) Metrics
@@ -464,7 +464,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: 2017-12-01</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-02</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/29b27596/old_news.html
----------------------------------------------------------------------
diff --git a/old_news.html b/old_news.html
index db302e1..69d6f99 100644
--- a/old_news.html
+++ b/old_news.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="20171201" />
+    <meta name="Date-Revision-yyyymmdd" content="20171202" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; 
       Old Apache HBase (TM) News
@@ -419,7 +419,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: 2017-12-01</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-02</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/29b27596/plugin-management.html
----------------------------------------------------------------------
diff --git a/plugin-management.html b/plugin-management.html
index 708d14a..af952f2 100644
--- a/plugin-management.html
+++ b/plugin-management.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="20171201" />
+    <meta name="Date-Revision-yyyymmdd" content="20171202" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Project Plugin Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -441,7 +441,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-02</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/29b27596/plugins.html
----------------------------------------------------------------------
diff --git a/plugins.html b/plugins.html
index a071bd9..a9c71f9 100644
--- a/plugins.html
+++ b/plugins.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="20171201" />
+    <meta name="Date-Revision-yyyymmdd" content="20171202" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Project Plugins</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -380,7 +380,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-02</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/29b27596/poweredbyhbase.html
----------------------------------------------------------------------
diff --git a/poweredbyhbase.html b/poweredbyhbase.html
index 7f4df26..7aab086 100644
--- a/poweredbyhbase.html
+++ b/poweredbyhbase.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="20171201" />
+    <meta name="Date-Revision-yyyymmdd" content="20171202" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Powered By Apache HBase™</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -774,7 +774,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: 2017-12-01</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-02</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/29b27596/project-info.html
----------------------------------------------------------------------
diff --git a/project-info.html b/project-info.html
index 54ca15e..a5a9031 100644
--- a/project-info.html
+++ b/project-info.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="20171201" />
+    <meta name="Date-Revision-yyyymmdd" content="20171202" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Project Information</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -340,7 +340,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-02</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/29b27596/project-reports.html
----------------------------------------------------------------------
diff --git a/project-reports.html b/project-reports.html
index 2b740f9..40439c9 100644
--- a/project-reports.html
+++ b/project-reports.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="20171201" />
+    <meta name="Date-Revision-yyyymmdd" content="20171202" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Generated Reports</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -310,7 +310,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-02</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/29b27596/project-summary.html
----------------------------------------------------------------------
diff --git a/project-summary.html b/project-summary.html
index 6c02f3f..d4ed80f 100644
--- a/project-summary.html
+++ b/project-summary.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="20171201" />
+    <meta name="Date-Revision-yyyymmdd" content="20171202" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Project Summary</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -336,7 +336,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-02</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/29b27596/pseudo-distributed.html
----------------------------------------------------------------------
diff --git a/pseudo-distributed.html b/pseudo-distributed.html
index cc628da..cecdfbc 100644
--- a/pseudo-distributed.html
+++ b/pseudo-distributed.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="20171201" />
+    <meta name="Date-Revision-yyyymmdd" content="20171202" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013;  
 Running Apache HBase (TM) in pseudo-distributed mode
@@ -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: 2017-12-01</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-02</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/29b27596/replication.html
----------------------------------------------------------------------
diff --git a/replication.html b/replication.html
index 76a7990..de1fb26 100644
--- a/replication.html
+++ b/replication.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="20171201" />
+    <meta name="Date-Revision-yyyymmdd" content="20171202" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; 
       Apache HBase (TM) Replication
@@ -308,7 +308,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: 2017-12-01</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-02</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/29b27596/resources.html
----------------------------------------------------------------------
diff --git a/resources.html b/resources.html
index 7521c21..c99a378 100644
--- a/resources.html
+++ b/resources.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="20171201" />
+    <meta name="Date-Revision-yyyymmdd" content="20171202" />
     <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.5-HBASE.min.css" />
@@ -336,7 +336,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: 2017-12-01</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-02</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/29b27596/source-repository.html
----------------------------------------------------------------------
diff --git a/source-repository.html b/source-repository.html
index 6f47d89..a5c9b1a 100644
--- a/source-repository.html
+++ b/source-repository.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="20171201" />
+    <meta name="Date-Revision-yyyymmdd" content="20171202" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Source Code Management</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -304,7 +304,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-02</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/29b27596/sponsors.html
----------------------------------------------------------------------
diff --git a/sponsors.html b/sponsors.html
index fac3f39..573a996 100644
--- a/sponsors.html
+++ b/sponsors.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="20171201" />
+    <meta name="Date-Revision-yyyymmdd" content="20171202" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Apache HBase™ Sponsors</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -338,7 +338,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: 2017-12-01</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-02</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/29b27596/supportingprojects.html
----------------------------------------------------------------------
diff --git a/supportingprojects.html b/supportingprojects.html
index bef9399..aa13f38 100644
--- a/supportingprojects.html
+++ b/supportingprojects.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="20171201" />
+    <meta name="Date-Revision-yyyymmdd" content="20171202" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Supporting Projects</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -525,7 +525,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: 2017-12-01</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-02</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/29b27596/team-list.html
----------------------------------------------------------------------
diff --git a/team-list.html b/team-list.html
index 85f045c..537f129 100644
--- a/team-list.html
+++ b/team-list.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="20171201" />
+    <meta name="Date-Revision-yyyymmdd" content="20171202" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013; Project Team</title>
     <link rel="stylesheet" href="./css/apache-maven-fluido-1.5-HBASE.min.css" />
@@ -717,7 +717,7 @@
                         <a href="https://www.apache.org/">The Apache Software Foundation</a>.
             All rights reserved.      
                     
-                  <li id="publishDate" class="pull-right">Last Published: 2017-12-01</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-02</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/29b27596/testdevapidocs/allclasses-frame.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/allclasses-frame.html b/testdevapidocs/allclasses-frame.html
index 2c8d5ba..76202e7 100644
--- a/testdevapidocs/allclasses-frame.html
+++ b/testdevapidocs/allclasses-frame.html
@@ -1359,6 +1359,7 @@
 <li><a href="org/apache/hadoop/hbase/rest/TestMetricsRESTSource.html" title="class in org.apache.hadoop.hbase.rest" target="classFrame">TestMetricsRESTSource</a></li>
 <li><a href="org/apache/hadoop/hbase/rest/TestMetricsRESTSourceImpl.html" title="class in org.apache.hadoop.hbase.rest" target="classFrame">TestMetricsRESTSourceImpl</a></li>
 <li><a href="org/apache/hadoop/hbase/regionserver/TestMetricsTableAggregate.html" title="class in org.apache.hadoop.hbase.regionserver" target="classFrame">TestMetricsTableAggregate</a></li>
+<li><a href="org/apache/hadoop/hbase/regionserver/TestMetricsTableLatencies.html" title="class in org.apache.hadoop.hbase.regionserver" target="classFrame">TestMetricsTableLatencies</a></li>
 <li><a href="org/apache/hadoop/hbase/regionserver/TestMetricsTableSourceImpl.html" title="class in org.apache.hadoop.hbase.regionserver" target="classFrame">TestMetricsTableSourceImpl</a></li>
 <li><a href="org/apache/hadoop/hbase/regionserver/TestMetricsTableSourceImpl.TableWrapperStub.html" title="class in org.apache.hadoop.hbase.regionserver" target="classFrame">TestMetricsTableSourceImpl.TableWrapperStub</a></li>
 <li><a href="org/apache/hadoop/hbase/thrift/TestMetricsThriftServerSourceFactory.html" title="class in org.apache.hadoop.hbase.thrift" target="classFrame">TestMetricsThriftServerSourceFactory</a></li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/29b27596/testdevapidocs/allclasses-noframe.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/allclasses-noframe.html b/testdevapidocs/allclasses-noframe.html
index 3a2e87a..c2f6381 100644
--- a/testdevapidocs/allclasses-noframe.html
+++ b/testdevapidocs/allclasses-noframe.html
@@ -1359,6 +1359,7 @@
 <li><a href="org/apache/hadoop/hbase/rest/TestMetricsRESTSource.html" title="class in org.apache.hadoop.hbase.rest">TestMetricsRESTSource</a></li>
 <li><a href="org/apache/hadoop/hbase/rest/TestMetricsRESTSourceImpl.html" title="class in org.apache.hadoop.hbase.rest">TestMetricsRESTSourceImpl</a></li>
 <li><a href="org/apache/hadoop/hbase/regionserver/TestMetricsTableAggregate.html" title="class in org.apache.hadoop.hbase.regionserver">TestMetricsTableAggregate</a></li>
+<li><a href="org/apache/hadoop/hbase/regionserver/TestMetricsTableLatencies.html" title="class in org.apache.hadoop.hbase.regionserver">TestMetricsTableLatencies</a></li>
 <li><a href="org/apache/hadoop/hbase/regionserver/TestMetricsTableSourceImpl.html" title="class in org.apache.hadoop.hbase.regionserver">TestMetricsTableSourceImpl</a></li>
 <li><a href="org/apache/hadoop/hbase/regionserver/TestMetricsTableSourceImpl.TableWrapperStub.html" title="class in org.apache.hadoop.hbase.regionserver">TestMetricsTableSourceImpl.TableWrapperStub</a></li>
 <li><a href="org/apache/hadoop/hbase/thrift/TestMetricsThriftServerSourceFactory.html" title="class in org.apache.hadoop.hbase.thrift">TestMetricsThriftServerSourceFactory</a></li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/29b27596/testdevapidocs/index-all.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/index-all.html b/testdevapidocs/index-all.html
index 33c82ff..ac813d7 100644
--- a/testdevapidocs/index-all.html
+++ b/testdevapidocs/index-all.html
@@ -16397,6 +16397,8 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/TestMetricsTableAggregate.html#HELPER">HELPER</a></span> - Static variable in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/TestMetricsTableAggregate.html" title="class in org.apache.hadoop.hbase.regionserver">TestMetricsTableAggregate</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/TestMetricsTableLatencies.html#HELPER">HELPER</a></span> - Static variable in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/TestMetricsTableLatencies.html" title="class in org.apache.hadoop.hbase.regionserver">TestMetricsTableLatencies</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/coprocessor/example/TestRefreshHFilesEndpoint.html#HFILE_NAME">HFILE_NAME</a></span> - Static variable in class org.apache.hadoop.hbase.coprocessor.example.<a href="org/apache/hadoop/hbase/coprocessor/example/TestRefreshHFilesEndpoint.html" title="class in org.apache.hadoop.hbase.coprocessor.example">TestRefreshHFilesEndpoint</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/CreateRandomStoreFile.html#HFILE_VERSION_OPTION">HFILE_VERSION_OPTION</a></span> - Static variable in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/CreateRandomStoreFile.html" title="class in org.apache.hadoop.hbase.regionserver">CreateRandomStoreFile</a></dt>
@@ -49021,6 +49023,10 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/TestMetricsTableAggregate.html#TestMetricsTableAggregate--">TestMetricsTableAggregate()</a></span> - Constructor for class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/TestMetricsTableAggregate.html" title="class in org.apache.hadoop.hbase.regionserver">TestMetricsTableAggregate</a></dt>
 <dd>&nbsp;</dd>
+<dt><a href="org/apache/hadoop/hbase/regionserver/TestMetricsTableLatencies.html" title="class in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">TestMetricsTableLatencies</span></a> - Class in <a href="org/apache/hadoop/hbase/regionserver/package-summary.html">org.apache.hadoop.hbase.regionserver</a></dt>
+<dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/TestMetricsTableLatencies.html#TestMetricsTableLatencies--">TestMetricsTableLatencies()</a></span> - Constructor for class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/TestMetricsTableLatencies.html" title="class in org.apache.hadoop.hbase.regionserver">TestMetricsTableLatencies</a></dt>
+<dd>&nbsp;</dd>
 <dt><a href="org/apache/hadoop/hbase/regionserver/TestMetricsTableSourceImpl.html" title="class in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">TestMetricsTableSourceImpl</span></a> - Class in <a href="org/apache/hadoop/hbase/regionserver/package-summary.html">org.apache.hadoop.hbase.regionserver</a></dt>
 <dd>
 <div class="block">Test for MetricsTableSourceImpl</div>
@@ -57004,6 +57010,8 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/TestMetricsTableAggregate.html#testTableWrapperAggregateMetrics--">testTableWrapperAggregateMetrics()</a></span> - Method in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/TestMetricsTableAggregate.html" title="class in org.apache.hadoop.hbase.regionserver">TestMetricsTableAggregate</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/regionserver/TestMetricsTableLatencies.html#testTableWrapperAggregateMetrics--">testTableWrapperAggregateMetrics()</a></span> - Method in class org.apache.hadoop.hbase.regionserver.<a href="org/apache/hadoop/hbase/regionserver/TestMetricsTableLatencies.html" title="class in org.apache.hadoop.hbase.regionserver">TestMetricsTableLatencies</a></dt>
+<dd>&nbsp;</dd>
 <dt><a href="org/apache/hadoop/hbase/io/TestTagCompressionContext.html" title="class in org.apache.hadoop.hbase.io"><span class="typeNameLink">TestTagCompressionContext</span></a> - Class in <a href="org/apache/hadoop/hbase/io/package-summary.html">org.apache.hadoop.hbase.io</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/io/TestTagCompressionContext.html#TestTagCompressionContext--">TestTagCompressionContext()</a></span> - Constructor for class org.apache.hadoop.hbase.io.<a href="org/apache/hadoop/hbase/io/TestTagCompressionContext.html" title="class in org.apache.hadoop.hbase.io">TestTagCompressionContext</a></dt>
@@ -59248,6 +59256,12 @@
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/backup/example/TestZooKeeperTableArchiveClient.html#toCleanup">toCleanup</a></span> - Variable in class org.apache.hadoop.hbase.backup.example.<a href="org/apache/hadoop/hbase/backup/example/TestZooKeeperTableArchiveClient.html" title="class in org.apache.hadoop.hbase.backup.example">TestZooKeeperTableArchiveClient</a></dt>
 <dd>&nbsp;</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/test/MetricsAssertHelper.html#toDebugString-org.apache.hadoop.hbase.metrics.BaseSource-">toDebugString(BaseSource)</a></span> - Method in interface org.apache.hadoop.hbase.test.<a href="org/apache/hadoop/hbase/test/MetricsAssertHelper.html" title="interface in org.apache.hadoop.hbase.test">MetricsAssertHelper</a></dt>
+<dd>
+<div class="block">Generates a representation of all metrics exported by the given <code>source</code>.</div>
+</dd>
+<dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/test/MetricsAssertHelperImpl.html#toDebugString-org.apache.hadoop.hbase.metrics.BaseSource-">toDebugString(BaseSource)</a></span> - Method in class org.apache.hadoop.hbase.test.<a href="org/apache/hadoop/hbase/test/MetricsAssertHelperImpl.html" title="class in org.apache.hadoop.hbase.test">MetricsAssertHelperImpl</a></dt>
+<dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/procedure2/ProcedureTestingUtility.html#toggleKillBeforeStoreUpdate-org.apache.hadoop.hbase.procedure2.ProcedureExecutor-">toggleKillBeforeStoreUpdate(ProcedureExecutor&lt;TEnv&gt;)</a></span> - Static method in class org.apache.hadoop.hbase.procedure2.<a href="org/apache/hadoop/hbase/procedure2/ProcedureTestingUtility.html" title="class in org.apache.hadoop.hbase.procedure2">ProcedureTestingUtility</a></dt>
 <dd>&nbsp;</dd>
 <dt><span class="memberNameLink"><a href="org/apache/hadoop/hbase/procedure2/TestChildProcedures.TestProcEnv.html#toggleKillBeforeStoreUpdate">toggleKillBeforeStoreUpdate</a></span> - Variable in class org.apache.hadoop.hbase.procedure2.<a href="org/apache/hadoop/hbase/procedure2/TestChildProcedures.TestProcEnv.html" title="class in org.apache.hadoop.hbase.procedure2">TestChildProcedures.TestProcEnv</a></dt>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/29b27596/testdevapidocs/org/apache/hadoop/hbase/package-tree.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/package-tree.html b/testdevapidocs/org/apache/hadoop/hbase/package-tree.html
index 9938ca6..516a939 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/package-tree.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/package-tree.html
@@ -574,15 +574,15 @@
 <ul>
 <li type="circle">java.lang.<a href="http://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="http://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="http://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/HBaseClusterManager.CommandProvider.Operation.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">HBaseClusterManager.CommandProvider.Operation</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/ClusterManager.ServiceType.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">ClusterManager.ServiceType</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/ResourceChecker.Phase.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">ResourceChecker.Phase</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/IntegrationTestDDLMasterFailover.ACTION.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">IntegrationTestDDLMasterFailover.ACTION</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/IntegrationTestRegionReplicaPerf.Stat.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">IntegrationTestRegionReplicaPerf.Stat</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/RESTApiClusterManager.Service.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">RESTApiClusterManager.Service</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/RESTApiClusterManager.RoleCommand.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">RESTApiClusterManager.RoleCommand</span></a></li>
-<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/PerformanceEvaluation.Counter.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">PerformanceEvaluation.Counter</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/ResourceChecker.Phase.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">ResourceChecker.Phase</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/HBaseClusterManager.CommandProvider.Operation.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">HBaseClusterManager.CommandProvider.Operation</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/ScanPerformanceEvaluation.ScanCounter.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">ScanPerformanceEvaluation.ScanCounter</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/ClusterManager.ServiceType.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">ClusterManager.ServiceType</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/PerformanceEvaluation.Counter.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">PerformanceEvaluation.Counter</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/IntegrationTestRegionReplicaPerf.Stat.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">IntegrationTestRegionReplicaPerf.Stat</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.<a href="../../../../org/apache/hadoop/hbase/IntegrationTestDDLMasterFailover.ACTION.html" title="enum in org.apache.hadoop.hbase"><span class="typeNameLink">IntegrationTestDDLMasterFailover.ACTION</span></a></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/29b27596/testdevapidocs/org/apache/hadoop/hbase/procedure/package-tree.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/procedure/package-tree.html b/testdevapidocs/org/apache/hadoop/hbase/procedure/package-tree.html
index dec1fae..46c9672 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/procedure/package-tree.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/procedure/package-tree.html
@@ -81,14 +81,14 @@
 <ul>
 <li type="circle">java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang"><span class="typeNameLink">Object</span></a>
 <ul>
-<li type="circle">org.apache.hadoop.hbase.procedure2.Procedure&lt;TEnvironment&gt; (implements java.lang.<a href="http://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;)
+<li type="circle">org.apache.hadoop.hbase.procedure.Procedure (implements java.util.concurrent.<a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Callable.html?is-external=true" title="class or interface in java.util.concurrent">Callable</a>&lt;V&gt;, org.apache.hadoop.hbase.errorhandling.ForeignExceptionListener)
 <ul>
-<li type="circle">org.apache.hadoop.hbase.procedure.<a href="../../../../../org/apache/hadoop/hbase/procedure/TestProcedureDescriber.TestProcedure.html" title="class in org.apache.hadoop.hbase.procedure"><span class="typeNameLink">TestProcedureDescriber.TestProcedure</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.procedure.<a href="../../../../../org/apache/hadoop/hbase/procedure/TestProcedure.LatchedProcedure.html" title="class in org.apache.hadoop.hbase.procedure"><span class="typeNameLink">TestProcedure.LatchedProcedure</span></a></li>
 </ul>
 </li>
-<li type="circle">org.apache.hadoop.hbase.procedure.Procedure (implements java.util.concurrent.<a href="http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Callable.html?is-external=true" title="class or interface in java.util.concurrent">Callable</a>&lt;V&gt;, org.apache.hadoop.hbase.errorhandling.ForeignExceptionListener)
+<li type="circle">org.apache.hadoop.hbase.procedure2.Procedure&lt;TEnvironment&gt; (implements java.lang.<a href="http://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;)
 <ul>
-<li type="circle">org.apache.hadoop.hbase.procedure.<a href="../../../../../org/apache/hadoop/hbase/procedure/TestProcedure.LatchedProcedure.html" title="class in org.apache.hadoop.hbase.procedure"><span class="typeNameLink">TestProcedure.LatchedProcedure</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.procedure.<a href="../../../../../org/apache/hadoop/hbase/procedure/TestProcedureDescriber.TestProcedure.html" title="class in org.apache.hadoop.hbase.procedure"><span class="typeNameLink">TestProcedureDescriber.TestProcedure</span></a></li>
 </ul>
 </li>
 <li type="circle">org.apache.hadoop.hbase.procedure.ProcedureManager

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/29b27596/testdevapidocs/org/apache/hadoop/hbase/procedure2/package-tree.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/procedure2/package-tree.html b/testdevapidocs/org/apache/hadoop/hbase/procedure2/package-tree.html
index 64e86d4..b97ba43 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/procedure2/package-tree.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/procedure2/package-tree.html
@@ -205,9 +205,9 @@
 <ul>
 <li type="circle">java.lang.<a href="http://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="http://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="http://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/TestStateMachineProcedure.TestSMProcedureState.html" title="enum in org.apache.hadoop.hbase.procedure2"><span class="typeNameLink">TestStateMachineProcedure.TestSMProcedureState</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.procedure2.<a href="../../../../../org/apache/hadoop/hbase/procedure2/TestProcedureRecovery.TestStateMachineProcedure.State.html" title="enum in org.apache.hadoop.hbase.procedure2"><span class="typeNameLink">TestProcedureRecovery.TestStateMachineProcedure.State</span></a></li>
 <li type="circle">org.apache.hadoop.hbase.procedure2.<a href="../../../../../org/apache/hadoop/hbase/procedure2/TestYieldProcedures.TestStateMachineProcedure.State.html" title="enum in org.apache.hadoop.hbase.procedure2"><span class="typeNameLink">TestYieldProcedures.TestStateMachineProcedure.State</span></a></li>
+<li type="circle">org.apache.hadoop.hbase.procedure2.<a href="../../../../../org/apache/hadoop/hbase/procedure2/TestStateMachineProcedure.TestSMProcedureState.html" title="enum in org.apache.hadoop.hbase.procedure2"><span class="typeNameLink">TestStateMachineProcedure.TestSMProcedureState</span></a></li>
 </ul>
 </li>
 </ul>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/29b27596/testdevapidocs/org/apache/hadoop/hbase/regionserver/TestMetricsTableAggregate.html
----------------------------------------------------------------------
diff --git a/testdevapidocs/org/apache/hadoop/hbase/regionserver/TestMetricsTableAggregate.html b/testdevapidocs/org/apache/hadoop/hbase/regionserver/TestMetricsTableAggregate.html
index 31c4028..39121d9 100644
--- a/testdevapidocs/org/apache/hadoop/hbase/regionserver/TestMetricsTableAggregate.html
+++ b/testdevapidocs/org/apache/hadoop/hbase/regionserver/TestMetricsTableAggregate.html
@@ -50,7 +50,7 @@ var activeTableTab = "activeTableTab";
 <div class="subNav">
 <ul class="navList">
 <li><a href="../../../../../org/apache/hadoop/hbase/regionserver/TestMetricsRegionSourceImpl.RegionWrapperStub.html" title="class in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
-<li><a href="../../../../../org/apache/hadoop/hbase/regionserver/TestMetricsTableSourceImpl.html" title="class in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/regionserver/TestMetricsTableLatencies.html" title="class in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
 </ul>
 <ul class="navList">
 <li><a href="../../../../../index.html?org/apache/hadoop/hbase/regionserver/TestMetricsTableAggregate.html" target="_top">Frames</a></li>
@@ -268,7 +268,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <div class="subNav">
 <ul class="navList">
 <li><a href="../../../../../org/apache/hadoop/hbase/regionserver/TestMetricsRegionSourceImpl.RegionWrapperStub.html" title="class in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
-<li><a href="../../../../../org/apache/hadoop/hbase/regionserver/TestMetricsTableSourceImpl.html" title="class in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/regionserver/TestMetricsTableLatencies.html" title="class in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
 </ul>
 <ul class="navList">
 <li><a href="../../../../../index.html?org/apache/hadoop/hbase/regionserver/TestMetricsTableAggregate.html" target="_top">Frames</a></li>


[27/32] hbase-site git commit: Published site at .

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/29b27596/devapidocs/org/apache/hadoop/hbase/regionserver/HRegionServer.MovedRegionInfo.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/regionserver/HRegionServer.MovedRegionInfo.html b/devapidocs/org/apache/hadoop/hbase/regionserver/HRegionServer.MovedRegionInfo.html
index a57fb8f..9e2fcf3 100644
--- a/devapidocs/org/apache/hadoop/hbase/regionserver/HRegionServer.MovedRegionInfo.html
+++ b/devapidocs/org/apache/hadoop/hbase/regionserver/HRegionServer.MovedRegionInfo.html
@@ -113,7 +113,7 @@ var activeTableTab = "activeTableTab";
 </dl>
 <hr>
 <br>
-<pre>private static class <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.3403">HRegionServer.MovedRegionInfo</a>
+<pre>private static class <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.3404">HRegionServer.MovedRegionInfo</a>
 extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></pre>
 </li>
 </ul>
@@ -218,7 +218,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>serverName</h4>
-<pre>private final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.MovedRegionInfo.html#line.3404">serverName</a></pre>
+<pre>private final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.MovedRegionInfo.html#line.3405">serverName</a></pre>
 </li>
 </ul>
 <a name="seqNum">
@@ -227,7 +227,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>seqNum</h4>
-<pre>private final&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.MovedRegionInfo.html#line.3405">seqNum</a></pre>
+<pre>private final&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.MovedRegionInfo.html#line.3406">seqNum</a></pre>
 </li>
 </ul>
 <a name="ts">
@@ -236,7 +236,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockListLast">
 <li class="blockList">
 <h4>ts</h4>
-<pre>private final&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.MovedRegionInfo.html#line.3406">ts</a></pre>
+<pre>private final&nbsp;long <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.MovedRegionInfo.html#line.3407">ts</a></pre>
 </li>
 </ul>
 </li>
@@ -253,7 +253,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockListLast">
 <li class="blockList">
 <h4>MovedRegionInfo</h4>
-<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.MovedRegionInfo.html#line.3408">MovedRegionInfo</a>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;serverName,
+<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.MovedRegionInfo.html#line.3409">MovedRegionInfo</a>(<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;serverName,
                        long&nbsp;closeSeqNum)</pre>
 </li>
 </ul>
@@ -271,7 +271,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>getServerName</h4>
-<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.MovedRegionInfo.html#line.3414">getServerName</a>()</pre>
+<pre>public&nbsp;<a href="../../../../../org/apache/hadoop/hbase/ServerName.html" title="class in org.apache.hadoop.hbase">ServerName</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.MovedRegionInfo.html#line.3415">getServerName</a>()</pre>
 </li>
 </ul>
 <a name="getSeqNum--">
@@ -280,7 +280,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockList">
 <li class="blockList">
 <h4>getSeqNum</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.MovedRegionInfo.html#line.3418">getSeqNum</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.MovedRegionInfo.html#line.3419">getSeqNum</a>()</pre>
 </li>
 </ul>
 <a name="getMoveTime--">
@@ -289,7 +289,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 <ul class="blockListLast">
 <li class="blockList">
 <h4>getMoveTime</h4>
-<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.MovedRegionInfo.html#line.3422">getMoveTime</a>()</pre>
+<pre>public&nbsp;long&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.MovedRegionInfo.html#line.3423">getMoveTime</a>()</pre>
 </li>
 </ul>
 </li>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/29b27596/devapidocs/org/apache/hadoop/hbase/regionserver/HRegionServer.MovedRegionsCleaner.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/regionserver/HRegionServer.MovedRegionsCleaner.html b/devapidocs/org/apache/hadoop/hbase/regionserver/HRegionServer.MovedRegionsCleaner.html
index 4b654ce..1c8c6b4 100644
--- a/devapidocs/org/apache/hadoop/hbase/regionserver/HRegionServer.MovedRegionsCleaner.html
+++ b/devapidocs/org/apache/hadoop/hbase/regionserver/HRegionServer.MovedRegionsCleaner.html
@@ -122,7 +122,7 @@ var activeTableTab = "activeTableTab";
 </dl>
 <hr>
 <br>
-<pre>protected static final class <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.3490">HRegionServer.MovedRegionsCleaner</a>
+<pre>protected static final class <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.3491">HRegionServer.MovedRegionsCleaner</a>
 extends <a href="../../../../../org/apache/hadoop/hbase/ScheduledChore.html" title="class in org.apache.hadoop.hbase">ScheduledChore</a>
 implements <a href="../../../../../org/apache/hadoop/hbase/Stoppable.html" title="interface in org.apache.hadoop.hbase">Stoppable</a></pre>
 <div class="block">Creates a Chore thread to clean the moved region cache.</div>
@@ -242,7 +242,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/Stoppable.html" title
 <ul class="blockList">
 <li class="blockList">
 <h4>regionServer</h4>
-<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html" title="class in org.apache.hadoop.hbase.regionserver">HRegionServer</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.MovedRegionsCleaner.html#line.3491">regionServer</a></pre>
+<pre>private&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html" title="class in org.apache.hadoop.hbase.regionserver">HRegionServer</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.MovedRegionsCleaner.html#line.3492">regionServer</a></pre>
 </li>
 </ul>
 <a name="stoppable">
@@ -251,7 +251,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/Stoppable.html" title
 <ul class="blockListLast">
 <li class="blockList">
 <h4>stoppable</h4>
-<pre><a href="../../../../../org/apache/hadoop/hbase/Stoppable.html" title="interface in org.apache.hadoop.hbase">Stoppable</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.MovedRegionsCleaner.html#line.3492">stoppable</a></pre>
+<pre><a href="../../../../../org/apache/hadoop/hbase/Stoppable.html" title="interface in org.apache.hadoop.hbase">Stoppable</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.MovedRegionsCleaner.html#line.3493">stoppable</a></pre>
 </li>
 </ul>
 </li>
@@ -268,7 +268,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/Stoppable.html" title
 <ul class="blockListLast">
 <li class="blockList">
 <h4>MovedRegionsCleaner</h4>
-<pre>private&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.MovedRegionsCleaner.html#line.3494">MovedRegionsCleaner</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html" title="class in org.apache.hadoop.hbase.regionserver">HRegionServer</a>&nbsp;regionServer,
+<pre>private&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.MovedRegionsCleaner.html#line.3495">MovedRegionsCleaner</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html" title="class in org.apache.hadoop.hbase.regionserver">HRegionServer</a>&nbsp;regionServer,
                             <a href="../../../../../org/apache/hadoop/hbase/Stoppable.html" title="interface in org.apache.hadoop.hbase">Stoppable</a>&nbsp;stoppable)</pre>
 </li>
 </ul>
@@ -286,7 +286,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/Stoppable.html" title
 <ul class="blockList">
 <li class="blockList">
 <h4>create</h4>
-<pre>static&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.MovedRegionsCleaner.html" title="class in org.apache.hadoop.hbase.regionserver">HRegionServer.MovedRegionsCleaner</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.MovedRegionsCleaner.html#line.3502">create</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html" title="class in org.apache.hadoop.hbase.regionserver">HRegionServer</a>&nbsp;rs)</pre>
+<pre>static&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.MovedRegionsCleaner.html" title="class in org.apache.hadoop.hbase.regionserver">HRegionServer.MovedRegionsCleaner</a>&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.MovedRegionsCleaner.html#line.3503">create</a>(<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html" title="class in org.apache.hadoop.hbase.regionserver">HRegionServer</a>&nbsp;rs)</pre>
 </li>
 </ul>
 <a name="chore--">
@@ -295,7 +295,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/Stoppable.html" title
 <ul class="blockList">
 <li class="blockList">
 <h4>chore</h4>
-<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.MovedRegionsCleaner.html#line.3513">chore</a>()</pre>
+<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.MovedRegionsCleaner.html#line.3514">chore</a>()</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/ScheduledChore.html#chore--">ScheduledChore</a></code></span></div>
 <div class="block">The task to execute on each scheduled execution of the Chore</div>
 <dl>
@@ -310,7 +310,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/Stoppable.html" title
 <ul class="blockList">
 <li class="blockList">
 <h4>stop</h4>
-<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.MovedRegionsCleaner.html#line.3518">stop</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;why)</pre>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.MovedRegionsCleaner.html#line.3519">stop</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;why)</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/Stoppable.html#stop-java.lang.String-">Stoppable</a></code></span></div>
 <div class="block">Stop this service.
  Implementers should favor logging errors over throwing RuntimeExceptions.</div>
@@ -328,7 +328,7 @@ implements <a href="../../../../../org/apache/hadoop/hbase/Stoppable.html" title
 <ul class="blockListLast">
 <li class="blockList">
 <h4>isStopped</h4>
-<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.MovedRegionsCleaner.html#line.3523">isStopped</a>()</pre>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.MovedRegionsCleaner.html#line.3524">isStopped</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
 <dd><code><a href="../../../../../org/apache/hadoop/hbase/Stoppable.html#isStopped--">isStopped</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/Stoppable.html" title="interface in org.apache.hadoop.hbase">Stoppable</a></code></dd>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/29b27596/devapidocs/org/apache/hadoop/hbase/regionserver/HRegionServer.PeriodicMemStoreFlusher.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/regionserver/HRegionServer.PeriodicMemStoreFlusher.html b/devapidocs/org/apache/hadoop/hbase/regionserver/HRegionServer.PeriodicMemStoreFlusher.html
index e7824b9..a4307fa 100644
--- a/devapidocs/org/apache/hadoop/hbase/regionserver/HRegionServer.PeriodicMemStoreFlusher.html
+++ b/devapidocs/org/apache/hadoop/hbase/regionserver/HRegionServer.PeriodicMemStoreFlusher.html
@@ -122,7 +122,7 @@ var activeTableTab = "activeTableTab";
 </dl>
 <hr>
 <br>
-<pre>static class <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.1744">HRegionServer.PeriodicMemStoreFlusher</a>
+<pre>static class <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.html#line.1745">HRegionServer.PeriodicMemStoreFlusher</a>
 extends <a href="../../../../../org/apache/hadoop/hbase/ScheduledChore.html" title="class in org.apache.hadoop.hbase">ScheduledChore</a></pre>
 </li>
 </ul>
@@ -228,7 +228,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/ScheduledChore.html" tit
 <ul class="blockList">
 <li class="blockList">
 <h4>server</h4>
-<pre>final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html" title="class in org.apache.hadoop.hbase.regionserver">HRegionServer</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.PeriodicMemStoreFlusher.html#line.1745">server</a></pre>
+<pre>final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html" title="class in org.apache.hadoop.hbase.regionserver">HRegionServer</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.PeriodicMemStoreFlusher.html#line.1746">server</a></pre>
 </li>
 </ul>
 <a name="RANGE_OF_DELAY">
@@ -237,7 +237,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/ScheduledChore.html" tit
 <ul class="blockList">
 <li class="blockList">
 <h4>RANGE_OF_DELAY</h4>
-<pre>static final&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.PeriodicMemStoreFlusher.html#line.1746">RANGE_OF_DELAY</a></pre>
+<pre>static final&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.PeriodicMemStoreFlusher.html#line.1747">RANGE_OF_DELAY</a></pre>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
 <dd><a href="../../../../../constant-values.html#org.apache.hadoop.hbase.regionserver.HRegionServer.PeriodicMemStoreFlusher.RANGE_OF_DELAY">Constant Field Values</a></dd>
@@ -250,7 +250,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/ScheduledChore.html" tit
 <ul class="blockListLast">
 <li class="blockList">
 <h4>MIN_DELAY_TIME</h4>
-<pre>static final&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.PeriodicMemStoreFlusher.html#line.1747">MIN_DELAY_TIME</a></pre>
+<pre>static final&nbsp;int <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.PeriodicMemStoreFlusher.html#line.1748">MIN_DELAY_TIME</a></pre>
 <dl>
 <dt><span class="seeLabel">See Also:</span></dt>
 <dd><a href="../../../../../constant-values.html#org.apache.hadoop.hbase.regionserver.HRegionServer.PeriodicMemStoreFlusher.MIN_DELAY_TIME">Constant Field Values</a></dd>
@@ -271,7 +271,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/ScheduledChore.html" tit
 <ul class="blockListLast">
 <li class="blockList">
 <h4>PeriodicMemStoreFlusher</h4>
-<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.PeriodicMemStoreFlusher.html#line.1748">PeriodicMemStoreFlusher</a>(int&nbsp;cacheFlushInterval,
+<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.PeriodicMemStoreFlusher.html#line.1749">PeriodicMemStoreFlusher</a>(int&nbsp;cacheFlushInterval,
                                <a href="../../../../../org/apache/hadoop/hbase/regionserver/HRegionServer.html" title="class in org.apache.hadoop.hbase.regionserver">HRegionServer</a>&nbsp;server)</pre>
 </li>
 </ul>
@@ -289,7 +289,7 @@ extends <a href="../../../../../org/apache/hadoop/hbase/ScheduledChore.html" tit
 <ul class="blockListLast">
 <li class="blockList">
 <h4>chore</h4>
-<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.PeriodicMemStoreFlusher.html#line.1754">chore</a>()</pre>
+<pre>protected&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/HRegionServer.PeriodicMemStoreFlusher.html#line.1755">chore</a>()</pre>
 <div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../org/apache/hadoop/hbase/ScheduledChore.html#chore--">ScheduledChore</a></code></span></div>
 <div class="block">The task to execute on each scheduled execution of the Chore</div>
 <dl>


[32/32] hbase-site git commit: Published site at .

Posted by gi...@apache.org.
Published site at .


Project: http://git-wip-us.apache.org/repos/asf/hbase-site/repo
Commit: http://git-wip-us.apache.org/repos/asf/hbase-site/commit/29b27596
Tree: http://git-wip-us.apache.org/repos/asf/hbase-site/tree/29b27596
Diff: http://git-wip-us.apache.org/repos/asf/hbase-site/diff/29b27596

Branch: refs/heads/asf-site
Commit: 29b27596babc4c58693988e5d67c0cef0fe30143
Parents: f04fd3a
Author: jenkins <bu...@apache.org>
Authored: Sat Dec 2 15:17:17 2017 +0000
Committer: jenkins <bu...@apache.org>
Committed: Sat Dec 2 15:17:17 2017 +0000

----------------------------------------------------------------------
 acid-semantics.html                             |     4 +-
 apache_hbase_reference_guide.pdf                |     4 +-
 book.html                                       |     2 +-
 bulk-loads.html                                 |     4 +-
 checkstyle-aggregate.html                       | 31128 +++++++++--------
 checkstyle.rss                                  |    62 +-
 coc.html                                        |     4 +-
 cygwin.html                                     |     4 +-
 dependencies.html                               |     4 +-
 dependency-convergence.html                     |     4 +-
 dependency-info.html                            |     4 +-
 dependency-management.html                      |    22 +-
 devapidocs/allclasses-frame.html                |     4 +
 devapidocs/allclasses-noframe.html              |     4 +
 devapidocs/constant-values.html                 |   135 +-
 devapidocs/index-all.html                       |   209 +-
 .../hadoop/hbase/backup/package-tree.html       |     4 +-
 .../hadoop/hbase/class-use/TableName.html       |   111 +
 .../hadoop/hbase/client/package-tree.html       |    26 +-
 .../hadoop/hbase/executor/package-tree.html     |     2 +-
 .../hadoop/hbase/filter/package-tree.html       |     6 +-
 .../hbase/http/AdminAuthorizedServlet.html      |    11 +-
 .../apache/hadoop/hbase/http/package-tree.html  |     2 +-
 .../hadoop/hbase/io/hfile/package-tree.html     |     6 +-
 .../apache/hadoop/hbase/ipc/package-tree.html   |     2 +-
 .../hadoop/hbase/mapreduce/package-tree.html    |     4 +-
 .../hbase/master/balancer/package-tree.html     |     2 +-
 .../hadoop/hbase/master/package-tree.html       |     4 +-
 .../apache/hadoop/hbase/metrics/BaseSource.html |     2 +-
 .../hadoop/hbase/metrics/BaseSourceImpl.html    |     2 +-
 .../hbase/metrics/class-use/BaseSource.html     |     7 +
 .../hbase/metrics/class-use/BaseSourceImpl.html |     7 +
 .../hadoop/hbase/monitoring/package-tree.html   |     2 +-
 .../org/apache/hadoop/hbase/package-tree.html   |    16 +-
 .../hadoop/hbase/procedure2/package-tree.html   |     8 +-
 .../hadoop/hbase/quotas/package-tree.html       |     2 +-
 .../HRegionServer.CompactionChecker.html        |    14 +-
 .../HRegionServer.MovedRegionInfo.html          |    16 +-
 .../HRegionServer.MovedRegionsCleaner.html      |    16 +-
 .../HRegionServer.PeriodicMemStoreFlusher.html  |    12 +-
 .../hbase/regionserver/HRegionServer.html       |   260 +-
 .../hbase/regionserver/MetricsRegionServer.html |   223 +-
 .../MetricsTableAggregateSourceImpl.html        |     4 +-
 .../regionserver/MetricsTableLatencies.html     |   677 +
 ...tricsTableLatenciesImpl.TableHistograms.html |   522 +
 .../regionserver/MetricsTableLatenciesImpl.html |   642 +
 .../hbase/regionserver/MetricsTableSource.html  |     4 +-
 .../regionserver/RSRpcServices.LogDelegate.html |     4 +-
 .../hbase/regionserver/RSRpcServices.html       |   154 +-
 .../RegionServerStoppedException.html           |     4 +-
 .../regionserver/RegionServerTableMetrics.html  |   433 +
 .../regionserver/RegionServicesForStores.html   |     4 +-
 .../class-use/MetricsRegionServerSource.html    |     5 +-
 .../class-use/MetricsRegionServerWrapper.html   |     8 +-
 .../class-use/MetricsTableLatencies.html        |   181 +
 ...tricsTableLatenciesImpl.TableHistograms.html |   178 +
 .../class-use/MetricsTableLatenciesImpl.html    |   125 +
 .../class-use/RegionServerTableMetrics.html     |   193 +
 .../compactions/CompactionRequestImpl.html      |    72 +-
 .../DateTieredCompactionRequest.html            |     4 +-
 .../hbase/regionserver/package-frame.html       |     4 +
 .../hbase/regionserver/package-summary.html     |   197 +-
 .../hadoop/hbase/regionserver/package-tree.html |    18 +-
 .../hadoop/hbase/regionserver/package-use.html  |   119 +-
 .../regionserver/querymatcher/package-tree.html |     2 +-
 .../replication/regionserver/package-tree.html  |     2 +-
 .../hadoop/hbase/rest/model/package-tree.html   |     2 +-
 .../hbase/security/access/package-tree.html     |     2 +-
 .../hadoop/hbase/security/package-tree.html     |     2 +-
 .../hadoop/hbase/thrift/package-tree.html       |     2 +-
 .../apache/hadoop/hbase/util/package-tree.html  |    10 +-
 .../apache/hadoop/hbase/wal/package-tree.html   |     2 +-
 .../metrics2/class-use/MetricHistogram.html     |    80 +-
 .../lib/class-use/DynamicMetricsRegistry.html   |    12 +
 devapidocs/overview-tree.html                   |     6 +-
 .../org/apache/hadoop/hbase/Version.html        |     6 +-
 .../HRegionServer.CompactionChecker.html        |  4407 +--
 .../HRegionServer.MovedRegionInfo.html          |  4407 +--
 .../HRegionServer.MovedRegionsCleaner.html      |  4407 +--
 .../HRegionServer.PeriodicMemStoreFlusher.html  |  4407 +--
 .../hbase/regionserver/HRegionServer.html       |  4407 +--
 .../hbase/regionserver/MetricsRegionServer.html |   313 +-
 .../regionserver/MetricsTableLatencies.html     |   197 +
 ...tricsTableLatenciesImpl.TableHistograms.html |   247 +
 .../regionserver/MetricsTableLatenciesImpl.html |   247 +
 .../regionserver/RSRpcServices.LogDelegate.html |  5516 +--
 ...SRpcServices.RegionScannerCloseCallBack.html |  5516 +--
 .../RSRpcServices.RegionScannerHolder.html      |  5516 +--
 ...pcServices.RegionScannerShippedCallBack.html |  5516 +--
 ...RpcServices.RegionScannersCloseCallBack.html |  5516 +--
 .../RSRpcServices.ScannerListener.html          |  5516 +--
 .../hbase/regionserver/RSRpcServices.html       |  5516 +--
 .../regionserver/RegionServerTableMetrics.html  |   143 +
 ...actionRequestImpl.DisplayCompactionType.html |   114 +-
 .../compactions/CompactionRequestImpl.html      |   114 +-
 export_control.html                             |     4 +-
 hbase-annotations/checkstyle.html               |     4 +-
 hbase-annotations/dependencies.html             |     4 +-
 hbase-annotations/dependency-convergence.html   |     4 +-
 hbase-annotations/dependency-info.html          |     4 +-
 hbase-annotations/dependency-management.html    |    22 +-
 hbase-annotations/index.html                    |     4 +-
 hbase-annotations/integration.html              |     4 +-
 hbase-annotations/issue-tracking.html           |     4 +-
 hbase-annotations/license.html                  |     4 +-
 hbase-annotations/mail-lists.html               |     4 +-
 hbase-annotations/plugin-management.html        |     4 +-
 hbase-annotations/plugins.html                  |     4 +-
 hbase-annotations/project-info.html             |     4 +-
 hbase-annotations/project-reports.html          |     4 +-
 hbase-annotations/project-summary.html          |     4 +-
 hbase-annotations/source-repository.html        |     4 +-
 hbase-annotations/team-list.html                |     4 +-
 hbase-build-configuration/dependencies.html     |     4 +-
 .../dependency-convergence.html                 |     4 +-
 hbase-build-configuration/dependency-info.html  |     4 +-
 .../dependency-management.html                  |    22 +-
 .../hbase-archetypes/dependencies.html          |     4 +-
 .../dependency-convergence.html                 |     4 +-
 .../hbase-archetypes/dependency-info.html       |     4 +-
 .../hbase-archetypes/dependency-management.html |    22 +-
 .../hbase-archetype-builder/dependencies.html   |     4 +-
 .../dependency-convergence.html                 |     4 +-
 .../dependency-info.html                        |     4 +-
 .../dependency-management.html                  |    22 +-
 .../hbase-archetype-builder/index.html          |     4 +-
 .../hbase-archetype-builder/integration.html    |     4 +-
 .../hbase-archetype-builder/issue-tracking.html |     4 +-
 .../hbase-archetype-builder/license.html        |     4 +-
 .../hbase-archetype-builder/mail-lists.html     |     4 +-
 .../plugin-management.html                      |     4 +-
 .../hbase-archetype-builder/plugins.html        |     4 +-
 .../hbase-archetype-builder/project-info.html   |     4 +-
 .../project-summary.html                        |     4 +-
 .../source-repository.html                      |     4 +-
 .../hbase-archetype-builder/team-list.html      |     4 +-
 .../hbase-client-project/checkstyle.html        |     4 +-
 .../hbase-client-project/dependencies.html      |   122 +-
 .../dependency-convergence.html                 |     4 +-
 .../hbase-client-project/dependency-info.html   |     4 +-
 .../dependency-management.html                  |    22 +-
 .../hbase-client-project/index.html             |     4 +-
 .../hbase-client-project/integration.html       |     4 +-
 .../hbase-client-project/issue-tracking.html    |     4 +-
 .../hbase-client-project/license.html           |     4 +-
 .../hbase-client-project/mail-lists.html        |     4 +-
 .../hbase-client-project/plugin-management.html |     4 +-
 .../hbase-client-project/plugins.html           |     4 +-
 .../hbase-client-project/project-info.html      |     4 +-
 .../hbase-client-project/project-reports.html   |     4 +-
 .../hbase-client-project/project-summary.html   |     4 +-
 .../hbase-client-project/source-repository.html |     4 +-
 .../hbase-client-project/team-list.html         |     4 +-
 .../hbase-shaded-client-project/checkstyle.html |     4 +-
 .../dependencies.html                           |   122 +-
 .../dependency-convergence.html                 |     4 +-
 .../dependency-info.html                        |     4 +-
 .../dependency-management.html                  |    22 +-
 .../hbase-shaded-client-project/index.html      |     4 +-
 .../integration.html                            |     4 +-
 .../issue-tracking.html                         |     4 +-
 .../hbase-shaded-client-project/license.html    |     4 +-
 .../hbase-shaded-client-project/mail-lists.html |     4 +-
 .../plugin-management.html                      |     4 +-
 .../hbase-shaded-client-project/plugins.html    |     4 +-
 .../project-info.html                           |     4 +-
 .../project-reports.html                        |     4 +-
 .../project-summary.html                        |     4 +-
 .../source-repository.html                      |     4 +-
 .../hbase-shaded-client-project/team-list.html  |     4 +-
 .../hbase-archetypes/index.html                 |     4 +-
 .../hbase-archetypes/integration.html           |     4 +-
 .../hbase-archetypes/issue-tracking.html        |     4 +-
 .../hbase-archetypes/license.html               |     4 +-
 .../hbase-archetypes/mail-lists.html            |     4 +-
 .../hbase-archetypes/plugin-management.html     |     4 +-
 .../hbase-archetypes/plugins.html               |     4 +-
 .../hbase-archetypes/project-info.html          |     4 +-
 .../hbase-archetypes/project-summary.html       |     4 +-
 .../hbase-archetypes/source-repository.html     |     4 +-
 .../hbase-archetypes/team-list.html             |     4 +-
 .../hbase-spark/checkstyle.html                 |     4 +-
 .../hbase-spark/dependencies.html               |   120 +-
 .../hbase-spark/dependency-convergence.html     |     4 +-
 .../hbase-spark/dependency-info.html            |     4 +-
 .../hbase-spark/dependency-management.html      |    22 +-
 .../hbase-spark/index.html                      |     4 +-
 .../hbase-spark/integration.html                |     4 +-
 .../hbase-spark/issue-tracking.html             |     4 +-
 .../hbase-spark/license.html                    |     4 +-
 .../hbase-spark/mail-lists.html                 |     4 +-
 .../hbase-spark/plugin-management.html          |     4 +-
 .../hbase-spark/plugins.html                    |     4 +-
 .../hbase-spark/project-info.html               |     4 +-
 .../hbase-spark/project-reports.html            |     4 +-
 .../hbase-spark/project-summary.html            |     4 +-
 .../hbase-spark/source-repository.html          |     4 +-
 .../hbase-spark/team-list.html                  |     4 +-
 hbase-build-configuration/index.html            |     4 +-
 hbase-build-configuration/integration.html      |     4 +-
 hbase-build-configuration/issue-tracking.html   |     4 +-
 hbase-build-configuration/license.html          |     4 +-
 hbase-build-configuration/mail-lists.html       |     4 +-
 .../plugin-management.html                      |     4 +-
 hbase-build-configuration/plugins.html          |     4 +-
 hbase-build-configuration/project-info.html     |     4 +-
 hbase-build-configuration/project-summary.html  |     4 +-
 .../source-repository.html                      |     4 +-
 hbase-build-configuration/team-list.html        |     4 +-
 hbase-shaded-check-invariants/checkstyle.html   |     4 +-
 hbase-shaded-check-invariants/dependencies.html |     4 +-
 .../dependency-convergence.html                 |     4 +-
 .../dependency-info.html                        |     4 +-
 .../dependency-management.html                  |    22 +-
 hbase-shaded-check-invariants/index.html        |     4 +-
 hbase-shaded-check-invariants/integration.html  |     4 +-
 .../issue-tracking.html                         |     4 +-
 hbase-shaded-check-invariants/license.html      |     4 +-
 hbase-shaded-check-invariants/mail-lists.html   |     4 +-
 .../plugin-management.html                      |     4 +-
 hbase-shaded-check-invariants/plugins.html      |     4 +-
 hbase-shaded-check-invariants/project-info.html |     4 +-
 .../project-reports.html                        |     4 +-
 .../project-summary.html                        |     4 +-
 .../source-repository.html                      |     4 +-
 hbase-shaded-check-invariants/team-list.html    |     4 +-
 index.html                                      |     4 +-
 integration.html                                |     4 +-
 issue-tracking.html                             |     4 +-
 license.html                                    |     4 +-
 mail-lists.html                                 |     4 +-
 metrics.html                                    |     4 +-
 old_news.html                                   |     4 +-
 plugin-management.html                          |     4 +-
 plugins.html                                    |     4 +-
 poweredbyhbase.html                             |     4 +-
 project-info.html                               |     4 +-
 project-reports.html                            |     4 +-
 project-summary.html                            |     4 +-
 pseudo-distributed.html                         |     4 +-
 replication.html                                |     4 +-
 resources.html                                  |     4 +-
 source-repository.html                          |     4 +-
 sponsors.html                                   |     4 +-
 supportingprojects.html                         |     4 +-
 team-list.html                                  |     4 +-
 testdevapidocs/allclasses-frame.html            |     1 +
 testdevapidocs/allclasses-noframe.html          |     1 +
 testdevapidocs/index-all.html                   |    14 +
 .../org/apache/hadoop/hbase/package-tree.html   |    12 +-
 .../hadoop/hbase/procedure/package-tree.html    |     8 +-
 .../hadoop/hbase/procedure2/package-tree.html   |     2 +-
 .../regionserver/TestMetricsTableAggregate.html |     4 +-
 .../regionserver/TestMetricsTableLatencies.html |   313 +
 .../TestMetricsTableSourceImpl.html             |     4 +-
 .../class-use/TestMetricsTableLatencies.html    |   125 +
 .../hbase/regionserver/package-frame.html       |     1 +
 .../hbase/regionserver/package-summary.html     |   226 +-
 .../hadoop/hbase/regionserver/package-tree.html |     5 +-
 .../hadoop/hbase/test/MetricsAssertHelper.html  |    26 +-
 .../hbase/test/MetricsAssertHelperImpl.html     |    33 +-
 .../test/class-use/MetricsAssertHelper.html     |     8 +-
 .../apache/hadoop/hbase/test/package-tree.html  |     4 +-
 .../apache/hadoop/hbase/wal/package-tree.html   |     4 +-
 testdevapidocs/overview-tree.html               |     1 +
 .../client/TestHTableMultiplexerFlushCache.html |     2 +-
 .../regionserver/TestMetricsRegionServer.html   |    26 +-
 .../regionserver/TestMetricsTableLatencies.html |   140 +
 .../hadoop/hbase/test/MetricsAssertHelper.html  |     9 +-
 ...ricsAssertHelperImpl.MockMetricsBuilder.html |    50 +-
 ...tricsAssertHelperImpl.MockRecordBuilder.html |    50 +-
 .../hbase/test/MetricsAssertHelperImpl.html     |    50 +-
 272 files changed, 52897 insertions(+), 47389 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/hbase-site/blob/29b27596/acid-semantics.html
----------------------------------------------------------------------
diff --git a/acid-semantics.html b/acid-semantics.html
index f7b94c9..50d51f9 100644
--- a/acid-semantics.html
+++ b/acid-semantics.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="20171201" />
+    <meta name="Date-Revision-yyyymmdd" content="20171202" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013;  
       Apache HBase (TM) ACID Properties
@@ -606,7 +606,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: 2017-12-01</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-02</li>
             </p>
                 </div>
 

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/29b27596/apache_hbase_reference_guide.pdf
----------------------------------------------------------------------
diff --git a/apache_hbase_reference_guide.pdf b/apache_hbase_reference_guide.pdf
index 3942b5f..6a68825 100644
--- a/apache_hbase_reference_guide.pdf
+++ b/apache_hbase_reference_guide.pdf
@@ -5,8 +5,8 @@
 /Author (Apache HBase Team)
 /Creator (Asciidoctor PDF 1.5.0.alpha.15, based on Prawn 2.2.2)
 /Producer (Apache HBase Team)
-/ModDate (D:20171201144755+00'00')
-/CreationDate (D:20171201144755+00'00')
+/ModDate (D:20171202144741+00'00')
+/CreationDate (D:20171202144741+00'00')
 >>
 endobj
 2 0 obj

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/29b27596/book.html
----------------------------------------------------------------------
diff --git a/book.html b/book.html
index 3c7ea7b..a4ea0f7 100644
--- a/book.html
+++ b/book.html
@@ -36799,7 +36799,7 @@ The server will return cellblocks compressed using this same compressor as long
 <div id="footer">
 <div id="footer-text">
 Version 3.0.0-SNAPSHOT<br>
-Last updated 2017-12-01 14:29:42 UTC
+Last updated 2017-12-02 14:29:37 UTC
 </div>
 </div>
 </body>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/29b27596/bulk-loads.html
----------------------------------------------------------------------
diff --git a/bulk-loads.html b/bulk-loads.html
index a6cebf5..df98275 100644
--- a/bulk-loads.html
+++ b/bulk-loads.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="20171201" />
+    <meta name="Date-Revision-yyyymmdd" content="20171202" />
     <meta http-equiv="Content-Language" content="en" />
     <title>Apache HBase &#x2013;  
       Bulk Loads in Apache HBase (TM)
@@ -311,7 +311,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: 2017-12-01</li>
+                  <li id="publishDate" class="pull-right">Last Published: 2017-12-02</li>
             </p>
                 </div>
 


[09/32] hbase-site git commit: Published site at .

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/29b27596/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.RegionScannersCloseCallBack.html
----------------------------------------------------------------------
diff --git a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.RegionScannersCloseCallBack.html b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.RegionScannersCloseCallBack.html
index b7f041a..c0ea82b 100644
--- a/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.RegionScannersCloseCallBack.html
+++ b/devapidocs/src-html/org/apache/hadoop/hbase/regionserver/RSRpcServices.RegionScannersCloseCallBack.html
@@ -668,2792 +668,2806 @@
 <span class="sourceLineNo">660</span>    }<a name="line.660"></a>
 <span class="sourceLineNo">661</span>    if (regionServer.metricsRegionServer != null) {<a name="line.661"></a>
 <span class="sourceLineNo">662</span>      regionServer.metricsRegionServer.updateAppend(<a name="line.662"></a>
-<span class="sourceLineNo">663</span>        EnvironmentEdgeManager.currentTime() - before);<a name="line.663"></a>
-<span class="sourceLineNo">664</span>    }<a name="line.664"></a>
-<span class="sourceLineNo">665</span>    return r;<a name="line.665"></a>
-<span class="sourceLineNo">666</span>  }<a name="line.666"></a>
-<span class="sourceLineNo">667</span><a name="line.667"></a>
-<span class="sourceLineNo">668</span>  /**<a name="line.668"></a>
-<span class="sourceLineNo">669</span>   * Execute an increment mutation.<a name="line.669"></a>
-<span class="sourceLineNo">670</span>   *<a name="line.670"></a>
-<span class="sourceLineNo">671</span>   * @param region<a name="line.671"></a>
-<span class="sourceLineNo">672</span>   * @param mutation<a name="line.672"></a>
-<span class="sourceLineNo">673</span>   * @return the Result<a name="line.673"></a>
-<span class="sourceLineNo">674</span>   * @throws IOException<a name="line.674"></a>
-<span class="sourceLineNo">675</span>   */<a name="line.675"></a>
-<span class="sourceLineNo">676</span>  private Result increment(final HRegion region, final OperationQuota quota,<a name="line.676"></a>
-<span class="sourceLineNo">677</span>      final MutationProto mutation, final CellScanner cells, long nonceGroup,<a name="line.677"></a>
-<span class="sourceLineNo">678</span>      ActivePolicyEnforcement spaceQuota)<a name="line.678"></a>
-<span class="sourceLineNo">679</span>      throws IOException {<a name="line.679"></a>
-<span class="sourceLineNo">680</span>    long before = EnvironmentEdgeManager.currentTime();<a name="line.680"></a>
-<span class="sourceLineNo">681</span>    Increment increment = ProtobufUtil.toIncrement(mutation, cells);<a name="line.681"></a>
-<span class="sourceLineNo">682</span>    checkCellSizeLimit(region, increment);<a name="line.682"></a>
-<span class="sourceLineNo">683</span>    spaceQuota.getPolicyEnforcement(region).check(increment);<a name="line.683"></a>
-<span class="sourceLineNo">684</span>    quota.addMutation(increment);<a name="line.684"></a>
-<span class="sourceLineNo">685</span>    Result r = null;<a name="line.685"></a>
-<span class="sourceLineNo">686</span>    if (region.getCoprocessorHost() != null) {<a name="line.686"></a>
-<span class="sourceLineNo">687</span>      r = region.getCoprocessorHost().preIncrement(increment);<a name="line.687"></a>
-<span class="sourceLineNo">688</span>    }<a name="line.688"></a>
-<span class="sourceLineNo">689</span>    if (r == null) {<a name="line.689"></a>
-<span class="sourceLineNo">690</span>      boolean canProceed = startNonceOperation(mutation, nonceGroup);<a name="line.690"></a>
-<span class="sourceLineNo">691</span>      boolean success = false;<a name="line.691"></a>
-<span class="sourceLineNo">692</span>      try {<a name="line.692"></a>
-<span class="sourceLineNo">693</span>        long nonce = mutation.hasNonce() ? mutation.getNonce() : HConstants.NO_NONCE;<a name="line.693"></a>
-<span class="sourceLineNo">694</span>        if (canProceed) {<a name="line.694"></a>
-<span class="sourceLineNo">695</span>          r = region.increment(increment, nonceGroup, nonce);<a name="line.695"></a>
-<span class="sourceLineNo">696</span>        } else {<a name="line.696"></a>
-<span class="sourceLineNo">697</span>          // convert duplicate increment to get<a name="line.697"></a>
-<span class="sourceLineNo">698</span>          List&lt;Cell&gt; results = region.get(ProtobufUtil.toGet(mutation, cells), false, nonceGroup,<a name="line.698"></a>
-<span class="sourceLineNo">699</span>              nonce);<a name="line.699"></a>
-<span class="sourceLineNo">700</span>          r = Result.create(results);<a name="line.700"></a>
-<span class="sourceLineNo">701</span>        }<a name="line.701"></a>
-<span class="sourceLineNo">702</span>        success = true;<a name="line.702"></a>
-<span class="sourceLineNo">703</span>      } finally {<a name="line.703"></a>
-<span class="sourceLineNo">704</span>        if (canProceed) {<a name="line.704"></a>
-<span class="sourceLineNo">705</span>          endNonceOperation(mutation, nonceGroup, success);<a name="line.705"></a>
-<span class="sourceLineNo">706</span>        }<a name="line.706"></a>
-<span class="sourceLineNo">707</span>      }<a name="line.707"></a>
-<span class="sourceLineNo">708</span>      if (region.getCoprocessorHost() != null) {<a name="line.708"></a>
-<span class="sourceLineNo">709</span>        r = region.getCoprocessorHost().postIncrement(increment, r);<a name="line.709"></a>
-<span class="sourceLineNo">710</span>      }<a name="line.710"></a>
-<span class="sourceLineNo">711</span>    }<a name="line.711"></a>
-<span class="sourceLineNo">712</span>    if (regionServer.metricsRegionServer != null) {<a name="line.712"></a>
-<span class="sourceLineNo">713</span>      regionServer.metricsRegionServer.updateIncrement(<a name="line.713"></a>
-<span class="sourceLineNo">714</span>        EnvironmentEdgeManager.currentTime() - before);<a name="line.714"></a>
-<span class="sourceLineNo">715</span>    }<a name="line.715"></a>
-<span class="sourceLineNo">716</span>    return r;<a name="line.716"></a>
-<span class="sourceLineNo">717</span>  }<a name="line.717"></a>
-<span class="sourceLineNo">718</span><a name="line.718"></a>
-<span class="sourceLineNo">719</span>  /**<a name="line.719"></a>
-<span class="sourceLineNo">720</span>   * Run through the regionMutation &lt;code&gt;rm&lt;/code&gt; and per Mutation, do the work, and then when<a name="line.720"></a>
-<span class="sourceLineNo">721</span>   * done, add an instance of a {@link ResultOrException} that corresponds to each Mutation.<a name="line.721"></a>
-<span class="sourceLineNo">722</span>   * @param cellsToReturn  Could be null. May be allocated in this method.  This is what this<a name="line.722"></a>
-<span class="sourceLineNo">723</span>   * method returns as a 'result'.<a name="line.723"></a>
-<span class="sourceLineNo">724</span>   * @param closeCallBack the callback to be used with multigets<a name="line.724"></a>
-<span class="sourceLineNo">725</span>   * @param context the current RpcCallContext<a name="line.725"></a>
-<span class="sourceLineNo">726</span>   * @return Return the &lt;code&gt;cellScanner&lt;/code&gt; passed<a name="line.726"></a>
-<span class="sourceLineNo">727</span>   */<a name="line.727"></a>
-<span class="sourceLineNo">728</span>  private List&lt;CellScannable&gt; doNonAtomicRegionMutation(final HRegion region,<a name="line.728"></a>
-<span class="sourceLineNo">729</span>      final OperationQuota quota, final RegionAction actions, final CellScanner cellScanner,<a name="line.729"></a>
-<span class="sourceLineNo">730</span>      final RegionActionResult.Builder builder, List&lt;CellScannable&gt; cellsToReturn, long nonceGroup,<a name="line.730"></a>
-<span class="sourceLineNo">731</span>      final RegionScannersCloseCallBack closeCallBack, RpcCallContext context,<a name="line.731"></a>
-<span class="sourceLineNo">732</span>      ActivePolicyEnforcement spaceQuotaEnforcement) {<a name="line.732"></a>
-<span class="sourceLineNo">733</span>    // Gather up CONTIGUOUS Puts and Deletes in this mutations List.  Idea is that rather than do<a name="line.733"></a>
-<span class="sourceLineNo">734</span>    // one at a time, we instead pass them in batch.  Be aware that the corresponding<a name="line.734"></a>
-<span class="sourceLineNo">735</span>    // ResultOrException instance that matches each Put or Delete is then added down in the<a name="line.735"></a>
-<span class="sourceLineNo">736</span>    // doBatchOp call.  We should be staying aligned though the Put and Delete are deferred/batched<a name="line.736"></a>
-<span class="sourceLineNo">737</span>    List&lt;ClientProtos.Action&gt; mutations = null;<a name="line.737"></a>
-<span class="sourceLineNo">738</span>    long maxQuotaResultSize = Math.min(maxScannerResultSize, quota.getReadAvailable());<a name="line.738"></a>
-<span class="sourceLineNo">739</span>    IOException sizeIOE = null;<a name="line.739"></a>
-<span class="sourceLineNo">740</span>    Object lastBlock = null;<a name="line.740"></a>
-<span class="sourceLineNo">741</span>    ClientProtos.ResultOrException.Builder resultOrExceptionBuilder = ResultOrException.newBuilder();<a name="line.741"></a>
-<span class="sourceLineNo">742</span>    boolean hasResultOrException = false;<a name="line.742"></a>
-<span class="sourceLineNo">743</span>    for (ClientProtos.Action action : actions.getActionList()) {<a name="line.743"></a>
-<span class="sourceLineNo">744</span>      hasResultOrException = false;<a name="line.744"></a>
-<span class="sourceLineNo">745</span>      resultOrExceptionBuilder.clear();<a name="line.745"></a>
-<span class="sourceLineNo">746</span>      try {<a name="line.746"></a>
-<span class="sourceLineNo">747</span>        Result r = null;<a name="line.747"></a>
-<span class="sourceLineNo">748</span><a name="line.748"></a>
-<span class="sourceLineNo">749</span>        if (context != null<a name="line.749"></a>
-<span class="sourceLineNo">750</span>            &amp;&amp; context.isRetryImmediatelySupported()<a name="line.750"></a>
-<span class="sourceLineNo">751</span>            &amp;&amp; (context.getResponseCellSize() &gt; maxQuotaResultSize<a name="line.751"></a>
-<span class="sourceLineNo">752</span>              || context.getResponseBlockSize() + context.getResponseExceptionSize()<a name="line.752"></a>
-<span class="sourceLineNo">753</span>              &gt; maxQuotaResultSize)) {<a name="line.753"></a>
-<span class="sourceLineNo">754</span><a name="line.754"></a>
-<span class="sourceLineNo">755</span>          // We're storing the exception since the exception and reason string won't<a name="line.755"></a>
-<span class="sourceLineNo">756</span>          // change after the response size limit is reached.<a name="line.756"></a>
-<span class="sourceLineNo">757</span>          if (sizeIOE == null ) {<a name="line.757"></a>
-<span class="sourceLineNo">758</span>            // We don't need the stack un-winding do don't throw the exception.<a name="line.758"></a>
-<span class="sourceLineNo">759</span>            // Throwing will kill the JVM's JIT.<a name="line.759"></a>
-<span class="sourceLineNo">760</span>            //<a name="line.760"></a>
-<span class="sourceLineNo">761</span>            // Instead just create the exception and then store it.<a name="line.761"></a>
-<span class="sourceLineNo">762</span>            sizeIOE = new MultiActionResultTooLarge("Max size exceeded"<a name="line.762"></a>
-<span class="sourceLineNo">763</span>                + " CellSize: " + context.getResponseCellSize()<a name="line.763"></a>
-<span class="sourceLineNo">764</span>                + " BlockSize: " + context.getResponseBlockSize());<a name="line.764"></a>
-<span class="sourceLineNo">765</span><a name="line.765"></a>
-<span class="sourceLineNo">766</span>            // Only report the exception once since there's only one request that<a name="line.766"></a>
-<span class="sourceLineNo">767</span>            // caused the exception. Otherwise this number will dominate the exceptions count.<a name="line.767"></a>
-<span class="sourceLineNo">768</span>            rpcServer.getMetrics().exception(sizeIOE);<a name="line.768"></a>
-<span class="sourceLineNo">769</span>          }<a name="line.769"></a>
-<span class="sourceLineNo">770</span><a name="line.770"></a>
-<span class="sourceLineNo">771</span>          // Now that there's an exception is known to be created<a name="line.771"></a>
-<span class="sourceLineNo">772</span>          // use it for the response.<a name="line.772"></a>
-<span class="sourceLineNo">773</span>          //<a name="line.773"></a>
-<span class="sourceLineNo">774</span>          // This will create a copy in the builder.<a name="line.774"></a>
-<span class="sourceLineNo">775</span>          hasResultOrException = true;<a name="line.775"></a>
-<span class="sourceLineNo">776</span>          NameBytesPair pair = ResponseConverter.buildException(sizeIOE);<a name="line.776"></a>
-<span class="sourceLineNo">777</span>          resultOrExceptionBuilder.setException(pair);<a name="line.777"></a>
-<span class="sourceLineNo">778</span>          context.incrementResponseExceptionSize(pair.getSerializedSize());<a name="line.778"></a>
-<span class="sourceLineNo">779</span>          resultOrExceptionBuilder.setIndex(action.getIndex());<a name="line.779"></a>
-<span class="sourceLineNo">780</span>          builder.addResultOrException(resultOrExceptionBuilder.build());<a name="line.780"></a>
-<span class="sourceLineNo">781</span>          if (cellScanner != null) {<a name="line.781"></a>
-<span class="sourceLineNo">782</span>            skipCellsForMutation(action, cellScanner);<a name="line.782"></a>
-<span class="sourceLineNo">783</span>          }<a name="line.783"></a>
-<span class="sourceLineNo">784</span>          continue;<a name="line.784"></a>
-<span class="sourceLineNo">785</span>        }<a name="line.785"></a>
-<span class="sourceLineNo">786</span>        if (action.hasGet()) {<a name="line.786"></a>
-<span class="sourceLineNo">787</span>          long before = EnvironmentEdgeManager.currentTime();<a name="line.787"></a>
-<span class="sourceLineNo">788</span>          try {<a name="line.788"></a>
-<span class="sourceLineNo">789</span>            Get get = ProtobufUtil.toGet(action.getGet());<a name="line.789"></a>
-<span class="sourceLineNo">790</span>            if (context != null) {<a name="line.790"></a>
-<span class="sourceLineNo">791</span>              r = get(get, ((HRegion) region), closeCallBack, context);<a name="line.791"></a>
-<span class="sourceLineNo">792</span>            } else {<a name="line.792"></a>
-<span class="sourceLineNo">793</span>              r = region.get(get);<a name="line.793"></a>
-<span class="sourceLineNo">794</span>            }<a name="line.794"></a>
-<span class="sourceLineNo">795</span>          } finally {<a name="line.795"></a>
-<span class="sourceLineNo">796</span>            if (regionServer.metricsRegionServer != null) {<a name="line.796"></a>
-<span class="sourceLineNo">797</span>              regionServer.metricsRegionServer.updateGet(<a name="line.797"></a>
-<span class="sourceLineNo">798</span>                EnvironmentEdgeManager.currentTime() - before);<a name="line.798"></a>
-<span class="sourceLineNo">799</span>            }<a name="line.799"></a>
-<span class="sourceLineNo">800</span>          }<a name="line.800"></a>
-<span class="sourceLineNo">801</span>        } else if (action.hasServiceCall()) {<a name="line.801"></a>
-<span class="sourceLineNo">802</span>          hasResultOrException = true;<a name="line.802"></a>
-<span class="sourceLineNo">803</span>          try {<a name="line.803"></a>
-<span class="sourceLineNo">804</span>            com.google.protobuf.Message result =<a name="line.804"></a>
-<span class="sourceLineNo">805</span>                execServiceOnRegion(region, action.getServiceCall());<a name="line.805"></a>
-<span class="sourceLineNo">806</span>            ClientProtos.CoprocessorServiceResult.Builder serviceResultBuilder =<a name="line.806"></a>
-<span class="sourceLineNo">807</span>                ClientProtos.CoprocessorServiceResult.newBuilder();<a name="line.807"></a>
-<span class="sourceLineNo">808</span>            resultOrExceptionBuilder.setServiceResult(<a name="line.808"></a>
-<span class="sourceLineNo">809</span>                serviceResultBuilder.setValue(<a name="line.809"></a>
-<span class="sourceLineNo">810</span>                  serviceResultBuilder.getValueBuilder()<a name="line.810"></a>
-<span class="sourceLineNo">811</span>                    .setName(result.getClass().getName())<a name="line.811"></a>
-<span class="sourceLineNo">812</span>                    // TODO: Copy!!!<a name="line.812"></a>
-<span class="sourceLineNo">813</span>                    .setValue(UnsafeByteOperations.unsafeWrap(result.toByteArray()))));<a name="line.813"></a>
-<span class="sourceLineNo">814</span>          } catch (IOException ioe) {<a name="line.814"></a>
-<span class="sourceLineNo">815</span>            rpcServer.getMetrics().exception(ioe);<a name="line.815"></a>
-<span class="sourceLineNo">816</span>            NameBytesPair pair = ResponseConverter.buildException(ioe);<a name="line.816"></a>
-<span class="sourceLineNo">817</span>            resultOrExceptionBuilder.setException(pair);<a name="line.817"></a>
-<span class="sourceLineNo">818</span>            context.incrementResponseExceptionSize(pair.getSerializedSize());<a name="line.818"></a>
-<span class="sourceLineNo">819</span>          }<a name="line.819"></a>
-<span class="sourceLineNo">820</span>        } else if (action.hasMutation()) {<a name="line.820"></a>
-<span class="sourceLineNo">821</span>          MutationType type = action.getMutation().getMutateType();<a name="line.821"></a>
-<span class="sourceLineNo">822</span>          if (type != MutationType.PUT &amp;&amp; type != MutationType.DELETE &amp;&amp; mutations != null &amp;&amp;<a name="line.822"></a>
-<span class="sourceLineNo">823</span>              !mutations.isEmpty()) {<a name="line.823"></a>
-<span class="sourceLineNo">824</span>            // Flush out any Puts or Deletes already collected.<a name="line.824"></a>
-<span class="sourceLineNo">825</span>            doBatchOp(builder, region, quota, mutations, cellScanner, spaceQuotaEnforcement, false);<a name="line.825"></a>
-<span class="sourceLineNo">826</span>            mutations.clear();<a name="line.826"></a>
-<span class="sourceLineNo">827</span>          }<a name="line.827"></a>
-<span class="sourceLineNo">828</span>          switch (type) {<a name="line.828"></a>
-<span class="sourceLineNo">829</span>            case APPEND:<a name="line.829"></a>
-<span class="sourceLineNo">830</span>              r = append(region, quota, action.getMutation(), cellScanner, nonceGroup,<a name="line.830"></a>
-<span class="sourceLineNo">831</span>                  spaceQuotaEnforcement);<a name="line.831"></a>
-<span class="sourceLineNo">832</span>              break;<a name="line.832"></a>
-<span class="sourceLineNo">833</span>            case INCREMENT:<a name="line.833"></a>
-<span class="sourceLineNo">834</span>              r = increment(region, quota, action.getMutation(), cellScanner, nonceGroup,<a name="line.834"></a>
-<span class="sourceLineNo">835</span>                  spaceQuotaEnforcement);<a name="line.835"></a>
-<span class="sourceLineNo">836</span>              break;<a name="line.836"></a>
-<span class="sourceLineNo">837</span>            case PUT:<a name="line.837"></a>
-<span class="sourceLineNo">838</span>            case DELETE:<a name="line.838"></a>
-<span class="sourceLineNo">839</span>              // Collect the individual mutations and apply in a batch<a name="line.839"></a>
-<span class="sourceLineNo">840</span>              if (mutations == null) {<a name="line.840"></a>
-<span class="sourceLineNo">841</span>                mutations = new ArrayList&lt;&gt;(actions.getActionCount());<a name="line.841"></a>
-<span class="sourceLineNo">842</span>              }<a name="line.842"></a>
-<span class="sourceLineNo">843</span>              mutations.add(action);<a name="line.843"></a>
-<span class="sourceLineNo">844</span>              break;<a name="line.844"></a>
-<span class="sourceLineNo">845</span>            default:<a name="line.845"></a>
-<span class="sourceLineNo">846</span>              throw new DoNotRetryIOException("Unsupported mutate type: " + type.name());<a name="line.846"></a>
-<span class="sourceLineNo">847</span>          }<a name="line.847"></a>
-<span class="sourceLineNo">848</span>        } else {<a name="line.848"></a>
-<span class="sourceLineNo">849</span>          throw new HBaseIOException("Unexpected Action type");<a name="line.849"></a>
-<span class="sourceLineNo">850</span>        }<a name="line.850"></a>
-<span class="sourceLineNo">851</span>        if (r != null) {<a name="line.851"></a>
-<span class="sourceLineNo">852</span>          ClientProtos.Result pbResult = null;<a name="line.852"></a>
-<span class="sourceLineNo">853</span>          if (isClientCellBlockSupport(context)) {<a name="line.853"></a>
-<span class="sourceLineNo">854</span>            pbResult = ProtobufUtil.toResultNoData(r);<a name="line.854"></a>
-<span class="sourceLineNo">855</span>            //  Hard to guess the size here.  Just make a rough guess.<a name="line.855"></a>
-<span class="sourceLineNo">856</span>            if (cellsToReturn == null) {<a name="line.856"></a>
-<span class="sourceLineNo">857</span>              cellsToReturn = new ArrayList&lt;&gt;();<a name="line.857"></a>
-<span class="sourceLineNo">858</span>            }<a name="line.858"></a>
-<span class="sourceLineNo">859</span>            cellsToReturn.add(r);<a name="line.859"></a>
-<span class="sourceLineNo">860</span>          } else {<a name="line.860"></a>
-<span class="sourceLineNo">861</span>            pbResult = ProtobufUtil.toResult(r);<a name="line.861"></a>
-<span class="sourceLineNo">862</span>          }<a name="line.862"></a>
-<span class="sourceLineNo">863</span>          lastBlock = addSize(context, r, lastBlock);<a name="line.863"></a>
-<span class="sourceLineNo">864</span>          hasResultOrException = true;<a name="line.864"></a>
-<span class="sourceLineNo">865</span>          resultOrExceptionBuilder.setResult(pbResult);<a name="line.865"></a>
-<span class="sourceLineNo">866</span>        }<a name="line.866"></a>
-<span class="sourceLineNo">867</span>        // Could get to here and there was no result and no exception.  Presumes we added<a name="line.867"></a>
-<span class="sourceLineNo">868</span>        // a Put or Delete to the collecting Mutations List for adding later.  In this<a name="line.868"></a>
-<span class="sourceLineNo">869</span>        // case the corresponding ResultOrException instance for the Put or Delete will be added<a name="line.869"></a>
-<span class="sourceLineNo">870</span>        // down in the doBatchOp method call rather than up here.<a name="line.870"></a>
-<span class="sourceLineNo">871</span>      } catch (IOException ie) {<a name="line.871"></a>
-<span class="sourceLineNo">872</span>        rpcServer.getMetrics().exception(ie);<a name="line.872"></a>
-<span class="sourceLineNo">873</span>        hasResultOrException = true;<a name="line.873"></a>
-<span class="sourceLineNo">874</span>        NameBytesPair pair = ResponseConverter.buildException(ie);<a name="line.874"></a>
-<span class="sourceLineNo">875</span>        resultOrExceptionBuilder.setException(pair);<a name="line.875"></a>
-<span class="sourceLineNo">876</span>        context.incrementResponseExceptionSize(pair.getSerializedSize());<a name="line.876"></a>
-<span class="sourceLineNo">877</span>      }<a name="line.877"></a>
-<span class="sourceLineNo">878</span>      if (hasResultOrException) {<a name="line.878"></a>
-<span class="sourceLineNo">879</span>        // Propagate index.<a name="line.879"></a>
-<span class="sourceLineNo">880</span>        resultOrExceptionBuilder.setIndex(action.getIndex());<a name="line.880"></a>
-<span class="sourceLineNo">881</span>        builder.addResultOrException(resultOrExceptionBuilder.build());<a name="line.881"></a>
-<span class="sourceLineNo">882</span>      }<a name="line.882"></a>
-<span class="sourceLineNo">883</span>    }<a name="line.883"></a>
-<span class="sourceLineNo">884</span>    // Finish up any outstanding mutations<a name="line.884"></a>
-<span class="sourceLineNo">885</span>    if (mutations != null &amp;&amp; !mutations.isEmpty()) {<a name="line.885"></a>
-<span class="sourceLineNo">886</span>      try {<a name="line.886"></a>
-<span class="sourceLineNo">887</span>        doBatchOp(builder, region, quota, mutations, cellScanner, spaceQuotaEnforcement, false);<a name="line.887"></a>
-<span class="sourceLineNo">888</span>      } catch (IOException ioe) {<a name="line.888"></a>
-<span class="sourceLineNo">889</span>        rpcServer.getMetrics().exception(ioe);<a name="line.889"></a>
-<span class="sourceLineNo">890</span>        NameBytesPair pair = ResponseConverter.buildException(ioe);<a name="line.890"></a>
-<span class="sourceLineNo">891</span>        resultOrExceptionBuilder.setException(pair);<a name="line.891"></a>
-<span class="sourceLineNo">892</span>        context.incrementResponseExceptionSize(pair.getSerializedSize());<a name="line.892"></a>
-<span class="sourceLineNo">893</span>        builder.addResultOrException(resultOrExceptionBuilder.build());<a name="line.893"></a>
-<span class="sourceLineNo">894</span>      }<a name="line.894"></a>
-<span class="sourceLineNo">895</span>    }<a name="line.895"></a>
-<span class="sourceLineNo">896</span>    return cellsToReturn;<a name="line.896"></a>
-<span class="sourceLineNo">897</span>  }<a name="line.897"></a>
-<span class="sourceLineNo">898</span><a name="line.898"></a>
-<span class="sourceLineNo">899</span>  private void checkCellSizeLimit(final HRegion r, final Mutation m) throws IOException {<a name="line.899"></a>
-<span class="sourceLineNo">900</span>    if (r.maxCellSize &gt; 0) {<a name="line.900"></a>
-<span class="sourceLineNo">901</span>      CellScanner cells = m.cellScanner();<a name="line.901"></a>
-<span class="sourceLineNo">902</span>      while (cells.advance()) {<a name="line.902"></a>
-<span class="sourceLineNo">903</span>        int size = PrivateCellUtil.estimatedSerializedSizeOf(cells.current());<a name="line.903"></a>
-<span class="sourceLineNo">904</span>        if (size &gt; r.maxCellSize) {<a name="line.904"></a>
-<span class="sourceLineNo">905</span>          String msg = "Cell with size " + size + " exceeds limit of " + r.maxCellSize + " bytes";<a name="line.905"></a>
-<span class="sourceLineNo">906</span>          if (LOG.isDebugEnabled()) {<a name="line.906"></a>
-<span class="sourceLineNo">907</span>            LOG.debug(msg);<a name="line.907"></a>
-<span class="sourceLineNo">908</span>          }<a name="line.908"></a>
-<span class="sourceLineNo">909</span>          throw new DoNotRetryIOException(msg);<a name="line.909"></a>
-<span class="sourceLineNo">910</span>        }<a name="line.910"></a>
-<span class="sourceLineNo">911</span>      }<a name="line.911"></a>
-<span class="sourceLineNo">912</span>    }<a name="line.912"></a>
-<span class="sourceLineNo">913</span>  }<a name="line.913"></a>
-<span class="sourceLineNo">914</span><a name="line.914"></a>
-<span class="sourceLineNo">915</span>  /**<a name="line.915"></a>
-<span class="sourceLineNo">916</span>   * Execute a list of Put/Delete mutations.<a name="line.916"></a>
-<span class="sourceLineNo">917</span>   *<a name="line.917"></a>
-<span class="sourceLineNo">918</span>   * @param builder<a name="line.918"></a>
-<span class="sourceLineNo">919</span>   * @param region<a name="line.919"></a>
-<span class="sourceLineNo">920</span>   * @param mutations<a name="line.920"></a>
-<span class="sourceLineNo">921</span>   */<a name="line.921"></a>
-<span class="sourceLineNo">922</span>  private void doBatchOp(final RegionActionResult.Builder builder, final HRegion region,<a name="line.922"></a>
-<span class="sourceLineNo">923</span>      final OperationQuota quota, final List&lt;ClientProtos.Action&gt; mutations,<a name="line.923"></a>
-<span class="sourceLineNo">924</span>      final CellScanner cells, ActivePolicyEnforcement spaceQuotaEnforcement, boolean atomic)<a name="line.924"></a>
-<span class="sourceLineNo">925</span>      throws IOException {<a name="line.925"></a>
-<span class="sourceLineNo">926</span>    Mutation[] mArray = new Mutation[mutations.size()];<a name="line.926"></a>
-<span class="sourceLineNo">927</span>    long before = EnvironmentEdgeManager.currentTime();<a name="line.927"></a>
-<span class="sourceLineNo">928</span>    boolean batchContainsPuts = false, batchContainsDelete = false;<a name="line.928"></a>
-<span class="sourceLineNo">929</span>    try {<a name="line.929"></a>
-<span class="sourceLineNo">930</span>      /** HBASE-17924<a name="line.930"></a>
-<span class="sourceLineNo">931</span>       * mutationActionMap is a map to map the relation between mutations and actions<a name="line.931"></a>
-<span class="sourceLineNo">932</span>       * since mutation array may have been reoredered.In order to return the right<a name="line.932"></a>
-<span class="sourceLineNo">933</span>       * result or exception to the corresponding actions, We need to know which action<a name="line.933"></a>
-<span class="sourceLineNo">934</span>       * is the mutation belong to. We can't sort ClientProtos.Action array, since they<a name="line.934"></a>
-<span class="sourceLineNo">935</span>       * are bonded to cellscanners.<a name="line.935"></a>
-<span class="sourceLineNo">936</span>       */<a name="line.936"></a>
-<span class="sourceLineNo">937</span>      Map&lt;Mutation, ClientProtos.Action&gt; mutationActionMap = new HashMap&lt;&gt;();<a name="line.937"></a>
-<span class="sourceLineNo">938</span>      int i = 0;<a name="line.938"></a>
-<span class="sourceLineNo">939</span>      for (ClientProtos.Action action: mutations) {<a name="line.939"></a>
-<span class="sourceLineNo">940</span>        MutationProto m = action.getMutation();<a name="line.940"></a>
-<span class="sourceLineNo">941</span>        Mutation mutation;<a name="line.941"></a>
-<span class="sourceLineNo">942</span>        if (m.getMutateType() == MutationType.PUT) {<a name="line.942"></a>
-<span class="sourceLineNo">943</span>          mutation = ProtobufUtil.toPut(m, cells);<a name="line.943"></a>
-<span class="sourceLineNo">944</span>          batchContainsPuts = true;<a name="line.944"></a>
-<span class="sourceLineNo">945</span>        } else {<a name="line.945"></a>
-<span class="sourceLineNo">946</span>          mutation = ProtobufUtil.toDelete(m, cells);<a name="line.946"></a>
-<span class="sourceLineNo">947</span>          batchContainsDelete = true;<a name="line.947"></a>
-<span class="sourceLineNo">948</span>        }<a name="line.948"></a>
-<span class="sourceLineNo">949</span>        mutationActionMap.put(mutation, action);<a name="line.949"></a>
-<span class="sourceLineNo">950</span>        mArray[i++] = mutation;<a name="line.950"></a>
-<span class="sourceLineNo">951</span>        checkCellSizeLimit(region, mutation);<a name="line.951"></a>
-<span class="sourceLineNo">952</span>        // Check if a space quota disallows this mutation<a name="line.952"></a>
-<span class="sourceLineNo">953</span>        spaceQuotaEnforcement.getPolicyEnforcement(region).check(mutation);<a name="line.953"></a>
-<span class="sourceLineNo">954</span>        quota.addMutation(mutation);<a name="line.954"></a>
-<span class="sourceLineNo">955</span>      }<a name="line.955"></a>
-<span class="sourceLineNo">956</span><a name="line.956"></a>
-<span class="sourceLineNo">957</span>      if (!region.getRegionInfo().isMetaRegion()) {<a name="line.957"></a>
-<span class="sourceLineNo">958</span>        regionServer.cacheFlusher.reclaimMemStoreMemory();<a name="line.958"></a>
-<span class="sourceLineNo">959</span>      }<a name="line.959"></a>
-<span class="sourceLineNo">960</span><a name="line.960"></a>
-<span class="sourceLineNo">961</span>      // HBASE-17924<a name="line.961"></a>
-<span class="sourceLineNo">962</span>      // Sort to improve lock efficiency for non-atomic batch of operations. If atomic (mostly<a name="line.962"></a>
-<span class="sourceLineNo">963</span>      // called from mutateRows()), order is preserved as its expected from the client<a name="line.963"></a>
-<span class="sourceLineNo">964</span>      if (!atomic) {<a name="line.964"></a>
-<span class="sourceLineNo">965</span>        Arrays.sort(mArray);<a name="line.965"></a>
-<span class="sourceLineNo">966</span>      }<a name="line.966"></a>
-<span class="sourceLineNo">967</span><a name="line.967"></a>
-<span class="sourceLineNo">968</span>      OperationStatus[] codes = region.batchMutate(mArray, atomic, HConstants.NO_NONCE,<a name="line.968"></a>
-<span class="sourceLineNo">969</span>        HConstants.NO_NONCE);<a name="line.969"></a>
-<span class="sourceLineNo">970</span>      for (i = 0; i &lt; codes.length; i++) {<a name="line.970"></a>
-<span class="sourceLineNo">971</span>        Mutation currentMutation = mArray[i];<a name="line.971"></a>
-<span class="sourceLineNo">972</span>        ClientProtos.Action currentAction = mutationActionMap.get(currentMutation);<a name="line.972"></a>
-<span class="sourceLineNo">973</span>        int index = currentAction.hasIndex() || !atomic ? currentAction.getIndex() : i;<a name="line.973"></a>
-<span class="sourceLineNo">974</span>        Exception e = null;<a name="line.974"></a>
-<span class="sourceLineNo">975</span>        switch (codes[i].getOperationStatusCode()) {<a name="line.975"></a>
-<span class="sourceLineNo">976</span>          case BAD_FAMILY:<a name="line.976"></a>
-<span class="sourceLineNo">977</span>            e = new NoSuchColumnFamilyException(codes[i].getExceptionMsg());<a name="line.977"></a>
-<span class="sourceLineNo">978</span>            builder.addResultOrException(getResultOrException(e, index));<a name="line.978"></a>
-<span class="sourceLineNo">979</span>            break;<a name="line.979"></a>
-<span class="sourceLineNo">980</span><a name="line.980"></a>
-<span class="sourceLineNo">981</span>          case SANITY_CHECK_FAILURE:<a name="line.981"></a>
-<span class="sourceLineNo">982</span>            e = new FailedSanityCheckException(codes[i].getExceptionMsg());<a name="line.982"></a>
-<span class="sourceLineNo">983</span>            builder.addResultOrException(getResultOrException(e, index));<a name="line.983"></a>
-<span class="sourceLineNo">984</span>            break;<a name="line.984"></a>
-<span class="sourceLineNo">985</span><a name="line.985"></a>
-<span class="sourceLineNo">986</span>          default:<a name="line.986"></a>
-<span class="sourceLineNo">987</span>            e = new DoNotRetryIOException(codes[i].getExceptionMsg());<a name="line.987"></a>
-<span class="sourceLineNo">988</span>            builder.addResultOrException(getResultOrException(e, index));<a name="line.988"></a>
-<span class="sourceLineNo">989</span>            break;<a name="line.989"></a>
-<span class="sourceLineNo">990</span><a name="line.990"></a>
-<span class="sourceLineNo">991</span>          case SUCCESS:<a name="line.991"></a>
-<span class="sourceLineNo">992</span>            builder.addResultOrException(getResultOrException(<a name="line.992"></a>
-<span class="sourceLineNo">993</span>              ClientProtos.Result.getDefaultInstance(), index));<a name="line.993"></a>
-<span class="sourceLineNo">994</span>            break;<a name="line.994"></a>
-<span class="sourceLineNo">995</span>        }<a name="line.995"></a>
-<span class="sourceLineNo">996</span>      }<a name="line.996"></a>
-<span class="sourceLineNo">997</span>    } catch (IOException ie) {<a name="line.997"></a>
-<span class="sourceLineNo">998</span>      if (atomic) {<a name="line.998"></a>
-<span class="sourceLineNo">999</span>        throw ie;<a name="line.999"></a>
-<span class="sourceLineNo">1000</span>      }<a name="line.1000"></a>
-<span class="sourceLineNo">1001</span>      for (Action mutation : mutations) {<a name="line.1001"></a>
-<span class="sourceLineNo">1002</span>        builder.addResultOrException(getResultOrException(ie, mutation.getIndex()));<a name="line.1002"></a>
+<span class="sourceLineNo">663</span>          region.getTableDescriptor().getTableName(),<a name="line.663"></a>
+<span class="sourceLineNo">664</span>        EnvironmentEdgeManager.currentTime() - before);<a name="line.664"></a>
+<span class="sourceLineNo">665</span>    }<a name="line.665"></a>
+<span class="sourceLineNo">666</span>    return r;<a name="line.666"></a>
+<span class="sourceLineNo">667</span>  }<a name="line.667"></a>
+<span class="sourceLineNo">668</span><a name="line.668"></a>
+<span class="sourceLineNo">669</span>  /**<a name="line.669"></a>
+<span class="sourceLineNo">670</span>   * Execute an increment mutation.<a name="line.670"></a>
+<span class="sourceLineNo">671</span>   *<a name="line.671"></a>
+<span class="sourceLineNo">672</span>   * @param region<a name="line.672"></a>
+<span class="sourceLineNo">673</span>   * @param mutation<a name="line.673"></a>
+<span class="sourceLineNo">674</span>   * @return the Result<a name="line.674"></a>
+<span class="sourceLineNo">675</span>   * @throws IOException<a name="line.675"></a>
+<span class="sourceLineNo">676</span>   */<a name="line.676"></a>
+<span class="sourceLineNo">677</span>  private Result increment(final HRegion region, final OperationQuota quota,<a name="line.677"></a>
+<span class="sourceLineNo">678</span>      final MutationProto mutation, final CellScanner cells, long nonceGroup,<a name="line.678"></a>
+<span class="sourceLineNo">679</span>      ActivePolicyEnforcement spaceQuota)<a name="line.679"></a>
+<span class="sourceLineNo">680</span>      throws IOException {<a name="line.680"></a>
+<span class="sourceLineNo">681</span>    long before = EnvironmentEdgeManager.currentTime();<a name="line.681"></a>
+<span class="sourceLineNo">682</span>    Increment increment = ProtobufUtil.toIncrement(mutation, cells);<a name="line.682"></a>
+<span class="sourceLineNo">683</span>    checkCellSizeLimit(region, increment);<a name="line.683"></a>
+<span class="sourceLineNo">684</span>    spaceQuota.getPolicyEnforcement(region).check(increment);<a name="line.684"></a>
+<span class="sourceLineNo">685</span>    quota.addMutation(increment);<a name="line.685"></a>
+<span class="sourceLineNo">686</span>    Result r = null;<a name="line.686"></a>
+<span class="sourceLineNo">687</span>    if (region.getCoprocessorHost() != null) {<a name="line.687"></a>
+<span class="sourceLineNo">688</span>      r = region.getCoprocessorHost().preIncrement(increment);<a name="line.688"></a>
+<span class="sourceLineNo">689</span>    }<a name="line.689"></a>
+<span class="sourceLineNo">690</span>    if (r == null) {<a name="line.690"></a>
+<span class="sourceLineNo">691</span>      boolean canProceed = startNonceOperation(mutation, nonceGroup);<a name="line.691"></a>
+<span class="sourceLineNo">692</span>      boolean success = false;<a name="line.692"></a>
+<span class="sourceLineNo">693</span>      try {<a name="line.693"></a>
+<span class="sourceLineNo">694</span>        long nonce = mutation.hasNonce() ? mutation.getNonce() : HConstants.NO_NONCE;<a name="line.694"></a>
+<span class="sourceLineNo">695</span>        if (canProceed) {<a name="line.695"></a>
+<span class="sourceLineNo">696</span>          r = region.increment(increment, nonceGroup, nonce);<a name="line.696"></a>
+<span class="sourceLineNo">697</span>        } else {<a name="line.697"></a>
+<span class="sourceLineNo">698</span>          // convert duplicate increment to get<a name="line.698"></a>
+<span class="sourceLineNo">699</span>          List&lt;Cell&gt; results = region.get(ProtobufUtil.toGet(mutation, cells), false, nonceGroup,<a name="line.699"></a>
+<span class="sourceLineNo">700</span>              nonce);<a name="line.700"></a>
+<span class="sourceLineNo">701</span>          r = Result.create(results);<a name="line.701"></a>
+<span class="sourceLineNo">702</span>        }<a name="line.702"></a>
+<span class="sourceLineNo">703</span>        success = true;<a name="line.703"></a>
+<span class="sourceLineNo">704</span>      } finally {<a name="line.704"></a>
+<span class="sourceLineNo">705</span>        if (canProceed) {<a name="line.705"></a>
+<span class="sourceLineNo">706</span>          endNonceOperation(mutation, nonceGroup, success);<a name="line.706"></a>
+<span class="sourceLineNo">707</span>        }<a name="line.707"></a>
+<span class="sourceLineNo">708</span>      }<a name="line.708"></a>
+<span class="sourceLineNo">709</span>      if (region.getCoprocessorHost() != null) {<a name="line.709"></a>
+<span class="sourceLineNo">710</span>        r = region.getCoprocessorHost().postIncrement(increment, r);<a name="line.710"></a>
+<span class="sourceLineNo">711</span>      }<a name="line.711"></a>
+<span class="sourceLineNo">712</span>    }<a name="line.712"></a>
+<span class="sourceLineNo">713</span>    if (regionServer.metricsRegionServer != null) {<a name="line.713"></a>
+<span class="sourceLineNo">714</span>      regionServer.metricsRegionServer.updateIncrement(<a name="line.714"></a>
+<span class="sourceLineNo">715</span>          region.getTableDescriptor().getTableName(),<a name="line.715"></a>
+<span class="sourceLineNo">716</span>          EnvironmentEdgeManager.currentTime() - before);<a name="line.716"></a>
+<span class="sourceLineNo">717</span>    }<a name="line.717"></a>
+<span class="sourceLineNo">718</span>    return r;<a name="line.718"></a>
+<span class="sourceLineNo">719</span>  }<a name="line.719"></a>
+<span class="sourceLineNo">720</span><a name="line.720"></a>
+<span class="sourceLineNo">721</span>  /**<a name="line.721"></a>
+<span class="sourceLineNo">722</span>   * Run through the regionMutation &lt;code&gt;rm&lt;/code&gt; and per Mutation, do the work, and then when<a name="line.722"></a>
+<span class="sourceLineNo">723</span>   * done, add an instance of a {@link ResultOrException} that corresponds to each Mutation.<a name="line.723"></a>
+<span class="sourceLineNo">724</span>   * @param cellsToReturn  Could be null. May be allocated in this method.  This is what this<a name="line.724"></a>
+<span class="sourceLineNo">725</span>   * method returns as a 'result'.<a name="line.725"></a>
+<span class="sourceLineNo">726</span>   * @param closeCallBack the callback to be used with multigets<a name="line.726"></a>
+<span class="sourceLineNo">727</span>   * @param context the current RpcCallContext<a name="line.727"></a>
+<span class="sourceLineNo">728</span>   * @return Return the &lt;code&gt;cellScanner&lt;/code&gt; passed<a name="line.728"></a>
+<span class="sourceLineNo">729</span>   */<a name="line.729"></a>
+<span class="sourceLineNo">730</span>  private List&lt;CellScannable&gt; doNonAtomicRegionMutation(final HRegion region,<a name="line.730"></a>
+<span class="sourceLineNo">731</span>      final OperationQuota quota, final RegionAction actions, final CellScanner cellScanner,<a name="line.731"></a>
+<span class="sourceLineNo">732</span>      final RegionActionResult.Builder builder, List&lt;CellScannable&gt; cellsToReturn, long nonceGroup,<a name="line.732"></a>
+<span class="sourceLineNo">733</span>      final RegionScannersCloseCallBack closeCallBack, RpcCallContext context,<a name="line.733"></a>
+<span class="sourceLineNo">734</span>      ActivePolicyEnforcement spaceQuotaEnforcement) {<a name="line.734"></a>
+<span class="sourceLineNo">735</span>    // Gather up CONTIGUOUS Puts and Deletes in this mutations List.  Idea is that rather than do<a name="line.735"></a>
+<span class="sourceLineNo">736</span>    // one at a time, we instead pass them in batch.  Be aware that the corresponding<a name="line.736"></a>
+<span class="sourceLineNo">737</span>    // ResultOrException instance that matches each Put or Delete is then added down in the<a name="line.737"></a>
+<span class="sourceLineNo">738</span>    // doBatchOp call.  We should be staying aligned though the Put and Delete are deferred/batched<a name="line.738"></a>
+<span class="sourceLineNo">739</span>    List&lt;ClientProtos.Action&gt; mutations = null;<a name="line.739"></a>
+<span class="sourceLineNo">740</span>    long maxQuotaResultSize = Math.min(maxScannerResultSize, quota.getReadAvailable());<a name="line.740"></a>
+<span class="sourceLineNo">741</span>    IOException sizeIOE = null;<a name="line.741"></a>
+<span class="sourceLineNo">742</span>    Object lastBlock = null;<a name="line.742"></a>
+<span class="sourceLineNo">743</span>    ClientProtos.ResultOrException.Builder resultOrExceptionBuilder = ResultOrException.newBuilder();<a name="line.743"></a>
+<span class="sourceLineNo">744</span>    boolean hasResultOrException = false;<a name="line.744"></a>
+<span class="sourceLineNo">745</span>    for (ClientProtos.Action action : actions.getActionList()) {<a name="line.745"></a>
+<span class="sourceLineNo">746</span>      hasResultOrException = false;<a name="line.746"></a>
+<span class="sourceLineNo">747</span>      resultOrExceptionBuilder.clear();<a name="line.747"></a>
+<span class="sourceLineNo">748</span>      try {<a name="line.748"></a>
+<span class="sourceLineNo">749</span>        Result r = null;<a name="line.749"></a>
+<span class="sourceLineNo">750</span><a name="line.750"></a>
+<span class="sourceLineNo">751</span>        if (context != null<a name="line.751"></a>
+<span class="sourceLineNo">752</span>            &amp;&amp; context.isRetryImmediatelySupported()<a name="line.752"></a>
+<span class="sourceLineNo">753</span>            &amp;&amp; (context.getResponseCellSize() &gt; maxQuotaResultSize<a name="line.753"></a>
+<span class="sourceLineNo">754</span>              || context.getResponseBlockSize() + context.getResponseExceptionSize()<a name="line.754"></a>
+<span class="sourceLineNo">755</span>              &gt; maxQuotaResultSize)) {<a name="line.755"></a>
+<span class="sourceLineNo">756</span><a name="line.756"></a>
+<span class="sourceLineNo">757</span>          // We're storing the exception since the exception and reason string won't<a name="line.757"></a>
+<span class="sourceLineNo">758</span>          // change after the response size limit is reached.<a name="line.758"></a>
+<span class="sourceLineNo">759</span>          if (sizeIOE == null ) {<a name="line.759"></a>
+<span class="sourceLineNo">760</span>            // We don't need the stack un-winding do don't throw the exception.<a name="line.760"></a>
+<span class="sourceLineNo">761</span>            // Throwing will kill the JVM's JIT.<a name="line.761"></a>
+<span class="sourceLineNo">762</span>            //<a name="line.762"></a>
+<span class="sourceLineNo">763</span>            // Instead just create the exception and then store it.<a name="line.763"></a>
+<span class="sourceLineNo">764</span>            sizeIOE = new MultiActionResultTooLarge("Max size exceeded"<a name="line.764"></a>
+<span class="sourceLineNo">765</span>                + " CellSize: " + context.getResponseCellSize()<a name="line.765"></a>
+<span class="sourceLineNo">766</span>                + " BlockSize: " + context.getResponseBlockSize());<a name="line.766"></a>
+<span class="sourceLineNo">767</span><a name="line.767"></a>
+<span class="sourceLineNo">768</span>            // Only report the exception once since there's only one request that<a name="line.768"></a>
+<span class="sourceLineNo">769</span>            // caused the exception. Otherwise this number will dominate the exceptions count.<a name="line.769"></a>
+<span class="sourceLineNo">770</span>            rpcServer.getMetrics().exception(sizeIOE);<a name="line.770"></a>
+<span class="sourceLineNo">771</span>          }<a name="line.771"></a>
+<span class="sourceLineNo">772</span><a name="line.772"></a>
+<span class="sourceLineNo">773</span>          // Now that there's an exception is known to be created<a name="line.773"></a>
+<span class="sourceLineNo">774</span>          // use it for the response.<a name="line.774"></a>
+<span class="sourceLineNo">775</span>          //<a name="line.775"></a>
+<span class="sourceLineNo">776</span>          // This will create a copy in the builder.<a name="line.776"></a>
+<span class="sourceLineNo">777</span>          hasResultOrException = true;<a name="line.777"></a>
+<span class="sourceLineNo">778</span>          NameBytesPair pair = ResponseConverter.buildException(sizeIOE);<a name="line.778"></a>
+<span class="sourceLineNo">779</span>          resultOrExceptionBuilder.setException(pair);<a name="line.779"></a>
+<span class="sourceLineNo">780</span>          context.incrementResponseExceptionSize(pair.getSerializedSize());<a name="line.780"></a>
+<span class="sourceLineNo">781</span>          resultOrExceptionBuilder.setIndex(action.getIndex());<a name="line.781"></a>
+<span class="sourceLineNo">782</span>          builder.addResultOrException(resultOrExceptionBuilder.build());<a name="line.782"></a>
+<span class="sourceLineNo">783</span>          if (cellScanner != null) {<a name="line.783"></a>
+<span class="sourceLineNo">784</span>            skipCellsForMutation(action, cellScanner);<a name="line.784"></a>
+<span class="sourceLineNo">785</span>          }<a name="line.785"></a>
+<span class="sourceLineNo">786</span>          continue;<a name="line.786"></a>
+<span class="sourceLineNo">787</span>        }<a name="line.787"></a>
+<span class="sourceLineNo">788</span>        if (action.hasGet()) {<a name="line.788"></a>
+<span class="sourceLineNo">789</span>          long before = EnvironmentEdgeManager.currentTime();<a name="line.789"></a>
+<span class="sourceLineNo">790</span>          try {<a name="line.790"></a>
+<span class="sourceLineNo">791</span>            Get get = ProtobufUtil.toGet(action.getGet());<a name="line.791"></a>
+<span class="sourceLineNo">792</span>            if (context != null) {<a name="line.792"></a>
+<span class="sourceLineNo">793</span>              r = get(get, ((HRegion) region), closeCallBack, context);<a name="line.793"></a>
+<span class="sourceLineNo">794</span>            } else {<a name="line.794"></a>
+<span class="sourceLineNo">795</span>              r = region.get(get);<a name="line.795"></a>
+<span class="sourceLineNo">796</span>            }<a name="line.796"></a>
+<span class="sourceLineNo">797</span>          } finally {<a name="line.797"></a>
+<span class="sourceLineNo">798</span>            if (regionServer.metricsRegionServer != null) {<a name="line.798"></a>
+<span class="sourceLineNo">799</span>              regionServer.metricsRegionServer.updateGet(<a name="line.799"></a>
+<span class="sourceLineNo">800</span>                  region.getTableDescriptor().getTableName(),<a name="line.800"></a>
+<span class="sourceLineNo">801</span>                  EnvironmentEdgeManager.currentTime() - before);<a name="line.801"></a>
+<span class="sourceLineNo">802</span>            }<a name="line.802"></a>
+<span class="sourceLineNo">803</span>          }<a name="line.803"></a>
+<span class="sourceLineNo">804</span>        } else if (action.hasServiceCall()) {<a name="line.804"></a>
+<span class="sourceLineNo">805</span>          hasResultOrException = true;<a name="line.805"></a>
+<span class="sourceLineNo">806</span>          try {<a name="line.806"></a>
+<span class="sourceLineNo">807</span>            com.google.protobuf.Message result =<a name="line.807"></a>
+<span class="sourceLineNo">808</span>                execServiceOnRegion(region, action.getServiceCall());<a name="line.808"></a>
+<span class="sourceLineNo">809</span>            ClientProtos.CoprocessorServiceResult.Builder serviceResultBuilder =<a name="line.809"></a>
+<span class="sourceLineNo">810</span>                ClientProtos.CoprocessorServiceResult.newBuilder();<a name="line.810"></a>
+<span class="sourceLineNo">811</span>            resultOrExceptionBuilder.setServiceResult(<a name="line.811"></a>
+<span class="sourceLineNo">812</span>                serviceResultBuilder.setValue(<a name="line.812"></a>
+<span class="sourceLineNo">813</span>                  serviceResultBuilder.getValueBuilder()<a name="line.813"></a>
+<span class="sourceLineNo">814</span>                    .setName(result.getClass().getName())<a name="line.814"></a>
+<span class="sourceLineNo">815</span>                    // TODO: Copy!!!<a name="line.815"></a>
+<span class="sourceLineNo">816</span>                    .setValue(UnsafeByteOperations.unsafeWrap(result.toByteArray()))));<a name="line.816"></a>
+<span class="sourceLineNo">817</span>          } catch (IOException ioe) {<a name="line.817"></a>
+<span class="sourceLineNo">818</span>            rpcServer.getMetrics().exception(ioe);<a name="line.818"></a>
+<span class="sourceLineNo">819</span>            NameBytesPair pair = ResponseConverter.buildException(ioe);<a name="line.819"></a>
+<span class="sourceLineNo">820</span>            resultOrExceptionBuilder.setException(pair);<a name="line.820"></a>
+<span class="sourceLineNo">821</span>            context.incrementResponseExceptionSize(pair.getSerializedSize());<a name="line.821"></a>
+<span class="sourceLineNo">822</span>          }<a name="line.822"></a>
+<span class="sourceLineNo">823</span>        } else if (action.hasMutation()) {<a name="line.823"></a>
+<span class="sourceLineNo">824</span>          MutationType type = action.getMutation().getMutateType();<a name="line.824"></a>
+<span class="sourceLineNo">825</span>          if (type != MutationType.PUT &amp;&amp; type != MutationType.DELETE &amp;&amp; mutations != null &amp;&amp;<a name="line.825"></a>
+<span class="sourceLineNo">826</span>              !mutations.isEmpty()) {<a name="line.826"></a>
+<span class="sourceLineNo">827</span>            // Flush out any Puts or Deletes already collected.<a name="line.827"></a>
+<span class="sourceLineNo">828</span>            doBatchOp(builder, region, quota, mutations, cellScanner, spaceQuotaEnforcement, false);<a name="line.828"></a>
+<span class="sourceLineNo">829</span>            mutations.clear();<a name="line.829"></a>
+<span class="sourceLineNo">830</span>          }<a name="line.830"></a>
+<span class="sourceLineNo">831</span>          switch (type) {<a name="line.831"></a>
+<span class="sourceLineNo">832</span>            case APPEND:<a name="line.832"></a>
+<span class="sourceLineNo">833</span>              r = append(region, quota, action.getMutation(), cellScanner, nonceGroup,<a name="line.833"></a>
+<span class="sourceLineNo">834</span>                  spaceQuotaEnforcement);<a name="line.834"></a>
+<span class="sourceLineNo">835</span>              break;<a name="line.835"></a>
+<span class="sourceLineNo">836</span>            case INCREMENT:<a name="line.836"></a>
+<span class="sourceLineNo">837</span>              r = increment(region, quota, action.getMutation(), cellScanner, nonceGroup,<a name="line.837"></a>
+<span class="sourceLineNo">838</span>                  spaceQuotaEnforcement);<a name="line.838"></a>
+<span class="sourceLineNo">839</span>              break;<a name="line.839"></a>
+<span class="sourceLineNo">840</span>            case PUT:<a name="line.840"></a>
+<span class="sourceLineNo">841</span>            case DELETE:<a name="line.841"></a>
+<span class="sourceLineNo">842</span>              // Collect the individual mutations and apply in a batch<a name="line.842"></a>
+<span class="sourceLineNo">843</span>              if (mutations == null) {<a name="line.843"></a>
+<span class="sourceLineNo">844</span>                mutations = new ArrayList&lt;&gt;(actions.getActionCount());<a name="line.844"></a>
+<span class="sourceLineNo">845</span>              }<a name="line.845"></a>
+<span class="sourceLineNo">846</span>              mutations.add(action);<a name="line.846"></a>
+<span class="sourceLineNo">847</span>              break;<a name="line.847"></a>
+<span class="sourceLineNo">848</span>            default:<a name="line.848"></a>
+<span class="sourceLineNo">849</span>              throw new DoNotRetryIOException("Unsupported mutate type: " + type.name());<a name="line.849"></a>
+<span class="sourceLineNo">850</span>          }<a name="line.850"></a>
+<span class="sourceLineNo">851</span>        } else {<a name="line.851"></a>
+<span class="sourceLineNo">852</span>          throw new HBaseIOException("Unexpected Action type");<a name="line.852"></a>
+<span class="sourceLineNo">853</span>        }<a name="line.853"></a>
+<span class="sourceLineNo">854</span>        if (r != null) {<a name="line.854"></a>
+<span class="sourceLineNo">855</span>          ClientProtos.Result pbResult = null;<a name="line.855"></a>
+<span class="sourceLineNo">856</span>          if (isClientCellBlockSupport(context)) {<a name="line.856"></a>
+<span class="sourceLineNo">857</span>            pbResult = ProtobufUtil.toResultNoData(r);<a name="line.857"></a>
+<span class="sourceLineNo">858</span>            //  Hard to guess the size here.  Just make a rough guess.<a name="line.858"></a>
+<span class="sourceLineNo">859</span>            if (cellsToReturn == null) {<a name="line.859"></a>
+<span class="sourceLineNo">860</span>              cellsToReturn = new ArrayList&lt;&gt;();<a name="line.860"></a>
+<span class="sourceLineNo">861</span>            }<a name="line.861"></a>
+<span class="sourceLineNo">862</span>            cellsToReturn.add(r);<a name="line.862"></a>
+<span class="sourceLineNo">863</span>          } else {<a name="line.863"></a>
+<span class="sourceLineNo">864</span>            pbResult = ProtobufUtil.toResult(r);<a name="line.864"></a>
+<span class="sourceLineNo">865</span>          }<a name="line.865"></a>
+<span class="sourceLineNo">866</span>          lastBlock = addSize(context, r, lastBlock);<a name="line.866"></a>
+<span class="sourceLineNo">867</span>          hasResultOrException = true;<a name="line.867"></a>
+<span class="sourceLineNo">868</span>          resultOrExceptionBuilder.setResult(pbResult);<a name="line.868"></a>
+<span class="sourceLineNo">869</span>        }<a name="line.869"></a>
+<span class="sourceLineNo">870</span>        // Could get to here and there was no result and no exception.  Presumes we added<a name="line.870"></a>
+<span class="sourceLineNo">871</span>        // a Put or Delete to the collecting Mutations List for adding later.  In this<a name="line.871"></a>
+<span class="sourceLineNo">872</span>        // case the corresponding ResultOrException instance for the Put or Delete will be added<a name="line.872"></a>
+<span class="sourceLineNo">873</span>        // down in the doBatchOp method call rather than up here.<a name="line.873"></a>
+<span class="sourceLineNo">874</span>      } catch (IOException ie) {<a name="line.874"></a>
+<span class="sourceLineNo">875</span>        rpcServer.getMetrics().exception(ie);<a name="line.875"></a>
+<span class="sourceLineNo">876</span>        hasResultOrException = true;<a name="line.876"></a>
+<span class="sourceLineNo">877</span>        NameBytesPair pair = ResponseConverter.buildException(ie);<a name="line.877"></a>
+<span class="sourceLineNo">878</span>        resultOrExceptionBuilder.setException(pair);<a name="line.878"></a>
+<span class="sourceLineNo">879</span>        context.incrementResponseExceptionSize(pair.getSerializedSize());<a name="line.879"></a>
+<span class="sourceLineNo">880</span>      }<a name="line.880"></a>
+<span class="sourceLineNo">881</span>      if (hasResultOrException) {<a name="line.881"></a>
+<span class="sourceLineNo">882</span>        // Propagate index.<a name="line.882"></a>
+<span class="sourceLineNo">883</span>        resultOrExceptionBuilder.setIndex(action.getIndex());<a name="line.883"></a>
+<span class="sourceLineNo">884</span>        builder.addResultOrException(resultOrExceptionBuilder.build());<a name="line.884"></a>
+<span class="sourceLineNo">885</span>      }<a name="line.885"></a>
+<span class="sourceLineNo">886</span>    }<a name="line.886"></a>
+<span class="sourceLineNo">887</span>    // Finish up any outstanding mutations<a name="line.887"></a>
+<span class="sourceLineNo">888</span>    if (mutations != null &amp;&amp; !mutations.isEmpty()) {<a name="line.888"></a>
+<span class="sourceLineNo">889</span>      try {<a name="line.889"></a>
+<span class="sourceLineNo">890</span>        doBatchOp(builder, region, quota, mutations, cellScanner, spaceQuotaEnforcement, false);<a name="line.890"></a>
+<span class="sourceLineNo">891</span>      } catch (IOException ioe) {<a name="line.891"></a>
+<span class="sourceLineNo">892</span>        rpcServer.getMetrics().exception(ioe);<a name="line.892"></a>
+<span class="sourceLineNo">893</span>        NameBytesPair pair = ResponseConverter.buildException(ioe);<a name="line.893"></a>
+<span class="sourceLineNo">894</span>        resultOrExceptionBuilder.setException(pair);<a name="line.894"></a>
+<span class="sourceLineNo">895</span>        context.incrementResponseExceptionSize(pair.getSerializedSize());<a name="line.895"></a>
+<span class="sourceLineNo">896</span>        builder.addResultOrException(resultOrExceptionBuilder.build());<a name="line.896"></a>
+<span class="sourceLineNo">897</span>      }<a name="line.897"></a>
+<span class="sourceLineNo">898</span>    }<a name="line.898"></a>
+<span class="sourceLineNo">899</span>    return cellsToReturn;<a name="line.899"></a>
+<span class="sourceLineNo">900</span>  }<a name="line.900"></a>
+<span class="sourceLineNo">901</span><a name="line.901"></a>
+<span class="sourceLineNo">902</span>  private void checkCellSizeLimit(final HRegion r, final Mutation m) throws IOException {<a name="line.902"></a>
+<span class="sourceLineNo">903</span>    if (r.maxCellSize &gt; 0) {<a name="line.903"></a>
+<span class="sourceLineNo">904</span>      CellScanner cells = m.cellScanner();<a name="line.904"></a>
+<span class="sourceLineNo">905</span>      while (cells.advance()) {<a name="line.905"></a>
+<span class="sourceLineNo">906</span>        int size = PrivateCellUtil.estimatedSerializedSizeOf(cells.current());<a name="line.906"></a>
+<span class="sourceLineNo">907</span>        if (size &gt; r.maxCellSize) {<a name="line.907"></a>
+<span class="sourceLineNo">908</span>          String msg = "Cell with size " + size + " exceeds limit of " + r.maxCellSize + " bytes";<a name="line.908"></a>
+<span class="sourceLineNo">909</span>          if (LOG.isDebugEnabled()) {<a name="line.909"></a>
+<span class="sourceLineNo">910</span>            LOG.debug(msg);<a name="line.910"></a>
+<span class="sourceLineNo">911</span>          }<a name="line.911"></a>
+<span class="sourceLineNo">912</span>          throw new DoNotRetryIOException(msg);<a name="line.912"></a>
+<span class="sourceLineNo">913</span>        }<a name="line.913"></a>
+<span class="sourceLineNo">914</span>      }<a name="line.914"></a>
+<span class="sourceLineNo">915</span>    }<a name="line.915"></a>
+<span class="sourceLineNo">916</span>  }<a name="line.916"></a>
+<span class="sourceLineNo">917</span><a name="line.917"></a>
+<span class="sourceLineNo">918</span>  /**<a name="line.918"></a>
+<span class="sourceLineNo">919</span>   * Execute a list of Put/Delete mutations.<a name="line.919"></a>
+<span class="sourceLineNo">920</span>   *<a name="line.920"></a>
+<span class="sourceLineNo">921</span>   * @param builder<a name="line.921"></a>
+<span class="sourceLineNo">922</span>   * @param region<a name="line.922"></a>
+<span class="sourceLineNo">923</span>   * @param mutations<a name="line.923"></a>
+<span class="sourceLineNo">924</span>   */<a name="line.924"></a>
+<span class="sourceLineNo">925</span>  private void doBatchOp(final RegionActionResult.Builder builder, final HRegion region,<a name="line.925"></a>
+<span class="sourceLineNo">926</span>      final OperationQuota quota, final List&lt;ClientProtos.Action&gt; mutations,<a name="line.926"></a>
+<span class="sourceLineNo">927</span>      final CellScanner cells, ActivePolicyEnforcement spaceQuotaEnforcement, boolean atomic)<a name="line.927"></a>
+<span class="sourceLineNo">928</span>      throws IOException {<a name="line.928"></a>
+<span class="sourceLineNo">929</span>    Mutation[] mArray = new Mutation[mutations.size()];<a name="line.929"></a>
+<span class="sourceLineNo">930</span>    long before = EnvironmentEdgeManager.currentTime();<a name="line.930"></a>
+<span class="sourceLineNo">931</span>    boolean batchContainsPuts = false, batchContainsDelete = false;<a name="line.931"></a>
+<span class="sourceLineNo">932</span>    try {<a name="line.932"></a>
+<span class="sourceLineNo">933</span>      /** HBASE-17924<a name="line.933"></a>
+<span class="sourceLineNo">934</span>       * mutationActionMap is a map to map the relation between mutations and actions<a name="line.934"></a>
+<span class="sourceLineNo">935</span>       * since mutation array may have been reoredered.In order to return the right<a name="line.935"></a>
+<span class="sourceLineNo">936</span>       * result or exception to the corresponding actions, We need to know which action<a name="line.936"></a>
+<span class="sourceLineNo">937</span>       * is the mutation belong to. We can't sort ClientProtos.Action array, since they<a name="line.937"></a>
+<span class="sourceLineNo">938</span>       * are bonded to cellscanners.<a name="line.938"></a>
+<span class="sourceLineNo">939</span>       */<a name="line.939"></a>
+<span class="sourceLineNo">940</span>      Map&lt;Mutation, ClientProtos.Action&gt; mutationActionMap = new HashMap&lt;&gt;();<a name="line.940"></a>
+<span class="sourceLineNo">941</span>      int i = 0;<a name="line.941"></a>
+<span class="sourceLineNo">942</span>      for (ClientProtos.Action action: mutations) {<a name="line.942"></a>
+<span class="sourceLineNo">943</span>        MutationProto m = action.getMutation();<a name="line.943"></a>
+<span class="sourceLineNo">944</span>        Mutation mutation;<a name="line.944"></a>
+<span class="sourceLineNo">945</span>        if (m.getMutateType() == MutationType.PUT) {<a name="line.945"></a>
+<span class="sourceLineNo">946</span>          mutation = ProtobufUtil.toPut(m, cells);<a name="line.946"></a>
+<span class="sourceLineNo">947</span>          batchContainsPuts = true;<a name="line.947"></a>
+<span class="sourceLineNo">948</span>        } else {<a name="line.948"></a>
+<span class="sourceLineNo">949</span>          mutation = ProtobufUtil.toDelete(m, cells);<a name="line.949"></a>
+<span class="sourceLineNo">950</span>          batchContainsDelete = true;<a name="line.950"></a>
+<span class="sourceLineNo">951</span>        }<a name="line.951"></a>
+<span class="sourceLineNo">952</span>        mutationActionMap.put(mutation, action);<a name="line.952"></a>
+<span class="sourceLineNo">953</span>        mArray[i++] = mutation;<a name="line.953"></a>
+<span class="sourceLineNo">954</span>        checkCellSizeLimit(region, mutation);<a name="line.954"></a>
+<span class="sourceLineNo">955</span>        // Check if a space quota disallows this mutation<a name="line.955"></a>
+<span class="sourceLineNo">956</span>        spaceQuotaEnforcement.getPolicyEnforcement(region).check(mutation);<a name="line.956"></a>
+<span class="sourceLineNo">957</span>        quota.addMutation(mutation);<a name="line.957"></a>
+<span class="sourceLineNo">958</span>      }<a name="line.958"></a>
+<span class="sourceLineNo">959</span><a name="line.959"></a>
+<span class="sourceLineNo">960</span>      if (!region.getRegionInfo().isMetaRegion()) {<a name="line.960"></a>
+<span class="sourceLineNo">961</span>        regionServer.cacheFlusher.reclaimMemStoreMemory();<a name="line.961"></a>
+<span class="sourceLineNo">962</span>      }<a name="line.962"></a>
+<span class="sourceLineNo">963</span><a name="line.963"></a>
+<span class="sourceLineNo">964</span>      // HBASE-17924<a name="line.964"></a>
+<span class="sourceLineNo">965</span>      // Sort to improve lock efficiency for non-atomic batch of operations. If atomic (mostly<a name="line.965"></a>
+<span class="sourceLineNo">966</span>      // called from mutateRows()), order is preserved as its expected from the client<a name="line.966"></a>
+<span class="sourceLineNo">967</span>      if (!atomic) {<a name="line.967"></a>
+<span class="sourceLineNo">968</span>        Arrays.sort(mArray);<a name="line.968"></a>
+<span class="sourceLineNo">969</span>      }<a name="line.969"></a>
+<span class="sourceLineNo">970</span><a name="line.970"></a>
+<span class="sourceLineNo">971</span>      OperationStatus[] codes = region.batchMutate(mArray, atomic, HConstants.NO_NONCE,<a name="line.971"></a>
+<span class="sourceLineNo">972</span>        HConstants.NO_NONCE);<a name="line.972"></a>
+<span class="sourceLineNo">973</span>      for (i = 0; i &lt; codes.length; i++) {<a name="line.973"></a>
+<span class="sourceLineNo">974</span>        Mutation currentMutation = mArray[i];<a name="line.974"></a>
+<span class="sourceLineNo">975</span>        ClientProtos.Action currentAction = mutationActionMap.get(currentMutation);<a name="line.975"></a>
+<span class="sourceLineNo">976</span>        int index = currentAction.hasIndex() || !atomic ? currentAction.getIndex() : i;<a name="line.976"></a>
+<span class="sourceLineNo">977</span>        Exception e = null;<a name="line.977"></a>
+<span class="sourceLineNo">978</span>        switch (codes[i].getOperationStatusCode()) {<a name="line.978"></a>
+<span class="sourceLineNo">979</span>          case BAD_FAMILY:<a name="line.979"></a>
+<span class="sourceLineNo">980</span>            e = new NoSuchColumnFamilyException(codes[i].getExceptionMsg());<a name="line.980"></a>
+<span class="sourceLineNo">981</span>            builder.addResultOrException(getResultOrException(e, index));<a name="line.981"></a>
+<span class="sourceLineNo">982</span>            break;<a name="line.982"></a>
+<span class="sourceLineNo">983</span><a name="line.983"></a>
+<span class="sourceLineNo">984</span>          case SANITY_CHECK_FAILURE:<a name="line.984"></a>
+<span class="sourceLineNo">985</span>            e = new FailedSanityCheckException(codes[i].getExceptionMsg());<a name="line.985"></a>
+<span class="sourceLineNo">986</span>            builder.addResultOrException(getResultOrException(e, index));<a name="line.986"></a>
+<span class="sourceLineNo">987</span>            break;<a name="line.987"></a>
+<span class="sourceLineNo">988</span><a name="line.988"></a>
+<span class="sourceLineNo">989</span>          default:<a name="line.989"></a>
+<span class="sourceLineNo">990</span>            e = new DoNotRetryIOException(codes[i].getExceptionMsg());<a name="line.990"></a>
+<span class="sourceLineNo">991</span>            builder.addResultOrException(getResultOrException(e, index));<a name="line.991"></a>
+<span class="sourceLineNo">992</span>            break;<a name="line.992"></a>
+<span class="sourceLineNo">993</span><a name="line.993"></a>
+<span class="sourceLineNo">994</span>          case SUCCESS:<a name="line.994"></a>
+<span class="sourceLineNo">995</span>            builder.addResultOrException(getResultOrException(<a name="line.995"></a>
+<span class="sourceLineNo">996</span>              ClientProtos.Result.getDefaultInstance(), index));<a name="line.996"></a>
+<span class="sourceLineNo">997</span>            break;<a name="line.997"></a>
+<span class="sourceLineNo">998</span>        }<a name="line.998"></a>
+<span class="sourceLineNo">999</span>      }<a name="line.999"></a>
+<span class="sourceLineNo">1000</span>    } catch (IOException ie) {<a name="line.1000"></a>
+<span class="sourceLineNo">1001</span>      if (atomic) {<a name="line.1001"></a>
+<span class="sourceLineNo">1002</span>        throw ie;<a name="line.1002"></a>
 <span class="sourceLineNo">1003</span>      }<a name="line.1003"></a>
-<span class="sourceLineNo">1004</span>    }<a name="line.1004"></a>
-<span class="sourceLineNo">1005</span>    if (regionServer.metricsRegionServer != null) {<a name="line.1005"></a>
-<span class="sourceLineNo">1006</span>      long after = EnvironmentEdgeManager.currentTime();<a name="line.1006"></a>
-<span class="sourceLineNo">1007</span>      if (batchContainsPuts) {<a name="line.1007"></a>
-<span class="sourceLineNo">1008</span>        regionServer.metricsRegionServer.updatePutBatch(after - before);<a name="line.1008"></a>
-<span class="sourceLineNo">1009</span>      }<a name="line.1009"></a>
-<span class="sourceLineNo">1010</span>      if (batchContainsDelete) {<a name="line.1010"></a>
-<span class="sourceLineNo">1011</span>        regionServer.metricsRegionServer.updateDeleteBatch(after - before);<a name="line.1011"></a>
-<span class="sourceLineNo">1012</span>      }<a name="line.1012"></a>
-<span class="sourceLineNo">1013</span>    }<a name="line.1013"></a>
-<span class="sourceLineNo">1014</span>  }<a name="line.1014"></a>
-<span class="sourceLineNo">1015</span><a name="line.1015"></a>
-<span class="sourceLineNo">1016</span>  /**<a name="line.1016"></a>
-<span class="sourceLineNo">1017</span>   * Execute a list of Put/Delete mutations. The function returns OperationStatus instead of<a name="line.1017"></a>
-<span class="sourceLineNo">1018</span>   * constructing MultiResponse to save a possible loop if caller doesn't need MultiResponse.<a name="line.1018"></a>
-<span class="sourceLineNo">1019</span>   * @param region<a name="line.1019"></a>
-<span class="sourceLineNo">1020</span>   * @param mutations<a name="line.1020"></a>
-<span class="sourceLineNo">1021</span>   * @param replaySeqId<a name="line.1021"></a>
-<span class="sourceLineNo">1022</span>   * @return an array of OperationStatus which internally contains the OperationStatusCode and the<a name="line.1022"></a>
-<span class="sourceLineNo">1023</span>   *         exceptionMessage if any<a name="line.1023"></a>
-<span class="sourceLineNo">1024</span>   * @throws IOException<a name="line.1024"></a>
-<span class="sourceLineNo">1025</span>   */<a name="line.1025"></a>
-<span class="sourceLineNo">1026</span>  private OperationStatus [] doReplayBatchOp(final HRegion region,<a name="line.1026"></a>
-<span class="sourceLineNo">1027</span>      final List&lt;WALSplitter.MutationReplay&gt; mutations, long replaySeqId) throws IOException {<a name="line.1027"></a>
-<span class="sourceLineNo">1028</span>    long before = EnvironmentEdgeManager.currentTime();<a name="line.1028"></a>
-<span class="sourceLineNo">1029</span>    boolean batchContainsPuts = false, batchContainsDelete = false;<a name="line.1029"></a>
-<span class="sourceLineNo">1030</span>    try {<a name="line.1030"></a>
-<span class="sourceLineNo">1031</span>      for (Iterator&lt;WALSplitter.MutationReplay&gt; it = mutations.iterator(); it.hasNext();) {<a name="line.1031"></a>
-<span class="sourceLineNo">1032</span>        WALSplitter.MutationReplay m = it.next();<a name="line.1032"></a>
-<span class="sourceLineNo">1033</span><a name="line.1033"></a>
-<span class="sourceLineNo">1034</span>        if (m.type == MutationType.PUT) {<a name="line.1034"></a>
-<span class="sourceLineNo">1035</span>          batchContainsPuts = true;<a name="line.1035"></a>
-<span class="sourceLineNo">1036</span>        } else {<a name="line.1036"></a>
-<span class="sourceLineNo">1037</span>          batchContainsDelete = true;<a name="line.1037"></a>
-<span class="sourceLineNo">1038</span>        }<a name="line.1038"></a>
-<span class="sourceLineNo">1039</span><a name="line.1039"></a>
-<span class="sourceLineNo">1040</span>        NavigableMap&lt;byte[], List&lt;Cell&gt;&gt; map = m.mutation.getFamilyCellMap();<a name="line.1040"></a>
-<span class="sourceLineNo">1041</span>        List&lt;Cell&gt; metaCells = map.get(WALEdit.METAFAMILY);<a name="line.1041"></a>
-<span class="sourceLineNo">1042</span>        if (metaCells != null &amp;&amp; !metaCells.isEmpty()) {<a name="line.1042"></a>
-<span class="sourceLineNo">1043</span>          for (Cell metaCell : metaCells) {<a name="line.1043"></a>
-<span class="sourceLineNo">1044</span>            CompactionDescriptor compactionDesc = WALEdit.getCompaction(metaCell);<a name="line.1044"></a>
-<span class="sourceLineNo">1045</span>            boolean isDefaultReplica = RegionReplicaUtil.isDefaultReplica(region.getRegionInfo());<a name="line.1045"></a>
-<span class="sourceLineNo">1046</span>            HRegion hRegion = (HRegion)region;<a name="line.1046"></a>
-<span class="sourceLineNo">1047</span>            if (compactionDesc != null) {<a name="line.1047"></a>
-<span class="sourceLineNo">1048</span>              // replay the compaction. Remove the files from stores only if we are the primary<a name="line.1048"></a>
-<span class="sourceLineNo">1049</span>              // region replica (thus own the files)<a name="line.1049"></a>
-<span class="sourceLineNo">1050</span>              hRegion.replayWALCompactionMarker(compactionDesc, !isDefaultReplica, isDefaultReplica,<a name="line.1050"></a>
-<span class="sourceLineNo">1051</span>                replaySeqId);<a name="line.1051"></a>
-<span class="sourceLineNo">1052</span>              continue;<a name="line.1052"></a>
-<span class="sourceLineNo">1053</span>            }<a name="line.1053"></a>
-<span class="sourceLineNo">1054</span>            FlushDescriptor flushDesc = WALEdit.getFlushDescriptor(metaCell);<a name="line.1054"></a>
-<span class="sourceLineNo">1055</span>            if (flushDesc != null &amp;&amp; !isDefaultReplica) {<a name="line.1055"></a>
-<span class="sourceLineNo">1056</span>              hRegion.replayWALFlushMarker(flushDesc, replaySeqId);<a name="line.1056"></a>
+<span class="sourceLineNo">1004</span>      for (Action mutation : mutations) {<a name="line.1004"></a>
+<span class="sourceLineNo">1005</span>        builder.addResultOrException(getResultOrException(ie, mutation.getIndex()));<a name="line.1005"></a>
+<span class="sourceLineNo">1006</span>      }<a name="line.1006"></a>
+<span class="sourceLineNo">1007</span>    }<a name="line.1007"></a>
+<span class="sourceLineNo">1008</span>    if (regionServer.metricsRegionServer != null) {<a name="line.1008"></a>
+<span class="sourceLineNo">1009</span>      long after = EnvironmentEdgeManager.currentTime();<a name="line.1009"></a>
+<span class="sourceLineNo">1010</span>      if (batchContainsPuts) {<a name="line.1010"></a>
+<span class="sourceLineNo">1011</span>        regionServer.metricsRegionServer.updatePutBatch(<a name="line.1011"></a>
+<span class="sourceLineNo">1012</span>            region.getTableDescriptor().getTableName(), after - before);<a name="line.1012"></a>
+<span class="sourceLineNo">1013</span>      }<a name="line.1013"></a>
+<span class="sourceLineNo">1014</span>      if (batchContainsDelete) {<a name="line.1014"></a>
+<span class="sourceLineNo">1015</span>        regionServer.metricsRegionServer.updateDeleteBatch(<a name="line.1015"></a>
+<span class="sourceLineNo">1016</span>            region.getTableDescriptor().getTableName(), after - before);<a name="line.1016"></a>
+<span class="sourceLineNo">1017</span>      }<a name="line.1017"></a>
+<span class="sourceLineNo">1018</span>    }<a name="line.1018"></a>
+<span class="sourceLineNo">1019</span>  }<a name="line.1019"></a>
+<span class="sourceLineNo">1020</span><a name="line.1020"></a>
+<span class="sourceLineNo">1021</span>  /**<a name="line.1021"></a>
+<span class="sourceLineNo">1022</span>   * Execute a list of Put/Delete mutations. The function returns OperationStatus instead of<a name="line.1022"></a>
+<span class="sourceLineNo">1023</span>   * constructing MultiResponse to save a possible loop if caller doesn't need MultiResponse.<a name="line.1023"></a>
+<span class="sourceLineNo">1024</span>   * @param region<a name="line.1024"></a>
+<span class="sourceLineNo">1025</span>   * @param mutations<a name="line.1025"></a>
+<span class="sourceLineNo">1026</span>   * @param replaySeqId<a name="line.1026"></a>
+<span class="sourceLineNo">1027</span>   * @return an array of OperationStatus which internally contains the OperationStatusCode and the<a name="line.1027"></a>
+<span class="sourceLineNo">1028</span>   *         exceptionMessage if any<a name="line.1028"></a>
+<span class="sourceLineNo">1029</span>   * @throws IOException<a name="line.1029"></a>
+<span class="sourceLineNo">1030</span>   */<a name="line.1030"></a>
+<span class="sourceLineNo">1031</span>  private OperationStatus [] doReplayBatchOp(final HRegion region,<a name="line.1031"></a>
+<span class="sourceLineNo">1032</span>      final List&lt;WALSplitter.MutationReplay&gt; mutations, long replaySeqId) throws IOException {<a name="line.1032"></a>
+<span class="sourceLineNo">1033</span>    long before = EnvironmentEdgeManager.currentTime();<a name="line.1033"></a>
+<span class="sourceLineNo">1034</span>    boolean batchContainsPuts = false, batchContainsDelete = false;<a name="line.1034"></a>
+<span class="sourceLineNo">1035</span>    try {<a name="line.1035"></a>
+<span class="sourceLineNo">1036</span>      for (Iterator&lt;WALSplitter.MutationReplay&gt; it = mutations.iterator(); it.hasNext();) {<a name="line.1036"></a>
+<span class="sourceLineNo">1037</span>        WALSplitter.MutationReplay m = it.next();<a name="line.1037"></a>
+<span class="sourceLineNo">1038</span><a name="line.1038"></a>
+<span class="sourceLineNo">1039</span>        if (m.type == MutationType.PUT) {<a name="line.1039"></a>
+<span class="sourceLineNo">1040</span>          batchContainsPuts = true;<a name="line.1040"></a>
+<span class="sourceLineNo">1041</span>        } else {<a name="line.1041"></a>
+<span class="sourceLineNo">1042</span>          batchContainsDelete = true;<a name="line.1042"></a>
+<span class="sourceLineNo">1043</span>        }<a name="line.1043"></a>
+<span class="sourceLineNo">1044</span><a name="line.1044"></a>
+<span class="sourceLineNo">1045</span>        NavigableMap&lt;byte[], List&lt;Cell&gt;&gt; map = m.mutation.getFamilyCellMap();<a name="line.1045"></a>
+<span class="sourceLineNo">1046</span>        List&lt;Cell&gt; metaCells = map.get(WALEdit.METAFAMILY);<a name="line.1046"></a>
+<span class="sourceLineNo">1047</span>        if (metaCells != null &amp;&amp; !metaCells.isEmpty()) {<a name="line.1047"></a>
+<span class="sourceLineNo">1048</span>          for (Cell metaCell : metaCells) {<a name="line.1048"></a>
+<span class="sourceLineNo">1049</span>            CompactionDescriptor compactionDesc = WALEdit.getCompaction(metaCell);<a name="line.1049"></a>
+<span class="sourceLineNo">1050</span>            boolean isDefaultReplica = RegionReplicaUtil.isDefaultReplica(region.getRegionInfo());<a name="line.1050"></a>
+<span class="sourceLineNo">1051</span>            HRegion hRegion = (HRegion)region;<a name="line.1051"></a>
+<span class="sourceLineNo">1052</span>            if (compactionDesc != null) {<a name="line.1052"></a>
+<span class="sourceLineNo">1053</span>              // replay the compaction. Remove the files from stores only if we are the primary<a name="line.1053"></a>
+<span class="sourceLineNo">1054</span>              // region replica (thus own the files)<a name="line.1054"></a>
+<span class="sourceLineNo">1055</span>              hRegion.replayWALCompactionMarker(compactionDesc, !isDefaultReplica, isDefaultReplica,<a name="line.1055"></a>
+<span class="sourceLineNo">1056</span>                replaySeqId);<a name="line.1056"></a>
 <span class="sourceLineNo">1057</span>              continue;<a name="line.1057"></a>
 <span class="sourceLineNo">1058</span>            }<a name="line.1058"></a>
-<span class="sourceLineNo">1059</span>            RegionEventDescriptor regionEvent = WALEdit.getRegionEventDescriptor(metaCell);<a name="line.1059"></a>
-<span class="sourceLineNo">1060</span>            if (regionEvent != null &amp;&amp; !isDefaultReplica) {<a name="line.1060"></a>
-<span class="sourceLineNo">1061</span>              hRegion.replayWALRegionEventMarker(regionEvent);<a name="line.1061"></a>
+<span class="sourceLineNo">1059</span>            FlushDescriptor flushDesc = WALEdit.getFlushDescriptor(metaCell);<a name="line.1059"></a>
+<span class="sourceLineNo">1060</span>            if (flushDesc != null &amp;&amp; !isDefaultReplica) {<a name="line.1060"></a>
+<span class="sourceLineNo">1061</span>              hRegion.replayWALFlushMarker(flushDesc, replaySeqId);<a name="line.1061"></a>
 <span class="sourceLineNo">1062</span>              continue;<a name="line.1062"></a>
 <span class="sourceLineNo">1063</span>            }<a name="line.1063"></a>
-<span class="sourceLineNo">1064</span>            BulkLoadDescriptor bulkLoadEvent = WALEdit.getBulkLoadDescriptor(metaCell);<a name="line.1064"></a>
-<span class="sourceLineNo">1065</span>            if (bulkLoadEvent != null) {<a name="line.1065"></a>
-<span class="sourceLineNo">1066</span>              hRegion.replayWALBulkLoadEventMarker(bulkLoadEvent);<a name="line.1066"></a>
+<span class="sourceLineNo">1064</span>            RegionEventDescriptor regionEvent = WALEdit.getRegionEventDescriptor(metaCell);<a name="line.1064"></a>
+<span class="sourceLineNo">1065</span>            if (regionEvent != null &amp;&amp; !isDefaultReplica) {<a name="line.1065"></a>
+<span class="sourceLineNo">1066</span>              hRegion.replayWALRegionEventMarker(regionEvent);<a name="line.1066"></a>
 <span class="sourceLineNo">1067</span>              continue;<a name="line.1067"></a>
 <span class="sourceLineNo">1068</span>            }<a name="line.1068"></a>
-<span class="sourceLineNo">1069</span>          }<a name="line.1069"></a>
-<span class="sourceLineNo">1070</span>          it.remove();<a name="line.1070"></a>
-<span class="sourceLineNo">1071</span>        }<a name="line.1071"></a>
-<span class="sourceLineNo">1072</span>      }<a name="line.1072"></a>
-<span class="sourceLineNo">1073</span>      requestCount.increment();<a name="line.1073"></a>
-<span class="sourceLineNo">1074</span>      if (!region.getRegionInfo().isMetaRegion()) {<a name="line.1074"></a>
-<span class="sourceLineNo">1075</span>        regionServer.cacheFlusher.reclaimMemStoreMemory();<a name="line.1075"></a>
-<span class="sourceLineNo">1076</span>      }<a name="line.1076"></a>
-<span class="sourceLineNo">1077</span>      return region.batchReplay(mutations.toArray(<a name="line.1077"></a>
-<span class="sourceLineNo">1078</span>        new WALSplitter.MutationReplay[mutations.size()]), replaySeqId);<a name="line.1078"></a>
-<span class="sourceLineNo">1079</span>    } finally {<a name="line.1079"></a>
-<span class="sourceLineNo">1080</span>      if (regionServer.metricsRegionServer != null) {<a name="line.1080"></a>
-<span class="sourceLineNo">1081</span>        long after = EnvironmentEdgeManager.currentTime();<a name="line.1081"></a>
-<span class="sourceLineNo">1082</span>          if (batchContainsPuts) {<a name="line.1082"></a>
-<span class="sourceLineNo">1083</span>          regionServer.metricsRegionServer.updatePutBatch(after - before);<a name="line.1083"></a>
-<span class="sourceLineNo">1084</span>        }<a name="line.1084"></a>
-<span class="sourceLineNo">1085</span>        if (batchContainsDelete) {<a name="line.1085"></a>
-<span class="sourceLineNo">1086</span>          regionServer.metricsRegionServer.updateDeleteBatch(after - before);<a name="line.1086"></a>
-<span class="sourceLineNo">1087</span>        }<a name="line.1087"></a>
-<span class="sourceLineNo">1088</span>      }<a name="line.1088"></a>
-<span class="sourceLineNo">1089</span>    }<a name="line.1089"></a>
-<span class="sourceLineNo">1090</span>  }<a name="line.1090"></a>
-<span class="sourceLineNo">1091</span><a name="line.1091"></a>
-<span class="sourceLineNo">1092</span>  private void closeAllScanners() {<a name="line.1092"></a>
-<span class="sourceLineNo">1093</span>    // Close any outstanding scanners. Means they'll get an UnknownScanner<a name="line.1093"></a>
-<span class="sourceLineNo">1094</span>    // exception next time they come in.<a name="line.1094"></a>
-<span class="sourceLineNo">1095</span>    for (Map.Entry&lt;String, RegionScannerHolder&gt; e : scanners.entrySet()) {<a name="line.1095"></a>
-<span class="sourceLineNo">1096</span>      try {<a name="line.1096"></a>
-<span class="sourceLineNo">1097</span>        e.getValue().s.close();<a name="line.1097"></a>
-<span class="sourceLineNo">1098</span>      } catch (IOException ioe) {<a name="line.1098"></a>
-<span class="sourceLineNo">1099</span>        LOG.warn("Closing scanner " + e.getKey(), ioe);<a name="line.1099"></a>
-<span class="sourceLineNo">1100</span>      }<a name="line.1100"></a>
-<span class="sourceLineNo">1101</span>    }<a name="line.1101"></a>
-<span class="sourceLineNo">1102</span>  }<a name="line.1102"></a>
-<span class="sourceLineNo">1103</span><a name="line.1103"></a>
-<span class="sourceLineNo">1104</span>  // Exposed for testing<a name="line.1104"></a>
-<span class="sourceLineNo">1105</span>  interface LogDelegate {<a name="line.1105"></a>
-<span class="sourceLineNo">1106</span>    void logBatchWa

<TRUNCATED>

[22/32] hbase-site git commit: Published site at .

Posted by gi...@apache.org.
http://git-wip-us.apache.org/repos/asf/hbase-site/blob/29b27596/devapidocs/org/apache/hadoop/hbase/regionserver/RegionServerTableMetrics.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/regionserver/RegionServerTableMetrics.html b/devapidocs/org/apache/hadoop/hbase/regionserver/RegionServerTableMetrics.html
new file mode 100644
index 0000000..d6e9338
--- /dev/null
+++ b/devapidocs/org/apache/hadoop/hbase/regionserver/RegionServerTableMetrics.html
@@ -0,0 +1,433 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>RegionServerTableMetrics (Apache HBase 3.0.0-SNAPSHOT API)</title>
+<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="RegionServerTableMetrics (Apache HBase 3.0.0-SNAPSHOT API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10};
+var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
+var altColor = "altColor";
+var rowColor = "rowColor";
+var tableTab = "tableTab";
+var activeTableTab = "activeTableTab";
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/RegionServerTableMetrics.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionServerStoppedException.html" title="class in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionServicesForStores.html" title="class in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/hadoop/hbase/regionserver/RegionServerTableMetrics.html" target="_top">Frames</a></li>
+<li><a href="RegionServerTableMetrics.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<!-- ======== START OF CLASS DATA ======== -->
+<div class="header">
+<div class="subTitle">org.apache.hadoop.hbase.regionserver</div>
+<h2 title="Class RegionServerTableMetrics" class="title">Class RegionServerTableMetrics</h2>
+</div>
+<div class="contentContainer">
+<ul class="inheritance">
+<li><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
+<li>
+<ul class="inheritance">
+<li>org.apache.hadoop.hbase.regionserver.RegionServerTableMetrics</li>
+</ul>
+</li>
+</ul>
+<div class="description">
+<ul class="blockList">
+<li class="blockList">
+<hr>
+<br>
+<pre>@InterfaceAudience.Private
+public class <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RegionServerTableMetrics.html#line.28">RegionServerTableMetrics</a>
+extends <a href="http://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">Captures operation metrics by table. Separates metrics collection for table metrics away from
+ <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html" title="class in org.apache.hadoop.hbase.regionserver"><code>MetricsRegionServer</code></a> for encapsulation and ease of testing.</div>
+</li>
+</ul>
+</div>
+<div class="summary">
+<ul class="blockList">
+<li class="blockList">
+<!-- =========== FIELD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field.summary">
+<!--   -->
+</a>
+<h3>Field Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Field Summary table, listing fields, and an explanation">
+<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Field and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colFirst"><code>private <a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableLatencies.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsTableLatencies</a></code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionServerTableMetrics.html#latencies">latencies</a></span></code>&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.summary">
+<!--   -->
+</a>
+<h3>Constructor Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
+<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tr class="altColor">
+<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionServerTableMetrics.html#RegionServerTableMetrics--">RegionServerTableMetrics</a></span>()</code>&nbsp;</td>
+</tr>
+</table>
+</li>
+</ul>
+<!-- ========== METHOD SUMMARY =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.summary">
+<!--   -->
+</a>
+<h3>Method Summary</h3>
+<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
+<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tr id="i0" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionServerTableMetrics.html#updateAppend-org.apache.hadoop.hbase.TableName-long-">updateAppend</a></span>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;table,
+            long&nbsp;time)</code>&nbsp;</td>
+</tr>
+<tr id="i1" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionServerTableMetrics.html#updateDelete-org.apache.hadoop.hbase.TableName-long-">updateDelete</a></span>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;table,
+            long&nbsp;time)</code>&nbsp;</td>
+</tr>
+<tr id="i2" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionServerTableMetrics.html#updateDeleteBatch-org.apache.hadoop.hbase.TableName-long-">updateDeleteBatch</a></span>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;table,
+                 long&nbsp;time)</code>&nbsp;</td>
+</tr>
+<tr id="i3" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionServerTableMetrics.html#updateGet-org.apache.hadoop.hbase.TableName-long-">updateGet</a></span>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;table,
+         long&nbsp;time)</code>&nbsp;</td>
+</tr>
+<tr id="i4" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionServerTableMetrics.html#updateIncrement-org.apache.hadoop.hbase.TableName-long-">updateIncrement</a></span>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;table,
+               long&nbsp;time)</code>&nbsp;</td>
+</tr>
+<tr id="i5" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionServerTableMetrics.html#updatePut-org.apache.hadoop.hbase.TableName-long-">updatePut</a></span>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;table,
+         long&nbsp;time)</code>&nbsp;</td>
+</tr>
+<tr id="i6" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionServerTableMetrics.html#updatePutBatch-org.apache.hadoop.hbase.TableName-long-">updatePutBatch</a></span>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;table,
+              long&nbsp;time)</code>&nbsp;</td>
+</tr>
+<tr id="i7" class="rowColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionServerTableMetrics.html#updateScanSize-org.apache.hadoop.hbase.TableName-long-">updateScanSize</a></span>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;table,
+              long&nbsp;size)</code>&nbsp;</td>
+</tr>
+<tr id="i8" class="altColor">
+<td class="colFirst"><code>void</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionServerTableMetrics.html#updateScanTime-org.apache.hadoop.hbase.TableName-long-">updateScanTime</a></span>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;table,
+              long&nbsp;time)</code>&nbsp;</td>
+</tr>
+</table>
+<ul class="blockList">
+<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
+<!--   -->
+</a>
+<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang
 /Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<div class="details">
+<ul class="blockList">
+<li class="blockList">
+<!-- ============ FIELD DETAIL =========== -->
+<ul class="blockList">
+<li class="blockList"><a name="field.detail">
+<!--   -->
+</a>
+<h3>Field Detail</h3>
+<a name="latencies">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>latencies</h4>
+<pre>private final&nbsp;<a href="../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableLatencies.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsTableLatencies</a> <a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RegionServerTableMetrics.html#line.30">latencies</a></pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<ul class="blockList">
+<li class="blockList"><a name="constructor.detail">
+<!--   -->
+</a>
+<h3>Constructor Detail</h3>
+<a name="RegionServerTableMetrics--">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>RegionServerTableMetrics</h4>
+<pre>public&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RegionServerTableMetrics.html#line.32">RegionServerTableMetrics</a>()</pre>
+</li>
+</ul>
+</li>
+</ul>
+<!-- ============ METHOD DETAIL ========== -->
+<ul class="blockList">
+<li class="blockList"><a name="method.detail">
+<!--   -->
+</a>
+<h3>Method Detail</h3>
+<a name="updatePut-org.apache.hadoop.hbase.TableName-long-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>updatePut</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RegionServerTableMetrics.html#line.36">updatePut</a>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;table,
+                      long&nbsp;time)</pre>
+</li>
+</ul>
+<a name="updatePutBatch-org.apache.hadoop.hbase.TableName-long-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>updatePutBatch</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RegionServerTableMetrics.html#line.40">updatePutBatch</a>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;table,
+                           long&nbsp;time)</pre>
+</li>
+</ul>
+<a name="updateGet-org.apache.hadoop.hbase.TableName-long-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>updateGet</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RegionServerTableMetrics.html#line.44">updateGet</a>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;table,
+                      long&nbsp;time)</pre>
+</li>
+</ul>
+<a name="updateIncrement-org.apache.hadoop.hbase.TableName-long-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>updateIncrement</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RegionServerTableMetrics.html#line.48">updateIncrement</a>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;table,
+                            long&nbsp;time)</pre>
+</li>
+</ul>
+<a name="updateAppend-org.apache.hadoop.hbase.TableName-long-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>updateAppend</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RegionServerTableMetrics.html#line.52">updateAppend</a>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;table,
+                         long&nbsp;time)</pre>
+</li>
+</ul>
+<a name="updateDelete-org.apache.hadoop.hbase.TableName-long-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>updateDelete</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RegionServerTableMetrics.html#line.56">updateDelete</a>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;table,
+                         long&nbsp;time)</pre>
+</li>
+</ul>
+<a name="updateDeleteBatch-org.apache.hadoop.hbase.TableName-long-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>updateDeleteBatch</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RegionServerTableMetrics.html#line.60">updateDeleteBatch</a>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;table,
+                              long&nbsp;time)</pre>
+</li>
+</ul>
+<a name="updateScanTime-org.apache.hadoop.hbase.TableName-long-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>updateScanTime</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RegionServerTableMetrics.html#line.64">updateScanTime</a>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;table,
+                           long&nbsp;time)</pre>
+</li>
+</ul>
+<a name="updateScanSize-org.apache.hadoop.hbase.TableName-long-">
+<!--   -->
+</a>
+<ul class="blockListLast">
+<li class="blockList">
+<h4>updateScanSize</h4>
+<pre>public&nbsp;void&nbsp;<a href="../../../../../src-html/org/apache/hadoop/hbase/regionserver/RegionServerTableMetrics.html#line.68">updateScanSize</a>(<a href="../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>&nbsp;table,
+                           long&nbsp;size)</pre>
+</li>
+</ul>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+</div>
+<!-- ========= END OF CLASS DATA ========= -->
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../overview-summary.html">Overview</a></li>
+<li><a href="package-summary.html">Package</a></li>
+<li class="navBarCell1Rev">Class</li>
+<li><a href="class-use/RegionServerTableMetrics.html">Use</a></li>
+<li><a href="package-tree.html">Tree</a></li>
+<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li><a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionServerStoppedException.html" title="class in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionServicesForStores.html" title="class in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../index.html?org/apache/hadoop/hbase/regionserver/RegionServerTableMetrics.html" target="_top">Frames</a></li>
+<li><a href="RegionServerTableMetrics.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<div>
+<ul class="subNavList">
+<li>Summary:&nbsp;</li>
+<li>Nested&nbsp;|&nbsp;</li>
+<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.summary">Method</a></li>
+</ul>
+<ul class="subNavList">
+<li>Detail:&nbsp;</li>
+<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
+<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
+<li><a href="#method.detail">Method</a></li>
+</ul>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2007&#x2013;2017 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/29b27596/devapidocs/org/apache/hadoop/hbase/regionserver/RegionServicesForStores.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/regionserver/RegionServicesForStores.html b/devapidocs/org/apache/hadoop/hbase/regionserver/RegionServicesForStores.html
index 0ef5fd8..ba81f6d 100644
--- a/devapidocs/org/apache/hadoop/hbase/regionserver/RegionServicesForStores.html
+++ b/devapidocs/org/apache/hadoop/hbase/regionserver/RegionServicesForStores.html
@@ -49,7 +49,7 @@ var activeTableTab = "activeTableTab";
 </div>
 <div class="subNav">
 <ul class="navList">
-<li><a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionServerStoppedException.html" title="class in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionServerTableMetrics.html" title="class in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
 <li><a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSplitPolicy.html" title="class in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
 </ul>
 <ul class="navList">
@@ -402,7 +402,7 @@ extends <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?
 </div>
 <div class="subNav">
 <ul class="navList">
-<li><a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionServerStoppedException.html" title="class in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
+<li><a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionServerTableMetrics.html" title="class in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
 <li><a href="../../../../../org/apache/hadoop/hbase/regionserver/RegionSplitPolicy.html" title="class in org.apache.hadoop.hbase.regionserver"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
 </ul>
 <ul class="navList">

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/29b27596/devapidocs/org/apache/hadoop/hbase/regionserver/class-use/MetricsRegionServerSource.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/regionserver/class-use/MetricsRegionServerSource.html b/devapidocs/org/apache/hadoop/hbase/regionserver/class-use/MetricsRegionServerSource.html
index 582e668..e0246f6 100644
--- a/devapidocs/org/apache/hadoop/hbase/regionserver/class-use/MetricsRegionServerSource.html
+++ b/devapidocs/org/apache/hadoop/hbase/regionserver/class-use/MetricsRegionServerSource.html
@@ -153,8 +153,9 @@
 </tr>
 <tbody>
 <tr class="altColor">
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html#MetricsRegionServer-org.apache.hadoop.hbase.regionserver.MetricsRegionServerWrapper-org.apache.hadoop.hbase.regionserver.MetricsRegionServerSource-">MetricsRegionServer</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapper.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsRegionServerWrapper</a>&nbsp;regionServerWrapper,
-                   <a href="../../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerSource.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsRegionServerSource</a>&nbsp;serverSource)</code>&nbsp;</td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html#MetricsRegionServer-org.apache.hadoop.hbase.regionserver.MetricsRegionServerWrapper-org.apache.hadoop.hbase.regionserver.MetricsRegionServerSource-org.apache.hadoop.hbase.regionserver.RegionServerTableMetrics-">MetricsRegionServer</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapper.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsRegionServerWrapper</a>&nbsp;regionServerWrapper,
+                   <a href="../../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerSource.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsRegionServerSource</a>&nbsp;serverSource,
+                   <a href="../../../../../../org/apache/hadoop/hbase/regionserver/RegionServerTableMetrics.html" title="class in org.apache.hadoop.hbase.regionserver">RegionServerTableMetrics</a>&nbsp;tableMetrics)</code>&nbsp;</td>
 </tr>
 </tbody>
 </table>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/29b27596/devapidocs/org/apache/hadoop/hbase/regionserver/class-use/MetricsRegionServerWrapper.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/regionserver/class-use/MetricsRegionServerWrapper.html b/devapidocs/org/apache/hadoop/hbase/regionserver/class-use/MetricsRegionServerWrapper.html
index 400ed3a..6f9a2be 100644
--- a/devapidocs/org/apache/hadoop/hbase/regionserver/class-use/MetricsRegionServerWrapper.html
+++ b/devapidocs/org/apache/hadoop/hbase/regionserver/class-use/MetricsRegionServerWrapper.html
@@ -170,11 +170,13 @@
 </tr>
 <tbody>
 <tr class="altColor">
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html#MetricsRegionServer-org.apache.hadoop.hbase.regionserver.MetricsRegionServerWrapper-">MetricsRegionServer</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapper.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsRegionServerWrapper</a>&nbsp;regionServerWrapper)</code>&nbsp;</td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html#MetricsRegionServer-org.apache.hadoop.hbase.regionserver.MetricsRegionServerWrapper-org.apache.hadoop.conf.Configuration-">MetricsRegionServer</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapper.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsRegionServerWrapper</a>&nbsp;regionServerWrapper,
+                   org.apache.hadoop.conf.Configuration&nbsp;conf)</code>&nbsp;</td>
 </tr>
 <tr class="rowColor">
-<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html#MetricsRegionServer-org.apache.hadoop.hbase.regionserver.MetricsRegionServerWrapper-org.apache.hadoop.hbase.regionserver.MetricsRegionServerSource-">MetricsRegionServer</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapper.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsRegionServerWrapper</a>&nbsp;regionServerWrapper,
-                   <a href="../../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerSource.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsRegionServerSource</a>&nbsp;serverSource)</code>&nbsp;</td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html#MetricsRegionServer-org.apache.hadoop.hbase.regionserver.MetricsRegionServerWrapper-org.apache.hadoop.hbase.regionserver.MetricsRegionServerSource-org.apache.hadoop.hbase.regionserver.RegionServerTableMetrics-">MetricsRegionServer</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapper.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsRegionServerWrapper</a>&nbsp;regionServerWrapper,
+                   <a href="../../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerSource.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsRegionServerSource</a>&nbsp;serverSource,
+                   <a href="../../../../../../org/apache/hadoop/hbase/regionserver/RegionServerTableMetrics.html" title="class in org.apache.hadoop.hbase.regionserver">RegionServerTableMetrics</a>&nbsp;tableMetrics)</code>&nbsp;</td>
 </tr>
 <tr class="altColor">
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerSourceImpl.html#MetricsRegionServerSourceImpl-org.apache.hadoop.hbase.regionserver.MetricsRegionServerWrapper-">MetricsRegionServerSourceImpl</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapper.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsRegionServerWrapper</a>&nbsp;rsWrap)</code>&nbsp;</td>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/29b27596/devapidocs/org/apache/hadoop/hbase/regionserver/class-use/MetricsTableLatencies.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/regionserver/class-use/MetricsTableLatencies.html b/devapidocs/org/apache/hadoop/hbase/regionserver/class-use/MetricsTableLatencies.html
new file mode 100644
index 0000000..983a446
--- /dev/null
+++ b/devapidocs/org/apache/hadoop/hbase/regionserver/class-use/MetricsTableLatencies.html
@@ -0,0 +1,181 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Interface org.apache.hadoop.hbase.regionserver.MetricsTableLatencies (Apache HBase 3.0.0-SNAPSHOT API)</title>
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Interface org.apache.hadoop.hbase.regionserver.MetricsTableLatencies (Apache HBase 3.0.0-SNAPSHOT API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableLatencies.html" title="interface in org.apache.hadoop.hbase.regionserver">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../../../../../../overview-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/hadoop/hbase/regionserver/class-use/MetricsTableLatencies.html" target="_top">Frames</a></li>
+<li><a href="MetricsTableLatencies.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Interface org.apache.hadoop.hbase.regionserver.MetricsTableLatencies" class="title">Uses of Interface<br>org.apache.hadoop.hbase.regionserver.MetricsTableLatencies</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableLatencies.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsTableLatencies</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.hadoop.hbase.regionserver">org.apache.hadoop.hbase.regionserver</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.hadoop.hbase.regionserver">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableLatencies.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsTableLatencies</a> in <a href="../../../../../../org/apache/hadoop/hbase/regionserver/package-summary.html">org.apache.hadoop.hbase.regionserver</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
+<caption><span>Classes in <a href="../../../../../../org/apache/hadoop/hbase/regionserver/package-summary.html">org.apache.hadoop.hbase.regionserver</a> that implement <a href="../../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableLatencies.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsTableLatencies</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Class and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>class&nbsp;</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableLatenciesImpl.html" title="class in org.apache.hadoop.hbase.regionserver">MetricsTableLatenciesImpl</a></span></code>
+<div class="block">Implementation of <a href="../../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableLatencies.html" title="interface in org.apache.hadoop.hbase.regionserver"><code>MetricsTableLatencies</code></a> to track latencies for one table in a
+ RegionServer.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing fields, and an explanation">
+<caption><span>Fields in <a href="../../../../../../org/apache/hadoop/hbase/regionserver/package-summary.html">org.apache.hadoop.hbase.regionserver</a> declared as <a href="../../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableLatencies.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsTableLatencies</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Field and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>private <a href="../../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableLatencies.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsTableLatencies</a></code></td>
+<td class="colLast"><span class="typeNameLabel">RegionServerTableMetrics.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/RegionServerTableMetrics.html#latencies">latencies</a></span></code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableLatencies.html" title="interface in org.apache.hadoop.hbase.regionserver">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../../../../../../overview-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/hadoop/hbase/regionserver/class-use/MetricsTableLatencies.html" target="_top">Frames</a></li>
+<li><a href="MetricsTableLatencies.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2007&#x2013;2017 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/29b27596/devapidocs/org/apache/hadoop/hbase/regionserver/class-use/MetricsTableLatenciesImpl.TableHistograms.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/regionserver/class-use/MetricsTableLatenciesImpl.TableHistograms.html b/devapidocs/org/apache/hadoop/hbase/regionserver/class-use/MetricsTableLatenciesImpl.TableHistograms.html
new file mode 100644
index 0000000..fb1e47e
--- /dev/null
+++ b/devapidocs/org/apache/hadoop/hbase/regionserver/class-use/MetricsTableLatenciesImpl.TableHistograms.html
@@ -0,0 +1,178 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.hadoop.hbase.regionserver.MetricsTableLatenciesImpl.TableHistograms (Apache HBase 3.0.0-SNAPSHOT API)</title>
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.hadoop.hbase.regionserver.MetricsTableLatenciesImpl.TableHistograms (Apache HBase 3.0.0-SNAPSHOT API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableLatenciesImpl.TableHistograms.html" title="class in org.apache.hadoop.hbase.regionserver">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../../../../../../overview-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/hadoop/hbase/regionserver/class-use/MetricsTableLatenciesImpl.TableHistograms.html" target="_top">Frames</a></li>
+<li><a href="MetricsTableLatenciesImpl.TableHistograms.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.hadoop.hbase.regionserver.MetricsTableLatenciesImpl.TableHistograms" class="title">Uses of Class<br>org.apache.hadoop.hbase.regionserver.MetricsTableLatenciesImpl.TableHistograms</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableLatenciesImpl.TableHistograms.html" title="class in org.apache.hadoop.hbase.regionserver">MetricsTableLatenciesImpl.TableHistograms</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.hadoop.hbase.regionserver">org.apache.hadoop.hbase.regionserver</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.hadoop.hbase.regionserver">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableLatenciesImpl.TableHistograms.html" title="class in org.apache.hadoop.hbase.regionserver">MetricsTableLatenciesImpl.TableHistograms</a> in <a href="../../../../../../org/apache/hadoop/hbase/regionserver/package-summary.html">org.apache.hadoop.hbase.regionserver</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing fields, and an explanation">
+<caption><span>Fields in <a href="../../../../../../org/apache/hadoop/hbase/regionserver/package-summary.html">org.apache.hadoop.hbase.regionserver</a> with type parameters of type <a href="../../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableLatenciesImpl.TableHistograms.html" title="class in org.apache.hadoop.hbase.regionserver">MetricsTableLatenciesImpl.TableHistograms</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Field and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>private <a href="http://docs.oracle.com/javase/8/docs/api/java/util/HashMap.html?is-external=true" title="class or interface in java.util">HashMap</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/TableName.html" title="class in org.apache.hadoop.hbase">TableName</a>,<a href="../../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableLatenciesImpl.TableHistograms.html" title="class in org.apache.hadoop.hbase.regionserver">MetricsTableLatenciesImpl.TableHistograms</a>&gt;</code></td>
+<td class="colLast"><span class="typeNameLabel">MetricsTableLatenciesImpl.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableLatenciesImpl.html#histogramsByTable">histogramsByTable</a></span></code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../../org/apache/hadoop/hbase/regionserver/package-summary.html">org.apache.hadoop.hbase.regionserver</a> that return <a href="../../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableLatenciesImpl.TableHistograms.html" title="class in org.apache.hadoop.hbase.regionserver">MetricsTableLatenciesImpl.TableHistograms</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableLatenciesImpl.TableHistograms.html" title="class in org.apache.hadoop.hbase.regionserver">MetricsTableLatenciesImpl.TableHistograms</a></code></td>
+<td class="colLast"><span class="typeNameLabel">MetricsTableLatenciesImpl.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableLatenciesImpl.html#getOrCreateTableHistogram-java.lang.String-">getOrCreateTableHistogram</a></span>(<a href="http://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>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableLatenciesImpl.TableHistograms.html" title="class in org.apache.hadoop.hbase.regionserver">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../../../../../../overview-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/hadoop/hbase/regionserver/class-use/MetricsTableLatenciesImpl.TableHistograms.html" target="_top">Frames</a></li>
+<li><a href="MetricsTableLatenciesImpl.TableHistograms.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2007&#x2013;2017 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/29b27596/devapidocs/org/apache/hadoop/hbase/regionserver/class-use/MetricsTableLatenciesImpl.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/regionserver/class-use/MetricsTableLatenciesImpl.html b/devapidocs/org/apache/hadoop/hbase/regionserver/class-use/MetricsTableLatenciesImpl.html
new file mode 100644
index 0000000..6ce426d
--- /dev/null
+++ b/devapidocs/org/apache/hadoop/hbase/regionserver/class-use/MetricsTableLatenciesImpl.html
@@ -0,0 +1,125 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.hadoop.hbase.regionserver.MetricsTableLatenciesImpl (Apache HBase 3.0.0-SNAPSHOT API)</title>
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.hadoop.hbase.regionserver.MetricsTableLatenciesImpl (Apache HBase 3.0.0-SNAPSHOT API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableLatenciesImpl.html" title="class in org.apache.hadoop.hbase.regionserver">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../../../../../../overview-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/hadoop/hbase/regionserver/class-use/MetricsTableLatenciesImpl.html" target="_top">Frames</a></li>
+<li><a href="MetricsTableLatenciesImpl.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.hadoop.hbase.regionserver.MetricsTableLatenciesImpl" class="title">Uses of Class<br>org.apache.hadoop.hbase.regionserver.MetricsTableLatenciesImpl</h2>
+</div>
+<div class="classUseContainer">No usage of org.apache.hadoop.hbase.regionserver.MetricsTableLatenciesImpl</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/hadoop/hbase/regionserver/MetricsTableLatenciesImpl.html" title="class in org.apache.hadoop.hbase.regionserver">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../../../../../../overview-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/hadoop/hbase/regionserver/class-use/MetricsTableLatenciesImpl.html" target="_top">Frames</a></li>
+<li><a href="MetricsTableLatenciesImpl.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2007&#x2013;2017 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/29b27596/devapidocs/org/apache/hadoop/hbase/regionserver/class-use/RegionServerTableMetrics.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/regionserver/class-use/RegionServerTableMetrics.html b/devapidocs/org/apache/hadoop/hbase/regionserver/class-use/RegionServerTableMetrics.html
new file mode 100644
index 0000000..bfe0371
--- /dev/null
+++ b/devapidocs/org/apache/hadoop/hbase/regionserver/class-use/RegionServerTableMetrics.html
@@ -0,0 +1,193 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!-- NewPage -->
+<html lang="en">
+<head>
+<!-- Generated by javadoc -->
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Uses of Class org.apache.hadoop.hbase.regionserver.RegionServerTableMetrics (Apache HBase 3.0.0-SNAPSHOT API)</title>
+<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
+<script type="text/javascript" src="../../../../../../script.js"></script>
+</head>
+<body>
+<script type="text/javascript"><!--
+    try {
+        if (location.href.indexOf('is-external=true') == -1) {
+            parent.document.title="Uses of Class org.apache.hadoop.hbase.regionserver.RegionServerTableMetrics (Apache HBase 3.0.0-SNAPSHOT API)";
+        }
+    }
+    catch(err) {
+    }
+//-->
+</script>
+<noscript>
+<div>JavaScript is disabled on your browser.</div>
+</noscript>
+<!-- ========= START OF TOP NAVBAR ======= -->
+<div class="topNav"><a name="navbar.top">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.top.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/hadoop/hbase/regionserver/RegionServerTableMetrics.html" title="class in org.apache.hadoop.hbase.regionserver">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../../../../../../overview-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/hadoop/hbase/regionserver/class-use/RegionServerTableMetrics.html" target="_top">Frames</a></li>
+<li><a href="RegionServerTableMetrics.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_top">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_top");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.top">
+<!--   -->
+</a></div>
+<!-- ========= END OF TOP NAVBAR ========= -->
+<div class="header">
+<h2 title="Uses of Class org.apache.hadoop.hbase.regionserver.RegionServerTableMetrics" class="title">Uses of Class<br>org.apache.hadoop.hbase.regionserver.RegionServerTableMetrics</h2>
+</div>
+<div class="classUseContainer">
+<ul class="blockList">
+<li class="blockList">
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
+<caption><span>Packages that use <a href="../../../../../../org/apache/hadoop/hbase/regionserver/RegionServerTableMetrics.html" title="class in org.apache.hadoop.hbase.regionserver">RegionServerTableMetrics</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Package</th>
+<th class="colLast" scope="col">Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><a href="#org.apache.hadoop.hbase.regionserver">org.apache.hadoop.hbase.regionserver</a></td>
+<td class="colLast">&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+<li class="blockList">
+<ul class="blockList">
+<li class="blockList"><a name="org.apache.hadoop.hbase.regionserver">
+<!--   -->
+</a>
+<h3>Uses of <a href="../../../../../../org/apache/hadoop/hbase/regionserver/RegionServerTableMetrics.html" title="class in org.apache.hadoop.hbase.regionserver">RegionServerTableMetrics</a> in <a href="../../../../../../org/apache/hadoop/hbase/regionserver/package-summary.html">org.apache.hadoop.hbase.regionserver</a></h3>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing fields, and an explanation">
+<caption><span>Fields in <a href="../../../../../../org/apache/hadoop/hbase/regionserver/package-summary.html">org.apache.hadoop.hbase.regionserver</a> declared as <a href="../../../../../../org/apache/hadoop/hbase/regionserver/RegionServerTableMetrics.html" title="class in org.apache.hadoop.hbase.regionserver">RegionServerTableMetrics</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Field and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>private <a href="../../../../../../org/apache/hadoop/hbase/regionserver/RegionServerTableMetrics.html" title="class in org.apache.hadoop.hbase.regionserver">RegionServerTableMetrics</a></code></td>
+<td class="colLast"><span class="typeNameLabel">MetricsRegionServer.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html#tableMetrics">tableMetrics</a></span></code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing methods, and an explanation">
+<caption><span>Methods in <a href="../../../../../../org/apache/hadoop/hbase/regionserver/package-summary.html">org.apache.hadoop.hbase.regionserver</a> that return <a href="../../../../../../org/apache/hadoop/hbase/regionserver/RegionServerTableMetrics.html" title="class in org.apache.hadoop.hbase.regionserver">RegionServerTableMetrics</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colFirst" scope="col">Modifier and Type</th>
+<th class="colLast" scope="col">Method and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colFirst"><code>(package private) static <a href="../../../../../../org/apache/hadoop/hbase/regionserver/RegionServerTableMetrics.html" title="class in org.apache.hadoop.hbase.regionserver">RegionServerTableMetrics</a></code></td>
+<td class="colLast"><span class="typeNameLabel">MetricsRegionServer.</span><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html#createTableMetrics-org.apache.hadoop.conf.Configuration-">createTableMetrics</a></span>(org.apache.hadoop.conf.Configuration&nbsp;conf)</code>
+<div class="block">Creates an instance of <a href="../../../../../../org/apache/hadoop/hbase/regionserver/RegionServerTableMetrics.html" title="class in org.apache.hadoop.hbase.regionserver"><code>RegionServerTableMetrics</code></a> only if the feature is enabled.</div>
+</td>
+</tr>
+</tbody>
+</table>
+<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing constructors, and an explanation">
+<caption><span>Constructors in <a href="../../../../../../org/apache/hadoop/hbase/regionserver/package-summary.html">org.apache.hadoop.hbase.regionserver</a> with parameters of type <a href="../../../../../../org/apache/hadoop/hbase/regionserver/RegionServerTableMetrics.html" title="class in org.apache.hadoop.hbase.regionserver">RegionServerTableMetrics</a></span><span class="tabEnd">&nbsp;</span></caption>
+<tr>
+<th class="colOne" scope="col">Constructor and Description</th>
+</tr>
+<tbody>
+<tr class="altColor">
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServer.html#MetricsRegionServer-org.apache.hadoop.hbase.regionserver.MetricsRegionServerWrapper-org.apache.hadoop.hbase.regionserver.MetricsRegionServerSource-org.apache.hadoop.hbase.regionserver.RegionServerTableMetrics-">MetricsRegionServer</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapper.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsRegionServerWrapper</a>&nbsp;regionServerWrapper,
+                   <a href="../../../../../../org/apache/hadoop/hbase/regionserver/MetricsRegionServerSource.html" title="interface in org.apache.hadoop.hbase.regionserver">MetricsRegionServerSource</a>&nbsp;serverSource,
+                   <a href="../../../../../../org/apache/hadoop/hbase/regionserver/RegionServerTableMetrics.html" title="class in org.apache.hadoop.hbase.regionserver">RegionServerTableMetrics</a>&nbsp;tableMetrics)</code>&nbsp;</td>
+</tr>
+</tbody>
+</table>
+</li>
+</ul>
+</li>
+</ul>
+</div>
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<div class="bottomNav"><a name="navbar.bottom">
+<!--   -->
+</a>
+<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
+<a name="navbar.bottom.firstrow">
+<!--   -->
+</a>
+<ul class="navList" title="Navigation">
+<li><a href="../../../../../../overview-summary.html">Overview</a></li>
+<li><a href="../package-summary.html">Package</a></li>
+<li><a href="../../../../../../org/apache/hadoop/hbase/regionserver/RegionServerTableMetrics.html" title="class in org.apache.hadoop.hbase.regionserver">Class</a></li>
+<li class="navBarCell1Rev">Use</li>
+<li><a href="../../../../../../overview-tree.html">Tree</a></li>
+<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
+<li><a href="../../../../../../index-all.html">Index</a></li>
+<li><a href="../../../../../../help-doc.html">Help</a></li>
+</ul>
+</div>
+<div class="subNav">
+<ul class="navList">
+<li>Prev</li>
+<li>Next</li>
+</ul>
+<ul class="navList">
+<li><a href="../../../../../../index.html?org/apache/hadoop/hbase/regionserver/class-use/RegionServerTableMetrics.html" target="_top">Frames</a></li>
+<li><a href="RegionServerTableMetrics.html" target="_top">No&nbsp;Frames</a></li>
+</ul>
+<ul class="navList" id="allclasses_navbar_bottom">
+<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
+</ul>
+<div>
+<script type="text/javascript"><!--
+  allClassesLink = document.getElementById("allclasses_navbar_bottom");
+  if(window==top) {
+    allClassesLink.style.display = "block";
+  }
+  else {
+    allClassesLink.style.display = "none";
+  }
+  //-->
+</script>
+</div>
+<a name="skip.navbar.bottom">
+<!--   -->
+</a></div>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+<p class="legalCopy"><small>Copyright &#169; 2007&#x2013;2017 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
+</body>
+</html>

http://git-wip-us.apache.org/repos/asf/hbase-site/blob/29b27596/devapidocs/org/apache/hadoop/hbase/regionserver/compactions/CompactionRequestImpl.html
----------------------------------------------------------------------
diff --git a/devapidocs/org/apache/hadoop/hbase/regionserver/compactions/CompactionRequestImpl.html b/devapidocs/org/apache/hadoop/hbase/regionserver/compactions/CompactionRequestImpl.html
index d17b403..9af5edf 100644
--- a/devapidocs/org/apache/hadoop/hbase/regionserver/compactions/CompactionRequestImpl.html
+++ b/devapidocs/org/apache/hadoop/hbase/regionserver/compactions/CompactionRequestImpl.html
@@ -18,7 +18,7 @@
     catch(err) {
     }
 //-->
-var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10};
+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};
 var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
 var altColor = "altColor";
 var rowColor = "rowColor";
@@ -228,80 +228,88 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/regionserver/compa
 <th class="colLast" scope="col">Method and Description</th>
 </tr>
 <tr id="i0" class="altColor">
+<td class="colFirst"><code>boolean</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/compactions/CompactionRequestImpl.html#equals-java.lang.Object-">equals</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</code>&nbsp;</td>
+</tr>
+<tr id="i1" class="rowColor">
 <td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/regionserver/HStoreFile.html" title="class in org.apache.hadoop.hbase.regionserver">HStoreFile</a>&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/compactions/CompactionRequestImpl.html#getFiles--">getFiles</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i1" class="rowColor">
+<tr id="i2" class="altColor">
 <td class="colFirst"><code>int</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/compactions/CompactionRequestImpl.html#getPriority--">getPriority</a></span>()</code>
 <div class="block">Gets the priority for the request</div>
 </td>
 </tr>
-<tr id="i2" class="altColor">
+<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/regionserver/compactions/CompactionRequestImpl.html#getSelectionTime--">getSelectionTime</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i3" class="rowColor">
+<tr id="i4" class="altColor">
 <td class="colFirst"><code>long</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/compactions/CompactionRequestImpl.html#getSize--">getSize</a></span>()</code>
 <div class="block">Gets the total size of all StoreFiles in compaction</div>
 </td>
 </tr>
-<tr id="i4" class="altColor">
+<tr id="i5" class="rowColor">
 <td class="colFirst"><code><a href="../../../../../../org/apache/hadoop/hbase/regionserver/compactions/CompactionLifeCycleTracker.html" title="interface in org.apache.hadoop.hbase.regionserver.compactions">CompactionLifeCycleTracker</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/compactions/CompactionRequestImpl.html#getTracker--">getTracker</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i5" class="rowColor">
+<tr id="i6" class="altColor">
+<td class="colFirst"><code>int</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/compactions/CompactionRequestImpl.html#hashCode--">hashCode</a></span>()</code>&nbsp;</td>
+</tr>
+<tr id="i7" class="rowColor">
 <td class="colFirst"><code>boolean</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/compactions/CompactionRequestImpl.html#isAllFiles--">isAllFiles</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i6" class="altColor">
+<tr id="i8" class="altColor">
 <td class="colFirst"><code>boolean</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/compactions/CompactionRequestImpl.html#isMajor--">isMajor</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i7" class="rowColor">
+<tr id="i9" class="rowColor">
 <td class="colFirst"><code>boolean</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/compactions/CompactionRequestImpl.html#isOffPeak--">isOffPeak</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i8" class="altColor">
+<tr id="i10" class="altColor">
 <td class="colFirst"><code>private void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/compactions/CompactionRequestImpl.html#recalculateSize--">recalculateSize</a></span>()</code>
 <div class="block">Recalculate the size of the compaction based on current files.</div>
 </td>
 </tr>
-<tr id="i9" class="rowColor">
+<tr id="i11" class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/compactions/CompactionRequestImpl.html#setDescription-java.lang.String-java.lang.String-">setDescription</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;regionName,
               <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;storeName)</code>
 <div class="block">Sets the region/store name, for logging.</div>
 </td>
 </tr>
-<tr id="i10" class="altColor">
+<tr id="i12" class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/compactions/CompactionRequestImpl.html#setIsMajor-boolean-boolean-">setIsMajor</a></span>(boolean&nbsp;isMajor,
           boolean&nbsp;isAllFiles)</code>
 <div class="block">Specify if this compaction should be a major compaction based on the state of the store</div>
 </td>
 </tr>
-<tr id="i11" class="rowColor">
+<tr id="i13" class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/compactions/CompactionRequestImpl.html#setOffPeak-boolean-">setOffPeak</a></span>(boolean&nbsp;value)</code>&nbsp;</td>
 </tr>
-<tr id="i12" class="altColor">
+<tr id="i14" class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/compactions/CompactionRequestImpl.html#setPriority-int-">setPriority</a></span>(int&nbsp;p)</code>
 <div class="block">Sets the priority for the request</div>
 </td>
 </tr>
-<tr id="i13" class="rowColor">
+<tr id="i15" class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/compactions/CompactionRequestImpl.html#setTracker-org.apache.hadoop.hbase.regionserver.compactions.CompactionLifeCycleTracker-">setTracker</a></span>(<a href="../../../../../../org/apache/hadoop/hbase/regionserver/compactions/CompactionLifeCycleTracker.html" title="interface in org.apache.hadoop.hbase.regionserver.compactions">CompactionLifeCycleTracker</a>&nbsp;tracker)</code>&nbsp;</td>
 </tr>
-<tr id="i14" class="altColor">
+<tr id="i16" class="altColor">
 <td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/compactions/CompactionRequestImpl.html#toString--">toString</a></span>()</code>&nbsp;</td>
 </tr>
-<tr id="i15" class="rowColor">
+<tr id="i17" class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hbase/regionserver/compactions/CompactionRequestImpl.html#updateFiles-java.util.Collection-">updateFiles</a></span>(<a href="http://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../../org/apache/hadoop/hbase/regionserver/HStoreFile.html" title="class in org.apache.hadoop.hbase.regionserver">HStoreFile</a>&gt;&nbsp;files)</code>&nbsp;</td>
 </tr>
@@ -311,7 +319,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/regionserver/compa
 <!--   -->
 </a>
 <h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
-<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang
 /Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
+<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-ex
 ternal=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
 </ul>
 </li>
 </ul>
@@ -613,13 +621,39 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/regionserver/compa
 <pre>public&nbsp;<a href="../../../../../../org/apache/hadoop/hbase/regionserver/compactions/CompactionLifeCycleTracker.html" title="interface in org.apache.hadoop.hbase.regionserver.compactions">CompactionLifeCycleTracker</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/compactions/CompactionRequestImpl.html#line.135">getTracker</a>()</pre>
 </li>
 </ul>
+<a name="hashCode--">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>hashCode</h4>
+<pre>public&nbsp;int&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/compactions/CompactionRequestImpl.html#line.140">hashCode</a>()</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a></code>&nbsp;in class&nbsp;<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></dd>
+</dl>
+</li>
+</ul>
+<a name="equals-java.lang.Object-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>equals</h4>
+<pre>public&nbsp;boolean&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/compactions/CompactionRequestImpl.html#line.156">equals</a>(<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;obj)</pre>
+<dl>
+<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
+<dd><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a></code>&nbsp;in class&nbsp;<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></dd>
+</dl>
+</li>
+</ul>
 <a name="toString--">
 <!--   -->
 </a>
 <ul class="blockList">
 <li class="blockList">
 <h4>toString</h4>
-<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/compactions/CompactionRequestImpl.html#line.140">toString</a>()</pre>
+<pre>public&nbsp;<a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/compactions/CompactionRequestImpl.html#line.214">toString</a>()</pre>
 <dl>
 <dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
 <dd><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a></code>&nbsp;in class&nbsp;<code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></dd>
@@ -632,7 +666,7 @@ implements <a href="../../../../../../org/apache/hadoop/hbase/regionserver/compa
 <ul class="blockListLast">
 <li class="blockList">
 <h4>recalculateSize</h4>
-<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/compactions/CompactionRequestImpl.html#line.155">recalculateSize</a>()</pre>
+<pre>private&nbsp;void&nbsp;<a href="../../../../../../src-html/org/apache/hadoop/hbase/regionserver/compactions/CompactionRequestImpl.html#line.229">recalculateSize</a>()</pre>
 <div class="block">Recalculate the size of the compaction based on current files.</div>
 </li>
 </ul>